ffmpeg: cómo evitar el "inicio: 0.033333" al extraer audio de mp4

Al extraer audio y video por separado de un mp4 y volver a combinar

ffmpeg -accurate_seek -ss 30 -t 10 -i input.mp4 -vn output-audio.mp4
ffmpeg -accurate_seek -ss 30 -t 10 -i input.mp4 -an output-video.mp4
ffmpeg -i output-audio.mp4 -i output-video.mp4 output-combine.mp4

los tres mp4-s tienen diferente longitud según ffprobe:

ffprobe output-video.mp4
Duration: 00:00:10.00, start: 0.000000, ...
ffprobe output-audio.mp4
Duration: 00:00:10.03, start: 0.033333, ...
ffprobe output-combine.mp4
Duration: 00:00:10.08, start: 0.033333, ...

al combinar audio y video con-shortest

ffmpeg -i output-audio.mp4 -i output-video.mp4 test-combine.mp4

la longitud es

ffprobe output-combine.mp4
Duration: 00:00:10.04, start: 0.033333, ...

¿Cómo se puede evitar el desplazamiento inicial (0,033333) para que todas las partes tengan la misma longitud y se pueda restaurar la parte original combinando audio y video?

Compartir registro completo deffmpeg -i input.mp4

Respuestas (1)

Corrección: en lugar de

ffmpeg -i output-audio.mp4 -i output-video.mp4 test-combine.mp4

debería ser

ffmpeg -i output-audio.mp4 -i output-video.mp4 -shortest output-combine.mp4

Tipo de respuesta:

ffmpeg -i output-video.mp4 -itsoffset 0.033333 -t 9.966666 -i output-audio.mp4  output-combine.mp4

parece hacer el trabajo, aunque el resultado difiere ligeramente en el tamaño del archivo de una extracción directa (directa es más grande que combinar) realizada con

ffmpeg -accurate_seek -ss 30 -t 10 -i input.mp4 output-direct.mp4