mcpField
V
video-assembly

video-assembly

github.com/mckruzクリエイティブ・メディア92396 回インストール32 週間前に更新
リポジトリ

video-assembly について

動画と音声のパイプライン出力を納品用動画にまとめるためのスキルです。一般的な編集には FFmpeg、複雑な合成には Remotion を使う手順を扱います。

主な機能

  1. 01FFmpeg による結合・ミキシング・変換
  2. 02字幕とクリップ間トランジションの追加
  3. 03フレーム抽出と再生速度の調整
  4. 04音量のラウドネス正規化
  5. 05Remotion によるアニメーション合成のガイド

活用シーン

  1. 01動画と音声のパイプライン出力の統合
  2. 02動画への音楽と字幕の追加
  3. 03アニメーション注釈付きチュートリアルの作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mckruz/comfyui-expert --skill video-assembly

インストール後、Claude Code で/video-assemblyを入力して読み込まれたか確認します。

詳細

動画の編集

動画および音声のパイプラインからの出力を組み合わせて、最終納品用の動画を作成します。

2 つの編集モード

モード 1:FFmpeg(シンプル、高速)

最適な用途:結合、音声ミキシング、基本的なトランジション、フォーマット変換。

FFmpeg 以外の依存関係はありません(ほとんどのシステムにプリインストールされています)。

モード 2:Remotion(複雑な合成)

最適な用途:アニメーション付き字幕、データの可視化、複雑なモーショングラフィックス、React ベースのテンプレート。

ガイダンスには既存の remotion-best-practices スキルを使用します。

FFmpeg の操作

動画クリップの結合
# Create file list
echo "file 'clip1.mp4'" > filelist.txt
echo "file 'clip2.mp4'" >> filelist.txt
echo "file 'clip3.mp4'" >> filelist.txt

# Concatenate (same codec/resolution)
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4

# Concatenate (different codecs/resolutions - re-encode)
ffmpeg -f concat -safe 0 -i filelist.txt -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" -c:v libx264 -crf 19 output.mp4
動画への音声の追加
# Replace audio
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 output.mp4

# Mix audio (keep original + add music)
ffmpeg -i video.mp4 -i music.mp3 -filter_complex "[0:a][1:a]amix=inputs=2:duration=first:dropout_transition=3" -c:v copy output.mp4

# Add audio with volume control
ffmpeg -i video.mp4 -i bgm.mp3 -filter_complex "[1:a]volume=0.3[bg];[0:a][bg]amix=inputs=2:duration=first" -c:v copy output.mp4
字幕の追加
# Burn subtitles (SRT file)
ffmpeg -i video.mp4 -vf "subtitles=subs.srt:force_style='FontName=Arial,FontSize=24,PrimaryColour=&HFFFFFF,OutlineColour=&H000000,Outline=2'" -c:a copy output.mp4

# Burn subtitles (ASS file for styled)
ffmpeg -i video.mp4 -vf "ass=subs.ass" -c:a copy output.mp4
クリップ間のトランジション
# Crossfade (2 second transition)
ffmpeg -i clip1.mp4 -i clip2.mp4 -filter_complex \
  "[0:v]trim=0:5,setpts=PTS-STARTPTS[v0]; \
   [1:v]trim=0:5,setpts=PTS-STARTPTS[v1]; \
   [v0][v1]xfade=transition=fade:duration=2:offset=3[outv]" \
  -map "[outv]" output.mp4
フレームの抽出/操作
# Extract frames
ffmpeg -i video.mp4 -vf "fps=1" frames/frame_%04d.png

# Create video from frames
ffmpeg -framerate 24 -i frames/frame_%04d.png -c:v libx264 -crf 19 -pix_fmt yuv420p output.mp4

# Speed up/slow down
ffmpeg -i video.mp4 -filter:v "setpts=0.5*PTS" -filter:a "atempo=2.0" fast.mp4   # 2x speed
ffmpeg -i video.mp4 -filter:v "setpts=2.0*PTS" -filter:a "atempo=0.5" slow.mp4   # 0.5x speed
フォーマット変換
# MP4 (H.264) - universal compatibility
ffmpeg -i input.mov -c:v libx264 -crf 19 -preset medium -c:a aac -b:a 192k output.mp4

# WebM (VP9) - web delivery
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a libopus output.webm

# GIF (short clips)
ffmpeg -i input.mp4 -vf "fps=15,scale=480:-1:flags=lanczos" -loop 0 output.gif
品質プリセット
用途CRF解像度備考
マスター/アーカイブ15-17オリジナルファイルサイズは大きくなりますが、最高品質です
YouTube へのアップロード18-201920x1080バランスに優れています
ソーシャルメディア20-231080x1920(縦向き)ファイルサイズは小さくなります
プレビュー/ドラフト25-281280x720すばやく確認できます

編集パイプライン

標準的な動画
1. Gather clips from comfyui-video-pipeline outputs
2. Gather audio from comfyui-voice-pipeline outputs
3. Normalize audio levels (-16 LUFS for YouTube)
4. Trim/arrange clips to match script timing
5. Add transitions between clips (if multiple)
6. Add background music (optional, lower volume)
7. Add subtitles (if applicable)
8. Export in target format
トーキングヘッド動画
1. Lip-synced video from comfyui-voice-pipeline
2. Add intro/outro (if applicable)
3. Add lower thirds or name cards
4. Add background music at -20dB below speech
5. Normalize speech to -16 LUFS
6. Export
チュートリアル/操作ガイド
1. Screen recordings + talking head overlay
2. Use Remotion for animated annotations
3. Add chapter markers
4. Add subtitles (auto-generate from audio)
5. Export with chapters embedded

音声のノーマライズ

# Normalize to -16 LUFS (YouTube standard)
ffmpeg -i input.mp4 -af "loudnorm=I=-16:TP=-1.5:LRA=11" -c:v copy output.mp4

# Two-pass normalization (more accurate)
ffmpeg -i input.mp4 -af loudnorm=I=-16:TP=-1.5:LRA=11:print_format=json -f null -
# Read measured values, then:
ffmpeg -i input.mp4 -af "loudnorm=I=-16:TP=-1.5:LRA=11:measured_I=-20:measured_TP=-2:measured_LRA=8:measured_thresh=-30" -c:v copy output.mp4

Remotion との統合

複雑な合成は、remotion-best-practices スキルに委任してください。

Remotion を使用するケース:

  • アニメーション付きのテキスト/字幕が必要な場合
  • 動画内でデータを可視化する場合
  • 複雑なモーショングラフィックスを使用する場合
  • プログラムやテンプレートに基づいて動画を生成する場合
  • 動画のオーバーレイとして React ベースの UI 要素を使用する場合

Remotion に渡す情報:

  • クリップのパスとタイミング
  • テキストの内容とスタイル
  • アニメーションの仕様
  • 出力フォーマットの要件

出力チェックリスト

編集の完了とする前に、以下を確認してください。

  • 音声レベルがノーマライズされている(YouTube の場合は -16 LUFS)
  • 音声のクリッピングがない(ピークが -1.5 dB 未満)
  • 解像度が納品先の要件に合っている
  • フレームレートが全体を通して一定である
  • カット部分に黒いフレームがない
  • 字幕のタイミングが正しい(該当する場合)
  • ファイルサイズが納品先プラットフォームに適している
  • メタデータが正しい(ファイル名にタイトルが含まれている)

参考資料

  • references/workflows.md - 動画出力のフォーマット設定
  • remotion-best-practices skill - 複雑な合成に関するガイダンス

コメント