オプション
家家 Skill その他 video-editing

video-editing

affaan-m/ECC affaan-m/ECC

FFmpeg、Remotion、ElevenLabs、fal.ai、および従来の編集ソフトを組み合わせたパイプラインを用いて、生の映像素材のカット、構成、および拡張を行い、実際の映像を編集します。

...すべて拡張します
67
更新された時間 2026年10月2日

動画編集

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

有効にするタイミング

  • ユーザーが動画素材を編集、カット、または構成したい場合
  • 長い録画をショートコンテンツに変換する場合
  • 未編集の映像から、Vlog、チュートリアル、デモ動画を作成する場合
  • 既存の動画にオーバーレイ、字幕、音楽、ナレーションを追加する場合
  • さまざまなプラットフォーム(YouTube、TikTok、Instagram)向けに動画のアスペクト比を変更する場合
  • ユーザーが「動画を編集する」「この映像をカットする」「vlogを作る」「動画のワークフロー」と検索

核心となる主張

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 "ファイル '$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 (
    
      {/* メイン映像 */}
     
         

      {/* タイトルオーバーレイ */}
      
 

AI編集スタック

{/* 次のセグメント */}
); };

レンダリング出力

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スキルは以下の用途に使用します:

  • BGMの生成
  • 効果音(動画から音声への変換用 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用のローファイなBGM", duration=120)
sfx = coll.generate_sound_effect(prompt="さりげない「シュッ」というトランジション音")

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

最後のレイヤーは人間による作業です。従来のエディタを使用して、以下の作業を行います:

  • テンポ:速すぎたり遅すぎたりするカットを調整
  • キャプション:自動生成後、手動で修正
  • カラーグレーディング:基本的な補正と雰囲気作り
  • 最終的なオーディオミックス:ナレーション、音楽、効果音の音量のバランスを調整
  • エクスポート:プラットフォーム固有のフォーマットと画質設定

こここそが「センス」が光る場所です。AIが反復作業を処理し、最終的な判断はあなたが行います。

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

プラットフォームごとに必要なアスペクト比は異なります:

プラットフォーム アスペクト比 解像度
YouTube 16:9 1920×1080
TikTok / Reels 9:16 1080×1920
Instagramフィード 1:1 1080×1080
X / Twitter 16:9 または 1:1 1280x720 または 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を活用。同じ作業を複数回行う場合は、Remotionのコンポーネント化を行う。
  5. 生成は選択的に。AIによる生成は、存在しないアセットにのみ使用し、すべてに用いるのは避ける。
  6. センスは最後の層だ。AIは反復作業を軽減する。最終的なクリエイティブな判断はあなたが下す。

関連スキル

  • fal-ai-media— AIによる画像、動画、音声の生成
  • videodb— サーバーサイドでの動画処理、インデックス作成、ストリーミング
  • content-engine— プラットフォームネイティブなコンテンツ配信
GitHubで見る
---
name: video-editing
description: Edit real video footage using a pipeline of FFmpeg, Remotion, ElevenLabs, fal.ai, and traditional editors for cutting, structuring, and augmenting raw captures.
---

# Video Editing

AI-assisted editing for real footage. Not generation from prompts. Editing existing video fast.

## When to Activate

- User wants to edit, cut, or structure video footage
- Turning long recordings into short-form content
- Building vlogs, tutorials, or demo videos from raw capture
- Adding overlays, subtitles, music, or voiceover to existing video
- Reframing video for different platforms (YouTube, TikTok, Instagram)
- User says "edit video", "cut this footage", "make a vlog", or "video workflow"

## Core Thesis

AI video editing is useful when you stop asking it to create the whole video and start using it to compress, structure, and augment real footage. The value is not generation. The value is compression.

## The Pipeline

```
Screen Studio / raw footage
  → Claude / Codex
  → FFmpeg
  → Remotion
  → ElevenLabs / fal.ai
  → Descript or CapCut
```

Each layer has a specific job. Do not skip layers. Do not try to make one tool do everything.

## Layer 1: Capture (Screen Studio / Raw Footage)

Collect the source material:
- **Screen Studio**: polished screen recordings for app demos, coding sessions, browser workflows
- **Raw camera footage**: vlog footage, interviews, event recordings
- **Desktop capture via VideoDB**: session recording with real-time context (see `videodb` skill)

Output: raw files ready for organization.

## Layer 2: Organization (Claude / Codex)

Use Claude Code or Codex to:
- **Transcribe and label**: generate transcript, identify topics and themes
- **Plan structure**: decide what stays, what gets cut, what order works
- **Identify dead sections**: find pauses, tangents, repeated takes
- **Generate edit decision list**: timestamps for cuts, segments to keep
- **Scaffold FFmpeg and Remotion code**: generate the commands and compositions

```
Example prompt:
"Here's the transcript of a 4-hour recording. Identify the 8 strongest segments
for a 24-minute vlog. Give me FFmpeg cut commands for each segment."
```

This layer is about structure, not final creative taste.

## Layer 3: Deterministic Cuts (FFmpeg)

FFmpeg handles the boring but critical work: splitting, trimming, concatenating, and preprocessing.

### Extract segment by timestamp

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

### Batch cut from edit decision list

```bash
#!/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
```

### Concatenate segments

```bash
# Create file list
for f in segments/*.mp4; do echo "file '$f'"; done > concat.txt
ffmpeg -f concat -safe 0 -i concat.txt -c copy assembled.mp4
```

### Create proxy for faster editing

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

### Extract audio for transcription

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

### Normalize audio levels

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

## Layer 4: Programmable Composition (Remotion)

Remotion turns editing problems into composable code. Use it for things that traditional editors make painful:

### When to use Remotion

- Overlays: text, images, branding, lower thirds
- Data visualizations: charts, stats, animated numbers
- Motion graphics: transitions, explainer animations
- Composable scenes: reusable templates across videos
- Product demos: annotated screenshots, UI highlights

### Basic Remotion composition

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

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

  return (
    <AbsoluteFill>
      {/* Main footage */}
      <Sequence from={0} durationInFrames={300}>
        <Video src="/segments/intro.mp4" />
      </Sequence>

      {/* Title overlay */}
      <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)",
          }}>
            The AI Editing Stack
          </h1>
        </AbsoluteFill>
      </Sequence>

      {/* Next segment */}
      <Sequence from={300} durationInFrames={450}>
        <Video src="/segments/demo.mp4" />
      </Sequence>
    </AbsoluteFill>
  );
};
```

### Render output

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

See the [Remotion docs](https://www.remotion.dev/docs) for detailed patterns and API reference.

## Layer 5: Generated Assets (ElevenLabs / fal.ai)

Generate only what you need. Do not generate the whole video.

### Voiceover with ElevenLabs

```python
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": "Your narration text here",
        "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)
```

### Music and SFX with fal.ai

Use the `fal-ai-media` skill for:
- Background music generation
- Sound effects (ThinkSound model for video-to-audio)
- Transition sounds

### Generated visuals with fal.ai

Use for insert shots, thumbnails, or b-roll that doesn't exist:
```
generate(app_id: "fal-ai/nano-banana-pro", input_data: {
  "prompt": "professional thumbnail for tech vlog, dark background, code on screen",
  "image_size": "landscape_16_9"
})
```

### VideoDB generative audio

If VideoDB is configured:
```python
voiceover = coll.generate_voice(text="Narration here", voice="alloy")
music = coll.generate_music(prompt="lo-fi background for coding vlog", duration=120)
sfx = coll.generate_sound_effect(prompt="subtle whoosh transition")
```

## Layer 6: Final Polish (Descript / CapCut)

The last layer is human. Use a traditional editor for:
- **Pacing**: adjust cuts that feel too fast or slow
- **Captions**: auto-generated, then manually cleaned
- **Color grading**: basic correction and mood
- **Final audio mix**: balance voice, music, and SFX levels
- **Export**: platform-specific formats and quality settings

This is where taste lives. AI clears the repetitive work. You make the final calls.

## Social Media Reframing

Different platforms need different aspect ratios:

| Platform | Aspect Ratio | Resolution |
|----------|-------------|------------|
| YouTube | 16:9 | 1920x1080 |
| TikTok / Reels | 9:16 | 1080x1920 |
| Instagram Feed | 1:1 | 1080x1080 |
| X / Twitter | 16:9 or 1:1 | 1280x720 or 720x720 |

### Reframe with FFmpeg

```bash
# 16:9 to 9:16 (center crop)
ffmpeg -i input.mp4 -vf "crop=ih*9/16:ih,scale=1080:1920" vertical.mp4

# 16:9 to 1:1 (center crop)
ffmpeg -i input.mp4 -vf "crop=ih:ih,scale=1080:1080" square.mp4
```

### Reframe with VideoDB

```python
from videodb import ReframeMode

# Smart reframe (AI-guided subject tracking)
reframed = video.reframe(start=0, end=60, target="vertical", mode=ReframeMode.smart)
```

## Scene Detection and Auto-Cut

### FFmpeg scene detection

```bash
# Detect scene changes (threshold 0.3 = moderate sensitivity)
ffmpeg -i input.mp4 -vf "select='gt(scene,0.3)',showinfo" -vsync vfr -f null - 2>&1 | grep showinfo
```

### Silence detection for auto-cut

```bash
# Find silent segments (useful for cutting dead air)
ffmpeg -i input.mp4 -af silencedetect=noise=-30dB:d=2 -f null - 2>&1 | grep silence
```

### Highlight extraction

Use Claude to analyze transcript + scene timestamps:
```
"Given this transcript with timestamps and these scene change points,
identify the 5 most engaging 30-second clips for social media."
```

## What Each Tool Does Best

| Tool | Strength | Weakness |
|------|----------|----------|
| Claude / Codex | Organization, planning, code generation | Not the creative taste layer |
| FFmpeg | Deterministic cuts, batch processing, format conversion | No visual editing UI |
| Remotion | Programmable overlays, composable scenes, reusable templates | Learning curve for non-devs |
| Screen Studio | Polished screen recordings immediately | Only screen capture |
| ElevenLabs | Voice, narration, music, SFX | Not the center of the workflow |
| Descript / CapCut | Final pacing, captions, polish | Manual, not automatable |

## Key Principles

1. **Edit, don't generate.** This workflow is for cutting real footage, not creating from prompts.
2. **Structure before style.** Get the story right in Layer 2 before touching anything visual.
3. **FFmpeg is the backbone.** Boring but critical. Where long footage becomes manageable.
4. **Remotion for repeatability.** If you'll do it more than once, make it a Remotion component.
5. **Generate selectively.** Only use AI generation for assets that don't exist, not for everything.
6. **Taste is the last layer.** AI clears repetitive work. You make the final creative calls.

## Related Skills

- `fal-ai-media` — AI image, video, and audio generation
- `videodb` — Server-side video processing, indexing, and streaming
- `content-engine` — Platform-native content distribution

すべてのファイル

1件のファイル

video-editingをインストール

スキルファイルをダウンロードし、.claude/skills/ ディレクトリに解凍してください。

ZIPをダウンロード

リポジトリをクローンし、スキルファイルをプロジェクトにコピーしてください。

git clone https://github.com/affaan-m/ECC/tree/main/skills/video-editing # Copy SKILL.md to your .claude/skills/ directory

コピー コピー
クイックセットアップ: スキルフォルダを .claude/skills/ にコピーしてください。 Claude が自動的にスキルを検出して使用します。
リポジトリ affaan-m/ECC

関連スキル

v4-new-features
更新された時間 2026年8月4日
multica-creating-agents
更新された時間 2026年8月12日
pixijs-application
更新された時間 2026年8月4日
tilemaps
更新された時間 2026年8月4日
OR