これまで、次のスクリプトを使用して、大きなビデオからビデオの重要な部分を切り取ると同時に、入力ファイル内の複数のオーディオトラックの中で最も同期されたオーディオトラックを選択しました。
infile="2023-04-15 23-46-57.mp4"
outfile="John Rambo.mp4"
starttimestamp=00:00:04
endtimestamp=01:28:51
ffmpeg -i "$infile" -c:a copy -c:v copy -map 0:0 -map 0:1 -ss $starttimestamp -to $endtimestamp "$outfile"
(0:1は、タイムスタンプやファイル名と同様にケースごとに変更されます。)
これまでは完璧に働いていました。ただし、現在ffmpeg 4.4.3(デスクトップ== Fedora 35の最新バージョン)と6.0.1(NAS == Synology Community Pack)では、A / Vをこのように同期したままにすることはできません。 。中間部分を切り取らずにオーディオチャンネル(この場合は0:1)(A / V同期など)のみを抽出すると、出力は同期されます。ファイルを切り取った後は非同期です。私は1つ(中間ファイル)の代わりにステップに切り取り、以下のようにffmpeg呼び出しのオーディオ部分に-ssと-to引数をコピーしようとしました。
ffmpeg -i "$infile" -c:a copy -ss $starttimestamp -to $endtimestamp -c:v copy -map 0:0 -map 0:1 -ss $starttimestamp -to $endtimestamp "$outfile"
私は何が間違っていましたか?