OpenParable
Skip to content
← Back to skills

Video Editor

Documents
video-editor

Video Editor is an Agent Skill for documents published in the minicoohei/ai-agent-camp repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

TikTok/YouTube向け動画編集スキル。ffmpegでキャプション焼き込み、 Ken Burnsエフェクト、シーン結合、音声合成を行う。 scenes.jsonから自動的に編集指示を読み取り最終動画を出力する。 Remotionコンポーネントも同梱(ローカル環境用)。 「動画編集」「キャプション追加」「テロップ付き動画」等で発動。

View on GitHub ↗
QUICK START

How to use this skill

Bring this guide into your coding agent with a prompt tailored to the tool you use.

  1. Open your project in Codex.
  2. Copy and paste the prompt below.
  3. Review files and risks before approving any action.
Prompt to paste
Inspect the Agent Skill at https://github.com/minicoohei/ai-agent-camp/blob/HEAD/skills/video-editor/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/video-editor, but wait for my approval before writing files or running scripts.

Copying this prompt does not install or run the skill. Review third-party files before use.

Video Editor

scenes.json + フレーム画像/動画クリップから最終動画を生成する。

2つの実行モード

🟢 ffmpegモード(サンドボックス対応・推奨)

Chromium不要。サンドボックスでも動作する。

python skills/video-editor/scripts/compose_video.py \
  --storyboard-dir output/storyboard/YYYYMMDD_session \
  --captions \
  --output output/final_tiktok.mp4

🔵 Remotionモード(ローカル環境用)

Chromium + Node.js必要。より高度なアニメーション。

npx remotion render TikTokVideo --output=out/tiktok_video.mp4 --root=remotion-editor/src/Root.tsx

ffmpegパイプライン

1. 素材準備

scenes.json → 各フレームのmotion_type確認
  i2v        → video/{frame}_i2v.mp4 を使用
  ken_burns  → ffmpeg zoompan フィルターで画像→動画
  static     → ffmpeg loop で画像→動画
  motion_graphics → ffmpeg で画像→動画(将来テキストアニメ追加)

2. 正規化

全クリップを統一仕様に:

  • 解像度: 1080×1920 (9:16) or 1920×1080 (16:9)
  • FPS: 30
  • コーデック: h264 / yuv420p
  • 横向きi2V動画 → ぼかし背景付き縦型に変換

3. キャプション焼き込み(drawtext)

ffmpeg -i clip.mp4 -vf "drawtext=text='テキスト':fontfile=/path/to/NotoSansJP-Bold.otf:\
  fontsize=64:fontcolor=white:borderw=3:bordercolor=black:\
  x=(w-text_w)/2:y=h*0.58" output.mp4

キャプション仕様:

項目TikTok推奨
フォントサイズ54-76px (画面幅の5-7%)
文字数/行日本語5-8文字 / 英語2-3語
最大行数2行
フォントNoto Sans JP Bold
色白 + 黒ストローク(3px) + シャドウ
位置Y: 55-65% (TikTokセーフゾーン内)

4. 結合

ffmpeg -f concat -safe 0 -i concat.txt -c:v libx264 -pix_fmt yuv420p final.mp4

5. 音声合成(オプション)

ffmpeg -i video.mp4 -i narration.mp3 -c:v copy -c:a aac -shortest final_with_audio.mp4

TikTokセーフゾーン

┌─────────────────────┐
│  ⚠️ 上15% 避ける     │ ← ユーザー名/フォローボタン
├─────────────────────┤
│   メインコンテンツ    │
│  ┌───────────────┐  │
│  │ キャプション    │  │ ← Y: 55-65%
│  └───────────────┘  │
├─────────────────────┤
│  ⚠️ 下20% 避ける     │ ← いいね/コメント/シェア
└─────────────────────┘

scenes.json フォーマット

{
  "title": "動画タイトル",
  "scenes": [
    {
      "frame_number": 1,
      "timestamp": "0:00-0:02",
      "motion_type": "i2v | ken_burns | static | motion_graphics",
      "narration": "ナレーション台本",
      "text_overlay": {
        "main_text": "メインテロップ",
        "sub_text": "サブテロップ",
        "position": "top | center | bottom",
        "style": "bold | subtitle | minimal"
      }
    }
  ]
}

依存

  • ffmpeg (静的バイナリ: .bin/ffmpeg)
  • Python 3.11+ (compose_video.py)
  • Noto Sans JP フォント(キャプション用)

Remotionコンポーネント(ローカル用)

remotion-editor/src/
  components/
    Caption.tsx    # TikTok最適キャプション(日本語改行、pop-inアニメ)
    KenBurns.tsx   # Ken Burns zoom/pan エフェクト
  compositions/
    TikTokVideo.tsx # 9:16 メインコンポジション
  Root.tsx         # エントリポイント

関連スキル

  • storyboard-generator — 入力素材(frames + scenes.json)
  • content-creator — コンテンツ企画
  • post-publisher — 投稿・配信