Criando vídeo com vários áudios e uma imagem estática para o YouTube

1

Eu quero criar muitos vídeos com vários fluxos de áudio e uma única foto.

Por exemplo, eu tenho

  • song1.mp3
  • song2.mp3
  • song3.mp3

e uma única foto. O que preciso fazer é criar muitos vídeos e nomear esses vídeos como: song1.mp4 , song2.mp4 , song3.mp4

Eu quero criar muitos vídeos de uma só vez. Eu tenho esse script para apenas uma foto e um mp3, mas preciso criar vídeos em massa.

ffmpeg -loop 1 -shortest -r 0.1 -i online.mp3 -i imagen.png -ab 128k output.avi

Você pode me ajudar?

    
por user320356 04.05.2014 / 15:59

1 resposta

3

Primeiro, você precisa reordenar suas opções de ffmpeg um pouco. O -loop 1 deve vir imediatamente antes da imagem de entrada, e o -r 0.1 deve idealmente ir como uma opção de saída após a imagem. Veja mais no wiki do FFmpeg sobre como criar uma apresentação de slides a partir de imagens .

Em seguida, verifique se você executou uma versão recente do ffmpeg. Baixe um aqui e não use o que você instalou com apt-get - está muito desatualizado.

Além disso, você quer usar H.264 e AAC como codec de áudio e vídeo, respectivamente, com MP4 como contêiner, não a combinação MPEG-4 e MP3 em AVI que você obterá com seu comando atual.

Faça o loop em todos os arquivos MP3, retire a extensão e execute o script ffmpeg:

for f in *.mp3; do
    # create output filename songX.mp4
    name="${f%%.mp3}.mp4"
    # run ffmpeg command
    ffmpeg -loop 1 -i imagen.png -i "$f" \
      -r 0.1 -shortest \
      -c:v libx264 -pix_fmt yuv420p -c:a aac -strict experimental \
      -crf 18 -b:a 128k "$name"
done

O que também adicionei é:

  • CRF (fator de taxa constante) define a qualidade do vídeo (use algo entre 18 e 28, menor é melhor)
  • uma conversão explícita para subamostragem 4: 2: 0 - caso contrário, você obterá 4: 4: 4 se tem PNG como entrada, e isso não pode ser reproduzido em todos os jogadores
por 04.05.2014 / 16:15