При извлечении аудио и видео отдельно из mp4 и повторном объединении
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
три mp4-файла имеют разную длину в зависимости от 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, ...
при объединении аудио и видео с-shortest
ffmpeg -i output-audio.mp4 -i output-video.mp4 test-combine.mp4
длина
ffprobe output-combine.mp4
Duration: 00:00:10.04, start: 0.033333, ...
Как можно избежать начального смещения (0,033333), чтобы все части имели одинаковую длину, а исходную часть можно было восстановить, объединив аудио и видео?
Исправление: вместо
ffmpeg -i output-audio.mp4 -i output-video.mp4 test-combine.mp4
так должно быть
ffmpeg -i output-audio.mp4 -i output-video.mp4 -shortest output-combine.mp4
Тип ответа:
ffmpeg -i output-video.mp4 -itsoffset 0.033333 -t 9.966666 -i output-audio.mp4 output-combine.mp4
кажется, выполняет свою работу, хотя результат немного отличается по размеру файла от прямого извлечения (прямое больше, чем комбинированное), выполненное с помощью
ffmpeg -accurate_seek -ss 30 -t 10 -i input.mp4 output-direct.mp4
Гьян
ffmpeg -i input.mp4