truncar o último quadro enquanto converte imagem única + faixa de áudio em vídeo em ffmpeg


1

graças às respostas a essa pergunta do superusuário Combine uma imagem + um arquivo de áudio para criar um vídeo usando o FFmpeg . Consegui criar um vídeo a partir de uma única imagem e uma trilha de áudio.

eu usei o código PJ Brunets:

ffmpeg -r 1 -loop 1 -i 00.png -i 00.wav -acodec copy -r 1 -shortest 00.avi

funciona bem, mas notei que a duração do vídeo gerado é maior que a faixa de áudio original. no meu caso, o áudio é de 36,61 segundos e o vídeo resultante é de 38 segundos.

Eu acho que o problema vem da baixa taxa de quadros, portanto, aumentei a taxa de quadros de 1 fps para 2 fps até 25 fps e comparei os resultados: com taxas de quadros mais altas, você obtém mais precisão na duração.

Agora, minha pergunta é: existe uma maneira de ainda usar 1 qps, mas truncar o último quadro quando o áudio terminar? Dessa maneira, você pode obter tempos de codificação mais rápidos sem perder o comprimento original.


AFAIK, não é possível para AVI. Os AVIs não armazenam PTS; portanto, a duração de cada quadro é recíproca da taxa de quadros; portanto, sua duração é quantizada de acordo com esse valor.
Gyan

existe outro contêiner como o avi que pode armazenar wav sem perdas?
31516 stefano

MOV, MKV, NUT ..
Gyan

mov & mkv são menos precisos que avi (40-41s). noz tem 37 anos, mas não é aceito pelo youtube. Eu tenho que lançar muitas faixas + 1h de duração e outras faixas únicas que precisam seguir uma a outra sem costura, como em um mix. cheguei à conclusão de usar avi 1fps (com erro de + 1,5s) para as faixas longas e avi 2fps (+ 1s) para as faixas únicas. 10 fps (+ 0,2s) ou 25 fps (quase preciso) seria melhor para uma transição perfeita, mas a imagem fica bloqueada após 4fps ou mais. se eu fizer o mesmo trabalho com as imagens do sony vegas, não ficarão em blocos, mas ele precisará de muito mais tempo para codificar e min. framerate é 12fps.
31516 stefano

Se você precisar anexar vários segmentos de áudio / vídeo com precisão, use o filtro concat. Ele deve funcionar com 1 qps, mas, em qualquer caso, com o codec libx264 e 24 qps, ele funcionará.
Gyan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.