回答:
ビデオを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"
オプションに続く入力ファイル(movie.mp4)で、すべてのストリームのタイムスタンプを3.84秒オフセットします。
-map 1:v -map 0:a
2番目の(遅延)入力からビデオストリームを取得し、最初の入力からオーディオストリームを取得します。もちろん、両方の入力が同じファイルである場合があります。
より詳細な説明はここにあります:http :
//alien.slackbook.org/blog/fixing-audio-sync-with-ffmpeg/
ffprobe.exe "input_file.mp4"
またはffmpeg.exe -i "input_file.mp4"
、遅延するオーディオストリームのインデックスが2(つまり、3番目のストリーム)であり、遅延入力が2番目(私の例のように)。のみ第三の流れを遅延させるために、第二の(遅延)入力から第一の入力と一つのオーディオストリームから他のすべてのストリームを取る:-map 0:0 -map 0:1 -map 1:2
-map 1:m:language:eng
、すべてのストリームを選択することに注意してくださいおそらく複数のオーディオおよび/または字幕ストリームを含む、基準を満たす。あなたにはより多くの情報を見つけることができますstackoverflow.com/questions/46769419/...
-c copy
代わりに使用でき-vcodec copy -acodec copy
、itsoffset
ビデオにのみ影響するため、これは同じように機能する可能性がありますか?:ffmpeg -i "movie.mp4" -itsoffset 3.84 -c copy "movie-video-delayed.mp4"
そして、代わりにオーディオに遅延をかけるには、持続時間に負の符号を追加し-3.84
ます: