Quero usar o ffmpeg para fazer um vídeo em branco (preto) com áudio e legendas em diferentes idiomas. Consegui (1) fazer um vídeo preto, (2) adicionar 3 trilhas de áudio a ele, mas falhei em (3) adicionar legendas a ele. Nenhuma legenda aparece, embora todos os 3 áudios estejam lá e sejam alternáveis.
(1) Fiz o vídeo preto (silencioso) usando:
ffmpeg -loop 1 -i black.jpg -i silent.mp3 -acodec copy -shortest -vf scale=1280:720 silent.mov
onde black.jpg é uma imagem preta de 1280x720 e silent.mp3 tem 5 minutos de silêncio
(2) Adicionei as 3 faixas de áudio (italiano, francês, alemão) usando:
ffmpeg -i silent.mov -i ita.mp3 -i fre.mp3 -i ger.mp3 -map 0:v -map 1:a -map 2:a -map 3:a -metadata:s:a:0 language=ita -metadata:s:a:1 language=fra -metadata:s:a:2 language=ger ita-fre-ger.mov
(3) Tentei adicionar legendas para cada idioma usando:
ffmpeg -i ita-fre-ger.mov -i ita.srt -i fre.srt -i ger.srt -map 0 -map 1 -map 2 -map 3 -c copy -c:s mov_text -metadata:s:s:0 language=ita -metadata:s:s:1 language=fra -metadata:s:s:2 language=ger final.mov
Só esse último comando não funcionou. Como faço para adicionar as legendas? Eu ficaria feliz em usar .mp4 em vez de .mov, mas também não funcionou.
Atualização: Obrigado a @Ricardo Bohner que me deu a resposta. Para completar, aqui está como eu a apliquei à minha situação para obter o que eu queria em 1 passo:
ffmpeg -f lavfi -i "color=color=black:s=1280x720" -i ita.srt -i fre.srt -i ger.srt -i ita.mp3 -i fre.mp3 -i ger.mp3 -map 0:v -map 1:s:0 -map 2:s:0 -map 3:s:0 -map 4:a -map 5:a -map 6:a -metadata:s:a:0 language=ita -metadata:s:a:1 language=fra -metadata:s:a:2 language=ger -metadata:s:s:0 language=ita -metadata:s:s:1 language=fra -metadata:s:s:2 language=ger -c:s:0 mov_text -c:s:1 mov_text -c:s:2 mov_text -shortest test.mp4
Para mim isso funcionou para mp4
Quando tento criar o mesmo arquivo como *.mov, recebo o seguinte erro:
Erro FATAL, duração do arquivo muito longa para base de tempo, este arquivo não será 7.9kbits/s speed=21.1x reproduzível com QuickTime. Escolha uma base de tempo diferente com -video_track_timescale ou um formato de contêiner diferente
Mas o arquivo mov ainda é reproduzido como esperado no player VLC