В моем файле .mp4 задержка звука составляет -3840 мс. Я синхронизировал его в KMplayer и не хочу использовать MKVGUI для создания файла .mkv. Мне просто нужно задержать звук на -3840 мс, все остальное не повреждено.
Какова будет правильная команда для достижения этой цели с помощью ffmpeg?
Буду признателен за вашу помощь.
2 ответа
Если вам нужно задержать видео на 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/
сделать первый звук тишины:
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