Communitygithub.com

OxMediaEcomm/ビデオ編集

AI支援による実際の映像素材のカット、構成、拡張のためのワークフロー。FFmpeg、Remotion、ElevenLabs、fal.ai、最終仕上げのDescriptやCapCutまで、生のキャプチャから完全パイプラインをカバーします。ユーザーが動画の編集、素材のカット、vlogの作成、動画コンテンツ制作を希望する際に使用します。

ビデオ編集 とは?

このスキルは、AIを活用して実際の映像素材を高速に編集・構成するための包括的なパイプラインを提供します。単にプロンプトから動画を生成するのではなく、生のキャプチャからFFmpegでの決定論的なカット、Remotionによるプログラム可能なオーバーレイやモーショングラフィックス、ElevenLabsによるナレーションやfal.aiによる音楽・効果音の生成、そして最終的な仕上げをDescriptやCapCutで行う、レイヤー構造のワークフローを実現します。ClaudeやCodexを使ってトランスクリプトの分析や編集決定リストの生成、FFmpegやRemotionのコードを生成することで、編集作業の計画と構造化を支援します。YouTube、TikTok、Instagramなど異なるプラットフォーム向けのリフレーミング機能や、シーン検出、無音部分の自動カット機能も備えており、AIが反復作業を処理し、人間が最終的なクリエイティブ判断を行うという「編集(生成ではない)」の哲学に基づいて設計されています。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/OxMediaEcomm/c-420/tree/HEAD/skills/video-editing

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

プレビュー

スキル README より

ドキュメント

ビデオ編集 は何をしますか?

実際の映像素材に対するAI支援編集。プロンプトからの生成ではありません。既存の動画を高速に編集します。

アクティベーションタイミング

  • ユーザーが映像素材の編集、カット、構成を希望している
  • 長尺の録画をショートフォームコンテンツに変換する
  • 生のキャプチャからvlog、チュートリアル、デモ動画を制作する
  • 既存の動画にオーバーレイ、字幕、音楽、ナレーションを追加する
  • 異なるプラットフォーム(YouTube、TikTok、Instagram)向けに動画をリフレーミングする
  • ユーザーが「動画を編集」「この素材をカット」「vlogを作る」「動画ワークフロー」と発言した場合

核となる考え方

AIによる動画編集は、映像全体をAIに作らせるのではなく、実際の素材を圧縮、構造化、拡張するために使うときに真価を発揮します。価値は生成ではなく、圧縮にあります。

パイプライン

Screen Studio / 生の映像素材
  → Claude / Codex
  → FFmpeg
  → Remotion
  → ElevenLabs / fal.ai
  → Descript または CapCut

各レイヤーには固有の役割があります。レイヤーを飛ばさないでください。1つのツールにすべてを任せようとしないでください。

レイヤー1: キャプチャ(Screen Studio / 生の映像素材)

ソースマテリアルを収集します:

  • Screen Studio: アプリのデモ、コーディングセッション、ブラウザワークフロー向けの洗練されたスクリーンレコーディング
  • 生のカメラ映像: vlog映像、インタビュー、イベント録画
  • VideoDBによるデスクトップキャプチャ: リアルタイムコンテキスト付きのセッション録画(videodb スキルを参照)

出力: 整理準備が整った生ファイル。

レイヤー2: 整理(Claude / Codex)

Claude CodeまたはCodexを使用して:

  • 文字起こしとラベル付け: トランスクリプトを生成し、トピックとテーマを特定
  • 構造の計画: 何を残し、何をカットし、どの順序が良いかを決定
  • 不要部分の特定: 間、脱線、同じテイクの繰り返しを発見
  • 編集決定リストの生成: カットのタイムスタンプ、保持するセグメント
  • FFmpegとRemotionコードのひな形生成: コマンドとコンポジションを生成
プロンプト例:
「こちらは4時間の録画のトランスクリプトです。24分のvlogに最適な8つの最強セグメントを特定し、
各セグメントのFFmpegカットコマンドを提供してください。」

このレイヤーは構造に関するものであり、最終的なクリエイティブなセンスに関するものではありません。

レイヤー3: 決定論的カット(FFmpeg)

FFmpegは、分割、トリミング、連結、前処理といった退屈だが重要な作業を処理します。

タイムスタンプによるセグメント抽出

ffmpeg -i raw.mp4 -ss 00:12:30 -to 00:15:45 -c copy segment_01.mp4

編集決定リストからのバッチカット

#!/bin/bash
# cuts.txt: start,end,label
while IFS=, read -r start end label; do
  ffmpeg -i raw.mp4 -ss "$start" -to "$end" -c copy "segments/${label}.mp4"
done < cuts.txt

セグメントの連結

# ファイルリストを作成
for f in segments/*.mp4; do echo "file '$f'" done > concat.txt
ffmpeg -f concat -safe 0 -i concat.txt -c copy assembled.mp4

高速編集用のプロキシ作成

ffmpeg -i raw.mp4 -vf "scale=960:-2" -c:v libx264 -preset ultrafast -crf 28 proxy.mp4

文字起こし用の音声抽出

ffmpeg -i raw.mp4 -vn -acodec pcm_s16le -ar 16000 audio.wav

オーディオレベルのノーマライズ

ffmpeg -i segment.mp4 -af loudnorm=I=-16:TP=-1.5:LRA=11 -c:v copy normalized.mp4

レイヤー4: プログラム可能なコンポジション(Remotion)

Remotionは編集の問題をコードに変換します。従来のエディタでは面倒な作業に使用します:

Remotionを使用するタイミング

  • オーバーレイ: テキスト、画像、ブランディング、ローワーサード
  • データ可視化: チャート、統計、アニメーションする数字
  • モーショングラフィックス: トランジション、説明アニメーション
  • コンポーザブルシーン: 動画間で再利用可能なテンプレート
  • プロダクトデモ: 注釈付きスクリーンショット、UIハイライト

基本的なRemotionコンポジション

import { AbsoluteFill, Sequence, Video, useCurrentFrame } from "remotion";

export const VlogComposition: React.FC = () => {
  const frame = useCurrentFrame();

  return (
    <AbsoluteFill>
      {/* メイン映像 */}
      <Sequence from={0} durationInFrames={300}>
        <Video src="/segments/intro.mp4" />
      </Sequence>

      {/* タイトルオーバーレイ */}
      <Sequence from={30} durationInFrames={90}>
        <AbsoluteFill style={{
          justifyContent: "center",
          alignItems: "center",
        }}>
          <h1 style={{
            fontSize: 72,
            color: "white",
            textShadow: "2px 2px 8px rgba(0,0,0,0.8)",
          }}>
            AI 編集スタック
          </h1>
        </AbsoluteFill>
      </Sequence>

      {/* 次のセグメント */}
      <Sequence from={300} durationInFrames={450}>
        <Video src="/segments/demo.mp4" />
      </Sequence>
    </AbsoluteFill>
  );
};

出力のレンダリング

npx remotion render src/index.ts VlogComposition output.mp4

詳細なパターンとAPIリファレンスは Remotionドキュメント を参照してください。

レイヤー5: 生成アセット(ElevenLabs / fal.ai)

必要なものだけを生成します。動画全体を生成しないでください。

ElevenLabsによるナレーション

import os
import requests

resp = requests.post(
    f"https://api.elevenlabs.io/v1/text-to-speech/{voice_id}",
    headers={
        "xi-api-key": os.environ["ELEVENLABS_API_KEY"],
        "Content-Type": "application/json"
    },
    json={
        "text": "ここにナレーションテキスト",
        "model_id": "eleven_turbo_v2_5",
        "voice_settings": {"stability": 0.5, "similarity_boost": 0.75}
    }
)
with open("voiceover.mp3", "wb") as f:
    f.write(resp.content)

fal.aiによる音楽と効果音

fal-ai-media スキルを以下に使用:

  • 背景音楽の生成
  • 効果音(動画から音声へのThinkSoundモデル)
  • トランジションサウンド

fal.aiによる生成ビジュアル

挿入ショット、サムネイル、存在しないBロールに使用:

generate(app_id: "fal-ai/nano-banana-pro", input_data: {
  "prompt": "テックvlog用のプロフェッショナルサムネイル、暗い背景、画面上にコード",
  "image_size": "landscape_16_9"
})

VideoDBによる生成オーディオ

VideoDBが設定されている場合:

voiceover = coll.generate_voice(text="ここにナレーション", voice="alloy")
music = coll.generate_music(prompt="コーディングvlog用のローファイ背景音楽", duration=120)
sfx = coll.generate_sound_effect(prompt="かすかなウィッシュのトランジション")

レイヤー6: 最終仕上げ(Descript / CapCut)

最後のレイヤーは人間です。従来のエディタを以下に使用:

  • テンポ: 速すぎる、または遅すぎると感じるカットを調整
  • キャプション: 自動生成後、手動でクリーンアップ
  • カラーグレーディング: 基本補正と雰囲気づけ
  • 最終オーディオミックス: 音声、音楽、効果音のバランス調整
  • エクスポート: プラットフォーム固有のフォーマットと品質設定

ここに感性が宿ります。AIが反復作業を排除し、最終判断はあなたが行います。

ソーシャルメディア向けリフレーミング

プラットフォームによって必要なアスペクト比が異なります:

プラットフォームアスペクト比解像度
YouTube16:91920x1080
TikTok / Reels9:161080x1920
Instagram フィード1:11080x1080
X / Twitter16:9 または 1:11280x720 または 720x720

FFmpegによるリフレーミング

# 16:9 から 9:16(中央クロップ)
ffmpeg -i input.mp4 -vf "crop=ih*9/16:ih,scale=1080:1920" vertical.mp4

# 16:9 から 1:1(中央クロップ)
ffmpeg -i input.mp4 -vf "crop=ih:ih,scale=1080:1080" square.mp4

VideoDBによるリフレーミング

from videodb import ReframeMode

# スマートリフレーム(AIガイドによる被写体追跡)
reframed = video.reframe(start=0, end=60, target="vertical", mode=ReframeMode.smart)

シーン検出と自動カット

FFmpegシーン検出

# シーンチェンジを検出(しきい値0.3 = 中程度の感度)
ffmpeg -i input.mp4 -vf "select='gt(scene,0.3)',showinfo" -vsync vfr -f null - 2>&1 | grep showinfo

無音検出による自動カット

# 無音セグメントを見つける(デッドエアのカットに便利)
ffmpeg -i input.mp4 -af silencedetect=noise=-30dB:d=2 -f null - 2>&1 | grep silence

ハイライト抽出

Claudeを使用してトランスクリプトとシーンタイムスタンプを分析:

「このタイムスタンプ付きトランスクリプトとシーンチェンジポイントを基に、
ソーシャルメディア向けの最も魅力的な30秒クリップを5つ特定してください。」

各ツールの得意分野

ツール強み弱み
Claude / Codex整理、計画、コード生成クリエイティブなセンスのレイヤーではない
FFmpeg決定論的カット、バッチ処理、フォーマット変換ビジュアル編集UIがない
Remotionプログラム可能なオーバーレイ、コンポーザブルシーン、再利用可能なテンプレート非開発者にとって学習曲線がある
Screen Studioすぐに使える洗練されたスクリーンレコーディングスクリーンキャプチャのみ
ElevenLabs音声、ナレーション、音楽、効果音ワークフローの中心ではない
Descript / CapCut最終的なテンポ、キャプション、仕上げ手動操作が必要で自動化できない

主要な原則

  1. 生成ではなく編集。 このワークフローは実際の映像をカットするためのものであり、プロンプトから作成するものではありません。
  2. スタイルの前に構造。 視覚的なものに触れる前に、レイヤー2でストーリーを正しく構築します。
  3. FFmpegがバックボーン。 退屈だが重要。長尺の映像を扱いやすくします。
  4. 繰り返し行う場合はRemotion。 2回以上やるなら、Remotionコンポーネントにします。
  5. 選択的に生成。 AI生成は存在しないアセットにのみ使用し、すべてに使用しないでください。
  6. 感性は最後のレイヤー。 AIが反復作業を排除し、最終的なクリエイティブ判断はあなたが行います。

関連スキル

  • fal-ai-media — AIによる画像、動画、音声生成
  • videodb — サーバーサイドの動画処理、インデックス作成、ストリーミング
  • content-engine — プラットフォームネイティブなコンテンツ配信

関連スキル