37

В моем файле .mp4 задержка звука составляет -3840 мс. Я синхронизировал его в KMplayer и не хочу использовать MKVGUI для создания файла .mkv. Мне просто нужно задержать звук на -3840 мс, все остальное не повреждено.
Какова будет правильная команда для достижения этой цели с помощью ffmpeg?
Буду признателен за вашу помощь.

2 ответа2

55

Если вам нужно задержать видео на 3,84 секунды, используйте такую команду:

ffmpeg.exe -i "movie.mp4" -itsoffset 3.84 -i "movie.mp4" -map 1:v -map 0:a -c copy "movie-video-delayed.mp4"

Если вам нужно задержать звук на 3,84 секунды, используйте такую команду:

ffmpeg.exe -i "movie.mp4" -itsoffset 3.84 -i "movie.mp4" -map 0:v -map 1:a -c copy "movie-audio-delayed.mp4"

Убедитесь, что ваша сборка ffmpeg не слишком старая, более новой, чем 2012, будет достаточно.


объяснение

-itsoffset 3.84 -i "movie.mp4"

Смещает временные метки всех потоков на 3,84 секунды во входном файле, который следует за параметром (movie.mp4).

-map 1:v -map 0:a

Принимает видеопоток со второго (задержанного) входа и аудиопоток с первого входа - конечно, оба входа могут быть одним файлом.

Более подробное объяснение можно найти здесь:
http://alien.slackbook.org/blog/fixing-audio-sync-with-ffmpeg/

0

сделать первый звук тишины:

ffmpeg -f lavfi -i anullsrc = channel_layout = 5.1:sample_rate = 48000 -t 3 silence_3_sec.mp3

затем concat файлы:

ffmpeg -i "concat:silence_3_sec.mp3 | input.mp3" -acodec copy out.mp3

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .