web-dev-qa-db-ja.com

ffmpegで、音声を変換せずに.mp4ビデオの音声のみを遅延させる方法は?

私の.mp4ファイルでは、オーディオ遅延は-3840ミリ秒です。私はKMplayerでそれを同期させました、そして私はMKVGUIを使用して.mkvファイルを作りたくありません。私はちょうど-3840ミリ秒オーディオを遅らせる必要があります。
ffmpegを使ってこれを達成するための正しいコマンドは何でしょうか。
どうぞよろしくお願いします。

38
Alireza

videoを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"

audioを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"

followオプション(movie.mp4)の入力ファイルで、すべてのストリームのタイムスタンプを3.84秒オフセットします。

-map 1:v -map 0:a

2番目の(遅れた)入力からのビデオストリームと最初の入力からのオーディオストリームを取ります - もちろん両方の入力は同じファイルかもしれません。

より詳細な説明はここにあります。
http://alien.slackbook.org/blog/fixing-audio-sync-with-ffmpeg/

61
Weaver

最初の無音を音声にする:

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

次にファイルを連結します。

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

0
Ivan Malyshev