- Se a duração do vídeo for menor que a duração do áudio,
-shortest
é o que você deseja.
- Se a duração do vídeo for maior que a duração do áudio, nenhum sinalizador será o desejado.
Não há sinalizador para automatizar esta decisão.
EDITAR
Inspirado pela resposta do @ deadcode, preciso deixar claro que "nenhum sinalizador para automatizar" obviamente não é verdadeiro, se você estiver disposto a recodificar : nesse caso, siga apad
as sugestões do @deadcode.
Se, no entanto, você deseja evitar a recodificação (ou seja -c:v copy
), a resposta permanece.
Existe uma solução alternativa usando o ffconcat
desmuxador, mas ele precisa de um pouco de trabalho:
- crie um arquivo que contenha silêncio exatamente no mesmo formato do seu arquivo de áudio ("silence.wav")
- crie um arquivo concat "audio.ffconcat" (com tantas linhas de silêncio quanto necessário para garantir que o áudio seja longo o suficiente):
.
file 'audiofile.wav'
file 'silence.wav'
file 'silence.wav'
...
file 'silence.wav'
- corre
ffmpeg -i videofile.mp4 -f concat -i audio.ffconcat -c:v copy output.mp4
Isso sintetizará o apad
filtro sem um gráfico de filtro, permitindo assim um mux sem recodificação.