
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 からの間隔に達したときにオーバーレイが終了します。