動画編集のジャンプカットを完全自動化する方法【ffmpeg+Python】

動画編集のジャンプカットを完全自動化する方法【ffmpeg+Python】

YouTubeの動画編集で最も時間がかかる作業の一つが、無音部分のカット(ジャンプカット)です。10分の素材で30分以上かかるこの作業を、Pythonとffmpegだけで完全自動化する方法を公開します。

なぜジャンプカットが重要なのか

YouTubeで視聴維持率が低い動画の共通点は、無音の間が長すぎること。トーク系の動画を計測すると、全体の25%〜35%が無音区間です。この無音を手でトリミングするのは完全に機械的な作業で、クリエイティブな判断がほとんどありません。つまり自動化に最も向いている作業です。

使うツール:ffmpegとPython(無料)

使うツールは2つだけ。ffmpegPython。両方とも無料で、Premiere Proのライセンスすら必要ありません。

ffmpegは動画・音声を変換・加工できるコマンドラインツールで、YouTubeやInstagramの裏側でも使われています。内蔵のsilencedetectフィルタが無音検出のコアになります。

インストール方法

  • Windows公式サイトからダウンロード→パス設定
  • Macbrew install ffmpeg
  • Linuxapt install ffmpeg

Step 1:ffmpegで無音区間を検出する

以下のコマンドで無音の開始時刻と終了時刻が出力されます。

ffmpeg -i input.mp4 \
  -af silencedetect=n=-30dB:d=0.5 \
  -f null -

パラメータ解説

  • n=-30dB:ノイズ閾値。この音量以下を無音と判定
  • d=0.5:最小持続時間。0.5秒以上続く無音だけを検出

収録環境別の閾値ガイド

環境 推奨閾値 備考
静かなスタジオ -40〜-50dB 残響も少ない理想環境
自宅の部屋 -30dB 標準デフォルト値
ノイズ環境 -20〜-25dB エアコン・外音あり

まず-30dBで試して、カットされすぎなら閾値を下げる、足りなければ上げる。2〜3回で最適値が見つかります。

Step 2:Pythonで有音部分を結合する

ffmpegの出力をパースし、有音部分だけを再エンコードなしに結合します。ポイントは3つ。

  1. マージン:無音の前後に0.1〜0.15秒残す。サ行やハ行の子音が切れるのを防止
  2. 最小セグメント長:0.3秒未満の有音区間は無視。短すぎるセグメントはノイズになる
  3. concatデマルチプレクサ:再エンコードなしで結合するため品質劣化なし+高速

コア実装(約50行)

import subprocess, re

def detect_silence(video, threshold='-30dB', dur=0.5):
    cmd = ['ffmpeg', '-i', video, '-af',
           f'silencedetect=n={threshold}:d={dur}',
           '-f', 'null', '-']
    out = subprocess.run(cmd, capture_output=True).stderr
    return parse_ranges(out)  # [(start, end), ...]

def invert_ranges(silences, total_dur, margin=0.1):
    # 無音→有音に反転、マージン付き
    return [(max(0,e-margin), min(total_dur,s+margin))
            for s,e in gaps(silences)]

def ffmpeg_concat(video, segments, output):
    # concat demuxer で再エンコードなし結合
    ...

応用テクニック

1. 速度調整との組み合わせ

無音カット後にさらに全体を1.05〜1.1倍速にするとテンポが改善されます。

2. BGM対応

BGM入りの素材は、ffmpegのhighpassフィルタで人の声の周波数帯域だけを抽出してから無音検出をかけます。

3. バッチ処理

フォルダ内の全動画を一括処理するスクリプトにすれば、100本の動画も放っておくだけで全部完了します。

Premiere Pro内蔵機能でもできる

Premiere Pro 2024以降では、文字起こしベースの編集機能で無音部分の自動カットができます。プラグイン不要です。

  1. シーケンスを開いた状態で文字起こしパネルを表示
  2. 文字起こしを実行
  3. 右上メニューから「文字起こしベースの編集」に切り替え
  4. 語間削除やフィラーワード削除を選択

ただし文字起こし精度に依存するため、方言や専門用語が多い場合は誤検出に注意が必要です。

プラグインという選択肢

プラグイン 価格 特徴
AutoCut 有料(サブスク) AIベース、プリセット豊富
Silence Remover $49.99 閾値・持続時間の細かい設定
TimeBolt 有料 マルチカム対応
Jet Cut Ready 有料 日本語対応

3つの方法比較

方法 コスト 柔軟性 バッチ処理 おすすめ
Premiere内蔵 無料 1-2本/日
プラグイン 有料 安定品質重視
ffmpeg+Python 無料 大量処理・完全自動化

Premiere Proとの連携ワークフロー

自動カットした結果をEDLファイル(Edit Decision List)として書き出せば、Premiere Proのタイムラインにそのまま読み込めます。

AIで8割カットして、残りの2割を目で確認しながら直す。全部自動化するのが目的ではなく、自動化できるところは自動化して、人間にしかできない判断に集中するワークフローです。

3ヶ月間の実績データ

  • 無音カット率:トーク系で平均30%、解説系で平均22%
  • 視聴維持率:平均15%向上(最初の30秒は20%以上改善)
  • 作業時間:手動30分→スクリプト数秒+微調整5分(月20本で月10時間以上の節約)

注意点:自動カットが向かないケース

  • 意図的な間を使う演出(感動シーンの前の静けさなど)
  • 笑いの後の余韻
  • 音楽・ASMR系コンテンツ

こうした場合はEDL出力してPremiere Proで復元します。自動化できるところは自動化して、人間にしかできない判断に集中する。これがクリエイターとしてのDXの本質だと考えています。

まとめ

収録素材をフォルダに入れる→スクリプトが自動カット+EDL出力→Premiere Proで微調整。この3ステップで、手動の10分の1以下の時間で完了します。

同じような自動化の仕組みを作りたい方は、サービス一覧開発実績もチェックしてみてください。

ツール導入で終わらない「本当のDX」を、一緒に作りませんか

AE→Lottie→Remotionの動画自動生成から、業務プロセス全体の自動化まで。
自分で作って動かしている仕組みを、あなたのビジネスにも実装します。

プロダクト・サービス一覧開発実績を見る
タイトルとURLをコピーしました