車載動画制作者向け。動画を一定間隔で切り出す作業を自動化したい人向け。
概要
最近AIがいい感じに動画カットするツールもあったりしますが、あえて『指定した間隔で機械的に切る』ツールを用意しました。
たとえば『n秒おきにカット』すれば、景色が少しずつ変わっていく様子をテンポよく伝えられます。そういう動画を作る人向けです。
このブログで過去にそういうカットスクリプトを出してますが、今回は機能を整えて不具合を修正して1コマンドで完結するようにしました。
特徴
GitHubのREADMEにも書いてますが、個人的にココがいいと思っているところです。
- 切り出した区間から黒画面検出を使って有効なフレームを判定
- 切った動画に黒画面が入ったりしません。すぐ使えます。
- 音声にフェード処理を適用
- 切った動画の最初と最後に、瞬間的なフェードイン・アウトを入れることができます。これで動画を繋いだときのブツノイズを防止できます。フェードイン・アウトの長さは調整できます。
使い方
詳しくはGitHubのREADMEを見ていただきたいです。以下は例です。
切り出し元の動画を用意します。ここではsample.mp4です。切り出した動画の出力先を用意します。ここではoutディレクトリです。

このようなコマンドを入れます。意味は『120秒ごとに3秒動画をoutディレクトリに切り出す』です。-q は ffmpegのログ出力を静かにします。-c は切り出したものを繋いだ動画も作成します。-cf 1.0 は繋いだ動画の最後に1秒の黒フェードアウトを入れます。
python interval_cut.py sample.mp4 3 120 -o out -q -c -cf 1.0
なので、切り出しだけが目的なら -c -cf 1.0 は不要です。
音声フェードの -af オプションが設定されてませんがデフォルトで0.05秒が設定されます。もっと短くするときは -af 0.001 などの小さい数値を設定してください。音声フェードを入れないならば -af 0 を入れてください。
コマンドを実行すると経過のログが流れます。

実行が終わると以下のように切り出されます。4桁の数字は切り出し開始の時間(秒)です。sample_concat.mp4は -c オプションを付けたので、切り出したものを繋いだ動画が出力されています。-cf 1.0 を付けてるので最後は1秒で黒フェードアウトします。

出力した切り出し動画は、動画編集ソフトで繋いでください。
説明おわり。
まとめ
-c で切り出した動画を繋げる機能はおまけです。

