Quero usar o FFmpeg para adicionar faixas de áudio e legendas em inglês ( eng.mp3
e eng.srt
) a um vídeo (podemos chamá-lo de 3.mp4
) que já contém italiano, francês e alemão. O crucial é que o vídeo final permita alternar entre faixas de áudio e legendas em diferentes idiomas.
Para resumir, eu quero :3.mp4 + eng.mp3 + eng.srt → 3plus1.mp4
Eu tentei isso, mas não funciona: :
ffmpeg -i 3.mp4 -i eng.mp3 -i eng.srt \
-map 0:v -map 0:a -map 1:a -map 2:s:0 \
-metadata:s:a:0 language=eng -metadata:s:s:0 language=eng \
-c:s:0 mov_text -shortest 3plus1.mp4
Posso fazer um vídeo do zero com 4 idiomas ( 4.mp4
) começando com todos os .mp3
arquivos .srt
e da seguinte maneira (observe que a parte do vídeo é produzida dinamicamente como um fundo preto; isso mantém os arquivos pequenos para testes e o vídeo não é o ponto aqui):
Isto funciona :ita.mp3 + fre.mp3 + ger.mp3 + eng.mp3 + ita.srt + fre.srt + ger.srt + eng.srt → 4.mp4
ffmpeg -f lavfi -i "color=color=black:s=1280x720" \
-i ita.mp3 -i fre.mp3 -i ger.mp3 -i eng.mp3 \
-i ita.srt -i fre.srt -i ger.srt -i eng.srt \
-map 0:v -map 1:a:0 -map 2:a:0 -map 3:a:0 -map 4:a:0 \
-map 5:s:0 -map 6:s:0 -map 7:s:0 -map 8:s:0 \
-metadata:s:a:0 language=ita -metadata:s:a:1 language=fra -metadata:s:a:2 language=ger -metadata:s:a:3 language=eng \
-metadata:s:s:0 language=ita -metadata:s:s:1 language=fra -metadata:s:s:2 language=ger -metadata:s:s:3 language=eng \
-c:s:0 mov_text -c:s:1 mov_text -c:s:2 mov_text -c:s:3 mov_text \
-shortest 4.mp4
Não vejo como fazer upload dos arquivos que estou usando para testes aqui, mas encontrei um site chamado disroot que parece permitir o compartilhamento de arquivos.
Este link é para um count.zip
arquivo que criei com todos os arquivos que tenho usado para testes.
Editar: O comando fornecido por @Alain1A45 quase funciona:
ffmpeg -i 3.mp4 -i eng.mp3 -i eng.srt -map 0:v -map 0:a -map 1 -map 0:s -map 2 -c copy -c:s:3 mov_text -metadata:s:a:3 language=eng -metadata:s:s:3 language=eng -shortest 3plus1.mp4
Digo "quase funciona" porque adiciona o áudio adicional (eng.mp3) e a legenda (eng.srt), mas o áudio em inglês não aparece no player do QuickTime no Mac OS nem no player de vídeo do aplicativo Documents (da Readdle) para iPhone. Como são esses que eu uso o tempo todo, ainda estou procurando uma solução.
Aqui está uma captura de tela mostrando que o áudio em inglês não está disponível:
Eu sei que o áudio em inglês está lá porque consigo ouvi-lo usando comandos ffmpeg e o player VLC o exibe tanto no Mac OS quanto no iOS. Infelizmente, acho o player VLC muito inconveniente de usar.