Eu tenho trabalhado com o FFMPEG para codificar subs.
$for i in *.mkv;do ffmpeg -i "$i" -map 1 -filter_complex subtitles=video.ssa -vcodec libx264 -acodec aac -copy_unknown -map_metadata:s:v 0:g "../../A/bra/ca/da/bra/SS/taging/C24/${i%.mkv*}.mp4";done
Abaixo estão as mensagens de erro que recebi desde a habilitação da biblioteca libass; No entanto, eu não sei o suficiente sobre edição de vídeo para entender tudo isso. Minha pergunta é no que diz respeito à codificação.
Na documentação do ffmpeg, a seção AVOption: subtitle_filter_complex declara que a codificação deve dizer: -vf subtitles=video.srt
–– este é o exemplo deles para a seção de legendas –– e eles especificam que isso vai levar o fluxo de legenda de entrada e “queimar” no fluxo de vídeo da saída.
$s[Parsed_subtitles_0 @ 0x7fe77ef00000] Unable to open video.ssa
[AVFilterGraph @ 0x7fe77ee0cf80] Error initializing filter 'subtitles' with args 'video.ssa'
Error initializing complex filters.
No such file or directory
$[Parsed_subtitles_0 @ 0x7fe77ef00000] Shaper: FriBidi 0.19.7 (SIMPLE) HarfBuzz-ng 1.7.5 (COMPLEX)
[Parsed_subtitles_0 @ 0x7fe77ef00000] Unable to open video.ssa
[AVFilterGraph @ 0x7fe77ee0cf80] Error initializing filter 'subtitles' with args 'video.ssa'
Error initializing complex filters.
No such file or directory'
A minha pergunta é como você utiliza o filter_complex em relação ao seu exemplo?
A parte "video.ssa" do comando inverte para o nome do arquivo do vídeo que contém o fluxo.
Mas isso significa que eu tenho que substituir o "nome do arquivo" ou "vídeo" por uma variável em lote?
Tags video ffmpeg video-conversion