usando o ffmpeg para juntar arquivos de imagem, tendo problemas com a sincronização de áudio

0

Vou juntar imagens gravadas ao lado de um vídeo e depois usar a faixa de áudio do vídeo original. Para garantir que as coisas funcionem como esperado, eu corro um teste simples que divide um vídeo em imagens e as reúne no vídeo original:

ffmpeg -i '.\Gangnam Style.mp4' -r 30 -s 640x480 -f image2 temp/foo-%07d.jpeg
ffmpeg -f image2 -i temp/foo-%07d.jpeg -r 30 -i '.\Gangnam Style.mp4' -map 0:0 -map 1 test.webm

Na saída resultante test.webm, o áudio não está mais sincronizado com o vídeo. Alguém sabe por que isso seria? Como uso imagens feitas a partir do vídeo original, acho que o áudio deve se alinhar perfeitamente.

    
por Frank Schwieterman 12.12.2013 / 19:40

1 resposta

3

Isso deve funcionar bem:

ffmpeg -r 30 -i temp/foo-%07d.jpeg -i '.\Gangnam Style.mp4' output.webm

Este é o motivo pelo qual suas imagens não foram alinhadas com seu fluxo de áudio.

ffmpeg -i '.\Gangnam Style.mp4' -r 30 -s 640x480 -f image2 temp/foo-%07d.jpeg

Aqui você está criando imagens a 30 fps ( -f image2 não é necessário aqui).

ffmpeg -f image2 -i temp/foo-%07d.jpeg -r 30 -i '.\Gangnam Style.mp4' …

Aqui você está lendo imagens a 25 fps e o arquivo MP4 a 30 fps. A razão para isso é que as opções passadas antes de -i se aplicam somente a essa entrada. Todas as opções após -i são para a próxima entrada ou são opções de saída.

25 fps são o padrão para o image2 demuxer (é a opção -framerate , -r é um atalho). Note que -f image2 é supérfluo em seu comando. Eu também estou bastante certo de que as opções -map podem ser deixadas de fora no seu caso. Normalmente, o ffmpeg mapeia um vídeo e uma fonte de áudio para a saída corretamente.

    
por 12.12.2013 / 19:51

Tags