ffmpeg で指定された開始時間と終了時間から 50 秒前のムービーをクリップするにはどうすればよいですか?

ffmpeg で指定された開始時間と終了時間から 50 秒前のムービーをクリップするにはどうすればよいですか?

ffmpeg を使用して開始時間と終了時間を指定したムービーをクリップしたいのですが、開始時間の設定はできましたが、最後に終了時間を 50 秒前に設定したいです。設定方法がわかりません。

ffmpeg -i demo.mp4 -ss 00:01:20 -acodec libfaac -ab 128k -vcodec mpeg4 -b 800k -mbd 2 -cmp 2 -subcmp 2 new_demo.mp4

答え1

正しい方法は、継続時間の入力情報の ffmpeg 読み取り結果を解析し、-tの値を指定することですduration - start time - 50s

非常識な方法は、入力を 2 回入力し、オーバーレイ フィルターを使用することです。

ffmpeg -ss 2:10 -i demo.mp4 -ss 00:01:20 -i demo.mp4 -filter_complex overlay=shortest=1[v] -map [v] -map 1:a -shortest -acodec libfaac -ab 128k -vcodec mpeg4 -b 800k -mbd 2 -cmp 2 -subcmp 2 new_demo.mp4

最初の入力には、開始時間 + カットするビデオの終了部分の量の ss 値があります。

2 番目の入力には、開始時間の ss 値が含まれます。

基本的な考え方は、最短の入力が終了したときにオーバーレイ フィルターを終了できるようにすることです。最初の入力には ss 値が設定され、end からの間隔に達したときにオーバーレイが終了します。

関連情報