ffmpeg encurtando o tempo de execução de vídeo calculado

1

Eu tenho uma sequência de imagens de 5.664 imagens .tga que devem ser reproduzidas a 24fps (então 236 segundos) e um arquivo de áudio ac3 que eu editei com exatamente 236 segundos (mais menos 0.01s) de comprimento.

Eu usei o seguinte comando ffmpeg para misturá-los em um arquivo .mpg:

ffmpeg -i music.ac3 -i o%04d.tga -r 24 -sameq a.mpg

O áudio tocou durante os 236 segundos completos; no entanto, o vídeo terminou em apenas 226 segundos, mantendo o quadro final dos últimos 10 segundos de áudio.

Por que o ffmpeg encurta minha reprodução da sequência de imagens em 10s, e como posso fazê-lo funcionar durante todo o tempo?

    
por jla 21.04.2012 / 15:09

1 resposta

2

A saída do console (você deve sempre incluir isto) provavelmente mostra que a entrada está sendo lida a 25 fps. Este é o comportamento padrão, a menos que você diga o contrário. Seu -r 24 está sendo aplicado à saída e acredito que isso possa estar causando o seu problema. Mova -r 24 como uma opção de entrada, portanto, é antes de -i o%04d.tga . A saída então herdará essa taxa de quadros. Outra opção a considerar é -shortest e terminará a codificação na entrada mais curta (o áudio ou o vídeo).

Além disso, -sameq não é uma opção recomendada. Não significa "mesma qualidade". Use -qscale em vez disso. O intervalo completo é 1-31, mas tente valores entre 2-5. Geralmente você usa o valor mais alto que ainda parece bom para você. Veja este tutorial do FFmpeg para mais informações e exemplos.

    
por 21.04.2012 / 21:05