Eu converto vídeos usando o FFMPEG. Meu objetivo é convertê-los para o formato MP4 ( MPEG-4 Parte 14 ) com fluxo de áudio codificado em AAC e fluxo de vídeo codificado em MPEG-4 parte 10 .
Eu uso a seguinte linha para converter os vídeos:
ffmpeg -y -i "{inputFile}" "{outputFile}"
O vídeo convertido parece bom, no entanto, a duração dos fluxos no arquivo convertido e no arquivo de entrada nem sempre corresponde.
Eu fiz alguns experimentos e a diferença na duração está, sem dúvida, lá, no entanto, não é tanto assim - de qualquer maneira eu estou testando com pequenos vídeos. Aqui estão os meus resultados:
| InputFile | InputAudio | InputVideo | OutputAudio | OutputVideo |
|------------|------------|------------|-------------|--------------|
| h.avi | 3s 631ms | 3s 567ms | 3s 668ms | 3s 567ms |
| h.flv | 3s 631ms | 3s 558ms | 3s 668ms | 3s 567ms |
| h.mov | 3s 532ms | 3s 533ms | 3s 682ms | 3s 534ms |
| h.mp4 | 3s 605ms | 3s 534ms | 3s 682ms | 3s 567ms |
| h.mpg | 3s 605ms | 3s 533ms | 3s 563ms | 3s 534ms |
| h.wmv | 3s 620ms | 3s 633ms | 3s 659ms | 3s 567ms |
Como eu criaria um software no topo do FFMPEG, ficaria mais feliz se pudesse ao menos entender o motivo dessa diferença. É por causa de alguma transcodificação desnecessária?
Nesse caso, posso desativar essa transcodificação para impedir que o FFMPEG redefina meu arquivo de vídeo de entrada?
Se não consigo desativá-lo, como posso ter certeza (além dos testes) de que essa diferença não é proporcional ao tamanho do vídeo?
Se eu converter, por exemplo, um vídeo de 10 horas, uma diferença de vários segundos ou até minutos não será adequada para mim.