Ho provato a google un modo per impostare la lingua di un flusso di sottotitoli con ffmpeg e ho trovato l'opzione -slang. Così ho provato il seguente comando ma subito ricevo un errore:Impostare una lingua per i sottotitoli utilizzando ffmpeg
ffmpeg -i input.avi -i subs.srt -c:a copy -c:s mov_text -slang eng -c:v libx264 -profile:v high -level:v 4.0 output.mp4
ffmpeg version 1.1 Copyright (c) 2000-2013 the FFmpeg developers
built on Jul 18 2013 23:00:53 with Apple clang version 4.0 (tags/Apple/clang-421.0.60) (based on LLVM 3.1svn)
libavutil 52. 13.100/52. 13.100
libavcodec 54. 86.100/54. 86.100
libavformat 54. 59.106/54. 59.106
libavdevice 54. 3.102/54. 3.102
libavfilter 3. 32.100/3. 32.100
libswscale 2. 1.103/2. 1.103
libswresample 0. 17.102/0. 17.102
libpostproc 52. 2.100/52. 2.100
Unrecognized option 'slang'.
Error splitting the argument list: Option not found
Dopo più googling ho trovato un altro modo per farlo usando il comando -metadata:
ffmpeg -i input.mp4 -i subs.srt -c:a copy -c:v copy -c:s mov_text -metadata:s:s:0 language=eng output.mp4
e che funziona assolutamente bene . Ma questo non è menzionato nella pagina man ffmpeg, mentre -slang è, il che mi fa pensare che il comando -metadata sia forse obsoleto o in qualche altro modo non buono come -slang.
- Qual è la differenza tra l'utilizzo dei due metodi precedenti (-slang vs -metadata)?
- Perché il comando my -slang ha restituito un errore? L'ho usato in modo errato?
si dovrebbe includere l'uscita della console competere ffmpeg per ognuno dei vostri comandi ffmpeg. – LordNeckbeard