ffmpeg - combinando múltiplas imagens e múltiplos arquivos de áudio?

0

Estou tentando criar um vídeo com duas imagens figure1.png e figure2.png (que podem ter tamanhos diferentes) e dois arquivos de áudio audio1.wav e audio2.wav . Eu quero fazer isso de forma que figure1.png mostre até que audio1.wav pare de tocar e então figure2.png mostre até que audio2.wav pare de ser reproduzido (com audio2.wav começando após audio1.wav). Não estou tendo muita sorte em fazer isso. Minha melhor tentativa até agora é criar dois vídeos e tentar mesclá-los, mas devido a problemas de formatação, isso parece não funcionar. Eu estava, portanto, me perguntando se havia uma maneira de fazer isso com um único comando ffmpeg e, em caso afirmativo, o que?

    
por Quantum spaghettification 15.05.2017 / 12:14

2 respostas

2

Digamos que o tamanho da primeira imagem seja maior e seja WxH. Se não reduzir o tamanho 2 e depois pad. De qualquer forma, as duas imagens devem ter o mesmo tamanho.

ffmpeg -i image1.png -i image2.png -i audio1.wav -i audio2.wav
  -filter_complex
     "[0]setsar=1[a];
      [1]pad=W:H:(ow-iw)/2:(oh-ih)/2:color=white,setsar=1[b];
      [2]abitscope=r=25:s=WxH[a1v]; 
      [3]abitscope=r=25:s=WxH[a2v];
      [a1v][a]overlay[v1];
      [a2v][b]overlay[v2];
      [v1][2:a][v2][3:a]concat=n=2:v=1:a=1"  out.mp4    
    
por 15.05.2017 / 13:06
0

Você deve primeiro criar o vídeo sem áudio, eu acho. Para fazer isso:

ffmpeg -framerate 24 -i figure%01d.png output.mp4

% 01d é o padrão dos seus nomes de arquivos png. Eu suponho que o formato do contêiner mp4 seja adequado.

Depois disso, de acordo com a duração dos seus arquivos de áudio (você deve ajustar os cálculos manualmente, não há nenhum mecanismo de ajuste automático, tanto quanto eu sei).

ffmpeg -loop 1 -i figure%01d.png -i audio.wav -c:v libx264 -c:a aac -b:a 192k -shortest out.mp4

Aqui, o codificador interno AAC é usado, mas você também pode usar qualquer outro mecanismo de codificação AAC.

    
por 15.05.2017 / 12:26