mcpField
V
video-editor

video-editor

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

video-editor について

video-editorは、動画編集や処理を行う人向けのFFmpeg解説スキルです。トランスコードや画質の問題に対応し、エンコード設定、色メタデータ、字幕、一般的なトラブルを扱います。

主な機能

  1. 01コンテナ・コーデック・エンコーダーの区別
  2. 02リマックスと再エンコードの案内
  3. 03CRF・プリセット・エンコード設定の調整
  4. 04色メタデータと字幕の処理
  5. 05再生・画質・同期のトラブル対応
  6. 06FFmpegコマンド例の提示

活用シーン

  1. 01動画コンテナやコーデックの変換
  2. 02画質とファイルサイズの調整
  3. 03エンコード後の色や音声同期の修正
  4. 04プラットフォームや機器向けの動画準備

インストール

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

$npx skills add https://github.com/ckorhonen/claude-skills --skill video-editor

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

詳細

動画エディター - FFmpeg とエンコードのエキスパート

ffmpeg を使った動画編集、エンコード、処理に関する専門的なガイダンスです。このスキルでは、コンテナ形式、コーデック、エンコードのベストプラクティス、動画制作ワークフローにおける品質の最適化について説明します。

このスキルを使う場面

次のような場合にこのスキルを使います:

  • 動画ファイルをエンコードまたはトランスコードする場合
  • コンテナ形式(MKV、MP4 など)を相互に変換する場合
  • 品質やファイルサイズに合わせてエンコード設定を最適化する場合
  • 動画の品質に関する問題をトラブルシューティングする場合
  • 色空間やカラーマトリクスを扱う場合
  • 動画にハードサブまたはソフトサブを追加する場合
  • 特定のプラットフォームやデバイス向けに動画を準備する場合
  • 処理後に動画の見た目がおかしくなる理由を理解する場合

基本概念

コンテナとコーデックの違い

この違いは非常に重要です。 .mkv や .mp4 などのファイル拡張子は、すでに圧縮されたストリームを格納するコンテナ形式です。実際の圧縮は、H.264、H.265、VP9、AV1 などのコーデックによって行われます。

概念内容例
コンテナ動画/音声/字幕ストリームを格納するラッパーMKV、MP4、AVI、MOV、WebM
コーデック動画を圧縮/展開するアルゴリズムH.264、H.265/HEVC、VP9、AV1
エンコーダーコーデックを実装するソフトウェアx264、x265、libvpx、NVENC
リマックスと再エンコードの違い
操作内容品質への影響速度
リマックス再圧縮せずにストリームを別のコンテナへ移動するなし(可逆)非常に速い
再エンコード動画をデコードし、新しい設定で再エンコードする必ず品質が低下する遅い

経験則: コンテナ形式だけを変更したい場合は、リマックスします。どうしても必要な場合に限り、再エンコードしてください。

品質に関する原則

「品質」とは実際には何か

動画の品質は、出力がソースにどれだけ近いかを示します。処理を重ねるたびに、動画は元の状態からさらに離れていきます。品質を加える方法はありません。維持するか、失うかのどちらかです。

よくある誤解
誤解実際
解像度が高いほど品質が良い解像度は単に寸法です。720p の動画のほうが 4K の動画よりきれいに見えることもあります
ビットレートが高いほど品質が良いエンコーダーの効率のほうが重要です。同じ品質でも異なるファイルサイズにできます
H.265 は常に 50% 小さいエンコーダーの設定によります。設定の悪い H.265 は H.264 よりも劣ることがあります
品質を重視するならハードウェアエンコードで問題ないハードウェアエンコーダー(NVENC、QuickSync)は速度を優先し、品質を犠牲にします
AI アップスケーリングで品質が向上するアップスケーリングでは、ソースになかった人工的なディテールが追加されます
エンコード品質の優先順位

重要度の高い順:

  1. エンコーダーの設定(CRF、プリセット、チューニング)
  2. エンコーダーの選択(x264/x265 とハードウェアエンコーダーの比較)
  3. コーデック(H.265、H.264、VP9 の比較)

クイックリファレンス:FFmpeg コマンド

リマックス(コンテナを変更、品質劣化なし)
# MKV to MP4 (preserves all streams)
ffmpeg -i input.mkv -c copy output.mp4

# MP4 to MKV
ffmpeg -i input.mp4 -c copy output.mkv
基本的なエンコード
# Encode with x264, copy audio
ffmpeg -i input.mkv -c:a copy -c:v libx264 -preset slower -crf 20 output.mkv

# Encode with x265
ffmpeg -i input.mkv -c:a copy -c:v libx265 -preset slower -crf 22 output.mkv
品質重視のエンコード
# High-quality x264 for animation
ffmpeg -i input.mkv -c:a copy -c:v libx264 -preset slower -crf 18 \
  -x264-params bframes=8 output.mkv

# High-quality x265
ffmpeg -i input.mkv -c:a copy -c:v libx265 -preset slower -crf 20 \
  -x265-params bframes=8 output.mkv

エンコード設定の詳細

CRF(固定レート係数)

CRF は品質とファイルサイズのトレードオフを制御します。値が低いほど品質が高くなり、ファイルサイズが大きくなります。

CRF の範囲品質レベル主な用途
0可逆圧縮アーカイブ、中間素材
15-18見た目上は劣化なし高品質アーカイブ
19-23高品質一般用途、ストリーミング
24-28中品質ウェブ、モバイル
29+低品質プレビュー、サムネイル

注: CRF 値をエンコーダー間で直接比較することはできません。x265 の CRF 22 は、x264 の CRF 20 にほぼ相当します。

プリセット

プリセットは、エンコード速度と圧縮効率のバランスを調整します。

プリセット速度ファイルサイズ使用する場面
ultrafast最速最大ライブストリーミング
fast高速大きい手早いトランスコード
medium中程度中程度デフォルト
slow低速小さめ品質重視
slower非常に低速さらに小さい品質重視で推奨
veryslow極めて低速最小最大限の圧縮

推奨: 品質重視のエンコードにはslowerを使用してください。slowerとveryslowの差は、かかる時間を大幅に増やすほどではありません。

チューンオプション
チューン最適な用途
filmフィルムグレインのある実写映像
animationカートゥーン、アニメ、平坦な領域
grainフィルムグレインの保持
stillimageスライドショー、静止コンテンツ
fastdecode性能の低いデバイスでの再生
# Animation tuning
ffmpeg -i input.mkv -c:v libx264 -preset slower -crf 20 -tune animation output.mkv

コンテナごとの考慮事項

MKV(Matroska)

メリット:

  • ほぼすべてのコーデックに対応
  • 複数の音声/字幕トラックに対応
  • チャプターマーカーに対応
  • 可変フレームレートに対応

デメリット:

  • 一部のデバイスやソフトウェアとの互換性が低い
  • 対応していないストリーミングサービスがある
MP4

メリット:

  • 幅広い互換性
  • Web に適している
  • あらゆる環境でハードウェアデコーダーに対応

デメリット:

  • 字幕形式への対応が限られている
  • コーデックの要件が厳しい
  • 固定フレームレートが想定されている
編集ソフトウェア向けにMKVをMP4に変換する

編集ソフトウェアによっては、固定フレームレートのMP4が必要です。次の2パス方式を使用してください。

# Step 1: Initial remux with timescale adjustment
ffmpeg -i input.mkv -c copy -video_track_timescale 24000 intermediate.mp4

# Step 2: Fix timestamps
ffmpeg -i intermediate.mp4 -c copy \
  -bsf:v "setts=dts=1001*round(DTS/1001):pts=1001*round(PTS/1001)" output.mp4

色空間と色管理

色メタデータについて

動画の色はYCbCr形式で保存され、次の情報を指定するメタデータが含まれます。

  • カラーマトリックス: YCbCrをRGBに変換する方法(BT.709、BT.601)
  • 色範囲: リミテッド(16-235)とフル(0-255)
  • クロマ位置: 色のサンプルが配置される位置
よくある問題
症状考えられる原因
色が白っぽく見える色範囲の誤り(リミテッドをフルとして扱っている)
黒つぶれ/白飛び色範囲の誤り(フルをリミテッドとして扱っている)
緑やピンクがかった色合いカラーマトリックスの誤り
エンコード後に色が「おかしく」見える色メタデータの不一致
色情報の保持
# Explicitly preserve color metadata
ffmpeg -i input.mkv -c:v libx264 -preset slower -crf 20 \
  -colorspace bt709 -color_primaries bt709 -color_trc bt709 output.mkv

字幕のハードサブ(映像への焼き込み)

FFmpegを使用する
# Hardsub from external subtitle file
ffmpeg -i input.mkv -vf "subtitles=subs.ass" -c:v libx264 -preset slower -crf 20 output.mkv

# Hardsub from embedded subtitle track
ffmpeg -i input.mkv -vf "subtitles=input.mkv:si=0" -c:v libx264 -preset slower -crf 20 output.mkv
mpvを使用する(複雑な字幕に適しています)

mpvは複雑なASS字幕(スタイル、位置指定)をより正確に処理します。

mpv --no-config input.mkv -o output.mkv \
  --audio=no \
  --ovc=libx264 \
  --ovcopts=preset=slower,crf=20,bframes=8

避けるべきこと

ツール
ツール問題点
Handbrake設定が予測しにくく、重要なオプションが隠されている
オンラインコンバーター品質の低下、プライバシー上の懸念
「AIアップスケーラー」偽のディテールを追加し、元の映像から遠ざかる
Windows組み込みツール品質が低く、オプションが限られている
運用方法
運用方法問題点
不要なシャープ化アーティファクトが発生し、元の映像から遠ざかる
高解像度へのアップスケーリング実際のディテールは増えない
複数回の再エンコード品質の低下が累積する
品質重視でNVENCを使用するハードウェアエンコーダーは品質より速度を優先する
フレームレート補間アーティファクトを伴う偽のフレームが追加される

推奨ツール

必須
ツール用途
ffmpeg動画処理の万能ツール
MediaInfo動画のプロパティとメタデータを確認
mpv優れたメディアプレーヤー、エンコードにも対応
MKVToolNixMKVの多重化操作用GUI
特化型
ツール用途
Aegisub字幕編集
HandBrake簡単なトランスコード(注意して使用)
yt-dlpオンライン動画のダウンロード

トラブルシューティング

動画が再生されない
  1. 対象デバイスでコーデックがサポートされているか確認する
  2. 別のコンテナにリマックスしてみる
  3. ファイルが破損していないか確認する: ffmpeg -v error -i file.mkv -f null -
エンコード後に色がおかしく見える
  1. 色のメタデータを比較します:mediainfo input.mkv と mediainfo output.mkv
  2. 色域を確認します(Limited と Full)
  3. 色行列を確認します(BT.709 と BT.601)
  4. ffmpeg コマンドで色のパラメーターを明示的に設定します
ファイルサイズが大きすぎる
  1. CRF を上げます(例:20 → 23)
  2. 圧縮率を高めるため、より遅いプリセットを使用します
  3. 効率を高めるため、x265 の使用を検討します
  4. 不必要にエンコードしていないか確認します(代わりにリマックスします)
エンコードに時間がかかりすぎる
  1. より速いプリセットを使用します(ただし、ファイルサイズは大きくなります)
  2. 用途に応じてハードウェアエンコードが許容できるか確認します
  3. ソースが不必要にデコードされていないことを確認します
音声と映像が同期しない
  1. まずソースファイルに同期の問題がないか確認します
  2. 音声の同期を補正するには、-async 1 を使用します
  3. 再エンコードではなく、リマックスを試します

使用例

Blu-ray リップをアーカイブする
ffmpeg -i input.mkv -c:a copy -c:v libx265 -preset slower -crf 18 \
  -x265-params bframes=8 output.mkv
YouTube へのアップロード用に準備する
ffmpeg -i input.mkv -c:a aac -b:a 384k -c:v libx264 -preset slower -crf 18 \
  -profile:v high -level 4.2 -pix_fmt yuv420p output.mp4
クイックプレビュー/プロキシ
ffmpeg -i input.mkv -c:a aac -b:a 128k -c:v libx264 -preset fast -crf 28 \
  -vf scale=640:-2 output.mp4
音声のみを抽出する
# Copy audio stream (no re-encoding)
ffmpeg -i input.mkv -vn -c:a copy output.mka

# Convert to MP3
ffmpeg -i input.mkv -vn -c:a libmp3lame -b:a 320k output.mp3
再エンコードせずにトリミングする
# Trim from 1:00 to 2:30
ffmpeg -i input.mkv -ss 00:01:00 -to 00:02:30 -c copy output.mkv

リソース

コメント