FFMPEG 範囲内でビデオをランダムな長さに分割

FFMPEG 範囲内でビデオをランダムな長さに分割

ビデオを均等な部分ではなく複数の部分に分割したいです。

各クリップを 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

関連情報