ビデオを均等な部分ではなく複数の部分に分割したいです。
各クリップを 15 秒から 50 秒にしたいのですが、各クリップの長さはランダム (15 秒から 50 秒の範囲内) にしたいです。
コマンドラインで ffmpeg を使用してこれを実行するにはどうすればよいですか?
これはビデオを均等に分割するために使用したコマンドです
ffmpeg -i lutherceleb.mp4 -acodec copy -f segment -vcodec copy -reset_timestamps 1 -map 0 OUTPUT%d.mp4
答え1
これは少しハックですが、任意のスクリプト言語(例:Ruby)を使用して、分割時間のランダムなリストを生成することができます。合計時間(ここでは150)を変更し、そのスクリプトの出力をオプションに割り当てるだけです。-segment_times
$ times=$(ruby -e 's=[]; d=0; while d < 150 do t=rand(15..50); s << (d+t); d=d+t end; puts s.join(",")')
$ echo $times
15,53,96,124,168
$ ffmpeg -i lutherceleb.mp4 -f segment -segment_times $times -c copy -reset_timestamps 1 -map 0 OUTPUT%d.mp4
-acodec copy -vcodec copy
と短縮することもできます-c copy
。