Convierto videos usando FFMPEG. Mi objetivo es convertirlos al formato contenedor MP4 ( MPEG-4 Parte 14 ) con transmisión de audio codificada AAC y transmisión de video codificada MPEG-4 parte 10 .
Yo uso la siguiente línea para convertir los videos:
ffmpeg -y -i "{inputFile}" "{outputFile}"
El video convertido se ve bien, sin embargo, la duración de las transmisiones en el archivo convertido y el archivo de entrada no siempre coinciden.
He hecho algunos experimentos y la diferencia en la duración está indudablemente ahí, sin embargo, no es tanto, de todos modos estoy probando con videos pequeños. Aquí están mis 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 |
Dado que construiría un software en la parte superior de FFMPEG, sería más feliz si al menos pudiera entender la razón de esta diferencia. ¿Es por alguna transcodificación innecesaria?
En este caso, ¿puedo desactivar esta transcodificación para evitar que FFMPEG vuelva a muestrear mi archivo de video de entrada?
Si no puedo apagarlo, ¿cómo puedo estar seguro (además de probar) que esta diferencia no es proporcional al tamaño del video?
Si convierto, por ejemplo, un video de 10 horas, una diferencia de varios segundos o incluso minutos no es adecuada para mí.