Claude Code×ffmpegの動画処理|skill導入と実運用レシピ
先に結論です。Claude Codeで動画処理をするのに、ffmpegのskillは必須ではありません。 ffmpegがPCに入っていれば、Claude Codeは標準のBashツール経由でそのまま動かせます。skillを入れる方法・入れない方法のどちらでも動くので、選び方はこうなります。
- とりあえず試したい → skillなしのBash直叩きで始める
- コマンド知識を補強したい → 公開されているffmpeg skillを導入する
- 毎回同じ処理を繰り返している → 自分の手順をSKILL.mdに固める
私はAI生成動画やWebサイト用のヒーロー動画をClaude Codeで日常的に処理していて、実運用は「Bash直叩き+定型作業だけ自作skill化」に落ち着きました。この記事では、その3つの方法の使い分けと、実際に使っている処理レシピ(連結・縦型化・シームレスループ・Web書き出し・フレーム補間)、Web公開用の数値基準までまとめます。
実行環境: Windows 10 / Claude Code / ffmpegはPATHに導入済み(2026年7月時点の情報です)。
Claude Codeでffmpegを使う方法は3つ?
Claude Codeからffmpegを動かす方法は、大きく分けて3つあります。
| 方法 | 準備 | 向いている人 |
|---|---|---|
| ① Bashで直接使わせる | ffmpegのインストールのみ | まず試したい人・単発の処理 |
| ② 公開skillを導入する | skillフォルダをコピー | コマンドの引き出しを増やしたい人 |
| ③ 自作skillにする | SKILL.mdを自分で書く | 同じ処理を何度も繰り返す人 |
どの方法でも前提としてffmpeg本体が必要です。Windowsなら次のコマンドで入ります。
winget install --id Gyan.FFmpeg
インストール後にターミナルで ffmpeg -version が表示されれば準備完了です。私の運用では、動画処理に関してはMCPサーバーを足すよりもBash経由でffmpegを直接叩かせる構成がいちばん安定していて、手間も少ないという判断に落ち着いています。MCPは接続設定やトークン消費が増える一方、ffmpegはローカルのコマンド1本で完結するためです。
既存のffmpeg skillにはどんなものがある?
2026年7月時点で、「Claude Code用のffmpeg skill」はコミュニティ製がいくつか公開されています。私が確認できた主なものは次の通りです。
- claude-ffmpeg-skill(GitHub: ychoi-kr/claude-ffmpeg-skill)— 形式変換・GIF作成・音声抽出・トリミング・連結・字幕・圧縮などを網羅した単体skill。MITライセンス
- Claude-Code-Video-Toolkit(GitHub: wilwaldon/Claude-Code-Video-Toolkit)— Remotion・画面録画・ffmpeg後処理まで含む動画制作ツール集。単機能skillではなく「動画制作環境ごと」入れたい人向け
導入方法はどれも共通で、skillフォルダを ~/.claude/skills/ に置くだけです。claude-ffmpeg-skillの例だとこうなります。
git clone https://github.com/ychoi-kr/claude-ffmpeg-skill.git
cp -r claude-ffmpeg-skill ~/.claude/skills/ffmpeg-usage
これで「動画を変換して」「GIFにして」のような指示のときに、Claude Codeが自動でこのskillの知識を読み込むようになります。skillの仕組み自体(SKILL.mdと配置場所)は公式ドキュメントに詳しく書かれています。
なお、日本語の解説記事では「skillマーケットプレイスから選ぶ」文脈で紹介されることが多いのですが、私の実感ではskill選びに時間をかけるより、まず①のBash直叩きで自分の用途を確かめるほうが早いです。
skillを入れなくても本当に動く?
動きます。Claude Codeは標準でBashツールを持っているので、ffmpegがPATHにあれば追加設定なしで使えます。たとえばこう指示するだけです。
~/project/video/ にある clip1.mp4 と clip2.mp4 を連結して、
output.mp4 として保存して
Claude Codeが動画の情報を ffprobe で確認し、適切なffmpegコマンドを組み立てて、実行前に内容を見せてくれます。ffmpegの膨大なオプションを覚える必要がないのが、この使い方の最大の利点です。
私がBash直叩きで日常的にやっているのは、次の4系統です。
- 連結 — 複数クリップを1本にまとめる
- 縦型化 — 16:9の動画をSNS用の9:16や4:5に変換する
- シームレスループ化 — Webサイトの背景動画をループさせる
- Web書き出し — mp4+webmの2形式圧縮とposter画像の生成
このほか、無音区間を検出してカットする使い方(silencedetect)もありますが、これは長くなるので別記事で詳しく扱う予定です。
実際に使っている動画処理レシピは?
ここからは、私が実運用で使っている具体的なレシピです。コマンドはそのままコピーして使えますが、実際はこれらをClaude Codeに日本語で指示して組み立てさせています。なお、素材となる動画クリップ自体をAIで生成する工程は、HiggsfieldをClaude Codeから操作してAI動画を生成する方法で書いた構成とつながっています。生成した素材の後処理が、この記事のffmpegの出番です。
複数クリップの連結
同じ形式・同じ解像度のクリップなら、再エンコードなし(-c copy)で高速に連結できます。
# list.txt に連結順で書く:
# file 'clip1.mp4'
# file 'clip2.mp4'
ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp4
形式が揃っていない素材はこの方法では失敗します。その場合の再エンコード連結はフィルタ指定が複雑になるので、素材のパスを渡してClaude Codeに組ませるのが現実的です。
横動画の縦型化(9:16)
16:9の動画を中央基準でクロップして、SNS向けの1080×1920にします。
ffmpeg -i input.mp4 -vf "crop=ih*9/16:ih,scale=1080:1920" -c:a copy output_vertical.mp4
被写体が中央にない動画は、クロップ位置の調整が必要です。「左寄りの被写体を残して縦型にして」と指示すれば、Claude Codeが crop のオフセットを計算してくれます。
シームレスループ化
Webサイトの背景動画は、ループのつなぎ目が見えると一気に安っぽくなります。手軽なのは逆再生を連結する方法です。
ffmpeg -i input.mp4 -filter_complex "[0:v]reverse[r];[0:v][r]concat=n=2:v=1[v]" -map "[v]" -an loop.mp4
往復再生になるので、水面の揺らぎや光のドリフトのような「方向性のない動き」の素材に向きます。歩行など方向のある動きには、末尾を先頭にクロスフェードで重ねる方法が向きますが、こちらは尺に応じたフィルタ計算が必要なので、私はClaude Codeに素材の尺を測らせたうえで組ませています。
Web公開用の書き出し(mp4+webm+poster)
私がいちばん頻繁に使うレシピです。背景動画は音が不要なので -an で音声を削除し、mp4とwebmの2形式に圧縮して、初期表示用のposter画像も書き出します。
# mp4 (H.264 / 720p / 音声削除 / ストリーミング用に moov を先頭へ)
ffmpeg -i input.mp4 -an -vf "scale=-2:720" -c:v libx264 -b:v 1800k -maxrate 2500k -bufsize 5000k -movflags +faststart hero.mp4
# webm (VP9)
ffmpeg -i input.mp4 -an -vf "scale=-2:720" -c:v libvpx-vp9 -b:v 1200k -row-mt 1 hero.webm
# poster画像(先頭フレーム)
ffmpeg -i hero.mp4 -frames:v 1 poster.jpg
この3点セットを毎回実行するので、私はこれを1つの指示(後述のskill化の候補)として扱っています。数値の根拠は次のセクションで説明します。
フレーム補間で滑らかにする(minterpolate)
画面録画ツールの出力が25fps前後でカクつくとき、minterpolate フィルタで60fpsに補間すると見違えます。
ffmpeg -i input.mp4 -vf "minterpolate=fps=60:mi_mode=mci" -c:v libx264 -crf 18 output60.mp4
注意点はとにかく処理が重いことです。私の環境(Windows 10・CPU処理)で実測したところ、15秒の1080p動画(25fps→60fps)の補間に約6分かかりました。元動画の再生時間の20倍以上です。尺の長い動画にいきなりかけず、まず数秒だけ切り出して試すのがおすすめです。
Web公開用の動画の数値基準は?
動画処理で「どこまで圧縮すればいいのか」は感覚で決めると失敗します。私がWebサイト用のヒーロー動画で使っている合否基準は次の通りです。
| 項目 | 基準 |
|---|---|
| LCP(最大コンテンツの描画) | 2.5秒未満 |
| 容量 | デスクトップ4MB以下 / モバイル2MB以下 |
| ビットレート | 1,000〜2,500kbps(VBR) |
| 解像度 | 720pで足りることが多い |
| 尺・fps | 5〜15秒 / 24〜30fps |
LCPはGoogleがWeb性能の指標として示している閾値で、背景動画はLCP要素になりやすいため直撃します。DebugBearの検証では、poster画像の追加だけでLCPが1.55秒から1.2秒に改善した例が報告されています。poster画像は10KB程度で済むのに対して効果が大きいので、私も動画を置くページでは必ずposterをセットにしています。
HTML側は次の4属性を揃えないと自動再生されません。
<video autoplay muted loop playsinline poster="poster.jpg">
<source src="hero.webm" type="video/webm">
<source src="hero.mp4" type="video/mp4">
</video>
こうした基準値をあらかじめClaude Codeへの指示に含めておくと、「圧縮して」ではなく「モバイル2MB以下・720p・VBRで」という再現性のある依頼になります。
自分の定型作業をSKILL.mdにするには?
同じ指示を3回以上打っていることに気づいたら、それはskill化のサインです。skillの実体は ~/.claude/skills/スキル名/SKILL.md というMarkdownファイル1枚で、手順書をそこに書いておくと、Claude Codeが関連する依頼のときに自動で読み込んでくれます。
私の実例をひとつ一般化して紹介します。「制作したWebページをPlaywrightで録画し、25fps固定の録画をffmpegの minterpolate で60fpsの滑らかなmp4に変換する」という、SNS投稿用の定型作業です。毎回オプションを思い出すのが無駄なので、こうまとめました(要点のみ抜粋)。
---
name: web-record
description: WebページをPlaywrightで録画してffmpegで滑らかなmp4にする。「画面録画して動画にして」「SNS用に録画」で使う
---
# web-record — ページ録画→mp4化
## 手順
1. Playwrightで対象URLを指定解像度(既定1080x1350)で録画する
2. 録画は25fps固定なので、ffmpegのminterpolateで60fpsに補間する
3. 出力先は ~/project/video/out/ 配下
## 注意
- minterpolateは重い(数分かかる)。尺は必要最小限にする
- 動画の自動再生はmuted前提
ポイントは3つです。
- description(説明文)に発動キーワードを入れる — Claude Codeはこの説明文を見てskillを使うか判断します
- 手順だけでなく注意点・既定値も書く — 「minterpolateは重い」のような経験則こそ書く価値があります
- 完璧を目指さない — 一度動いた手順の貼り付けから始めて、失敗するたびに追記していけば十分です
前のセクションの「mp4+webm+poster3点セット」のような処理も、まったく同じ考え方でskill化できます。
つまずきやすいポイントは?
私が実際に引っかかった点を挙げておきます。
- ffmpegがPATHにない — インストール直後はターミナルの再起動が必要な場合があります。
ffmpeg -versionで先に確認を - minterpolateの処理時間 — 尺と解像度に比例して伸びます。長尺にかける前に数秒でテストする
-yオプションの上書き —-y付きのコマンドは既存ファイルを確認なしで上書きします。元素材と出力先のフォルダを分けておくと事故を防げます- Claude Codeが提案するコマンドの検証 — まれに古い書き方や環境に合わないオプションを含むことがあります。実行前の確認画面で、少なくとも入力ファイルと出力ファイル名だけは目視する運用にしています
- Windowsのパス表記 — 日本語やスペースを含むパスは引用符で囲む必要があります。作業フォルダは英数字のパスにしておくのが無難です
まとめ:skill導入とBash直、どちらから始めるべきか
2026年7月時点の私の結論は「まずBash直叩きで始めて、繰り返す作業だけ自作skillに固める」です。公開skillの導入は簡単ですが、必須ではありません。ffmpegを1本インストールすれば、Claude Codeは今日から動画処理の相棒になります。
連結や縦型化のような単発処理はその場の指示で十分、Web書き出しのような数値基準つきの定型処理はSKILL.mdへ。この使い分けができると、動画編集ソフトを開く回数が目に見えて減ります。素材の生成から後処理までをつなげる全体構成は、今後の記事でさらに掘り下げる予定です。
よくある質問
ffmpegのコマンドを知らなくてもClaude Codeで動画処理できますか?
できます。「この2本を連結して」「縦型にして」と日本語で指示すれば、Claude Codeがffmpegコマンドを組み立てて実行します。ただし実行前にコマンド内容の確認を求められるので、上書き先のファイル名だけは自分の目で見る習慣をおすすめします。
skillを入れないとClaude Codeでffmpegは使えませんか?
使えます。ffmpegがPATHに入っていれば、Claude Codeは標準のBashツール経由でそのまま実行できます。skillはコマンド知識の補助や定型作業の固定化に役立ちますが、必須ではありません。
どのffmpeg skillを入れればいいですか?
まず試すならGitHubで公開されているclaude-ffmpeg-skill(MITライセンス)が導入が簡単です。Remotionや録画まで含めた動画制作全般ならClaude-Code-Video-Toolkit系のskill集も選択肢になります。私はどちらも必須とは考えておらず、用途が固まってから入れる方針です。
動画ファイルが壊れたり上書きされたりする心配はありませんか?
ffmpegは-yオプション付きだと既存ファイルを確認なしで上書きします。元素材と出力先を別フォルダに分ける、出力ファイル名を変える、の2点を指示に含めておけば、元素材を失う事故はほぼ防げます。
MacやLinuxでも同じ方法で使えますか?
使えます。skillの配置場所(~/.claude/skills/)もBash経由の実行も共通です。私の実行環境はWindows 10ですが、記事中のffmpegコマンド自体はOSに依存しません。