Isso deve ser bastante trivial, mas não consigo encontrar uma maneira de fazê-lo funcionar.
Quero que o FFmpeg pegue uma imagem JPEG e um arquivo de áudio como entrada e gere um arquivo de vídeo com a mesma duração que o arquivo de áudio (esticando a imagem estática por toda a duração).
Eu não ligo muito para qual codec de vídeo é usado para saída, mas é vital que eu possa usar "copiar" como codec de áudio (por exemplo, copiar o fluxo de áudio sem transcodificá-lo).
Qual é a linha de comando correta que faria isso?
Eu tentei:
ffmpeg -i image8.jpg -i sound11.amr -acodec copy test.avi
e tentei um monte de combinações com e sem -s 640x360
, -loop_input
, -shortest
, -t xxx
, -r 0.1
(artificialmente baixa taxa de quadros na esperança de que o vídeo seria mais) e-f image2
Ou eu recebo erros ou recebo um arquivo de vídeo com a duração de um quadro.
Pesquisei no Google e encontrei uma dúzia de soluções propostas (supostamente para essa mesma pergunta), nenhuma das quais funciona.
Alguém pode sugerir um comando funcional e explicar a lógica por trás dele?
ffmpeg -y -i image.png -i audio.mp3 -c:a copy result.avi