FFmpeg でビデオの特定の部分を、再エンコードせずに削除するにはどうすればよいでしょうか?

FFmpeg でビデオの特定の部分を、再エンコードせずに削除するにはどうすればよいでしょうか?

私は見つけることができたこのスレッドファイルから特定の部分を切り取る方法について。私はビデオの選択した部分を削除するという正反対のことをしたいので、あまり役に立ちません。

このユーザーの再エンコードせずに一部を抽出するソリューションは非常にうまく機能します。代わりに、選択部分を削除する同様の操作を行うことはできますか?

再エンコードする必要がない方がよいのですが、どちらの方法でも問題ないので、どのような解決策でも構いません。

答え1

コーデックの「コピー」オプション -c:v copy -c:a copy を使用して必要な部分を抽出します。

6 分間のビデオがあり、2~3 分と 4~5 分の部分が不要だとします。

ffmpeg -ss 00:00:00 -to 00:02:00 -i input.mp4 -c:v copy -c:a copy input_part1.mp4
ffmpeg -ss 00:03:00 -to 00:04:00 -i input.mp4 -c:v copy -c:a copy input_part2.mp4
ffmpeg -ss 00:05:00 -to 00:06:00 -i input.mp4 -c:v copy -c:a copy input_part3.mp4

抽出したファイルのテキストファイルを作成します(filelist.txt)

file 'input_part1.mp4'
file 'input_part2.mp4'
file 'input_part3.mp4'

そして、このようにして結合します

ffmpeg -safe 0 -f concat -i filelist.txt -c 出力.mp4 をコピー

output.mp4 には不要な部分が含まれていないはずです。

関連情報