本ページはプロモーションが含まれています

AI

Claude Codeで動画編集を自動化|62秒の素材を2分で40秒に

62s → 40s(Claude Codeで動画編集を自動化)

トム

SESで約8年、環境を変えられないもどかしさの中にいました。32歳で自社開発企業に転職し、今はClaude Codeと自動化で、仕事も時間も組み直している途中です。
・Javaバックエンドエンジニア(Java歴12年以上)
・資格:基本情報技術者/応用情報技術者/Java Silver/Python3エンジニア認定基礎
詳細なプロフィール

「えっと」で始まり、「コツは2つ、あ、違う」と言い直し、最後は手ブレでピンボケになる。

そんな撮り損ねをわざと仕込んだ62秒の素材を、Claude Codeに編集させました。

戻ってきたのは、言い直しと無音を消して字幕を付けた40秒の解説動画です。

解析の開始から本番の書き出しまでは1分55秒でした。

編集ソフトは一度も開いていません。

自作した動画編集の仕組みを、完成した動画と編集リストの中身ごと公開します。

この記事でわかること

  • Claude Codeで動画編集を自動化したときに、任せられる作業と人に残る作業
  • 言い直し・フィラー・無音を自動でカットした40秒の動画と、その編集リスト(edl.json)
  • 「判断はClaude、処理はスクリプト」に分けた4ステップの仕組み
  • 文字起こしの聞き間違いや字幕の重なりなど、作って初めてわかった3つのつまずき
  • JavaScript(Remotion)やThree.jsで動画を一から作る方法と、編集との使い分け

Claude Codeで動画編集はどこまで自動化できる?

短い解説動画や日常動画なら、カット位置の判断から字幕、書き出しまで丸ごと任せられます。

ただし、Claude Code自身が動画を切ったり貼ったりするわけではありません。

動画を「見て決める」部分と「実際に加工する」部分を分けると、自動化の範囲がはっきりします。

最初に、Claude Codeが動画編集で受け持つ役割を整理しておきます。

Claude Codeは編集ソフトではなく「判断役」

Claude Codeでの動画編集とは、Claude Codeが素材を確認して編集方針を決め、FFmpegなどのツールに加工を実行させる作業の進め方です。

タイムラインの画面はどこにもありません。

私の仕組みでは、Claude Codeがやるのは「どの秒を使い、どこを捨て、何と書くか」を決めることだけです。

切り出しや文字起こしはPythonスクリプトとFFmpegが担当します。

判断と処理を分けたおかげで、Claudeが毎回コマンドを組み立て直す必要がなくなり、結果も安定しました。

自動化できる作業と人に残る作業

自動化できる範囲と、人が決めるべき範囲は次のとおりです。

作業担当今回の扱い
文字起こしスクリプト(mlx-whisper)◎ 自動
言い直し・フィラーのカットClaude Code◎ 自動
無音・ピンボケ・真っ暗の判定Claude Code◎ 自動
単調な場面の倍速Claude Code◎ 自動
文字起こしの聞き間違いの修正Claude Code○ 自動(固有名詞は人に聞く)
縦横の統一・音量調整スクリプト(FFmpeg)◎ 自動
顔や住所の写り込み確認Claude Code+人△ 迷ったら人が判断
投稿するかどうか人× 自動化しない

人名や地名のように、映像と音声から確定できない固有名詞は推測で書かせない設定にしています。

顔出しなしで出す前提なので、人の顔・表札・車のナンバーが写る区間は使わないルールも入れました。

逆に言えば、そこ以外は任せきりでも困りませんでした。

実際にClaude Codeで編集した40秒の解説動画

完成した動画がこちらです。

テーマは「動画編集をAIに任せる3つのコツ」で、この記事の仕組みそのものを解説しています。

出力は1920×1080の横動画で、記事に載せるにあたって表示用に1280×720へ縮小しました。

Claude Codeが編集リストを書き、FFmpegで書き出した40秒の動画

素材もClaude Codeに作らせています。

スライドはPythonの画像ライブラリPillowで描き、ナレーションはmacOSの読み上げ機能(say コマンドの音声Kyoko)です。

編集の腕前を確かめるため、素材には次の「撮り損ね」をわざと仕込みました。

  • 録画開始直後の真っ暗な1.2秒と、手ブレ
  • 「えっと」「えー」などのフィラーが3か所
  • 「コツは2つ、あ、違う、コツは3つあります」という言い直し
  • 話し終わったあとの3秒の無音
  • 進捗バーが伸びるだけの単調な8秒
  • 最後の手ブレとピンボケ

素材を作ったのも編集したのも同じClaude Codeなので、仕込んだ場所は知っている状態です。

そこで見たかったのは、カットの理由を文字起こしの時刻とコマ割り画像で説明しながら、狙った位置で切れるかどうかでした。

62秒の素材から何を切ったか(edl.jsonの中身)

カットの判断はすべて、編集リスト(edl.json)というJSONファイルに残ります。

素材は3本のテイク(14.3秒・29.4秒・18.5秒)で、Claude Codeは11の区間に切り分けました。

1本目のテイクの判断を抜き出したのが次のコードです。

json
"segments": [
  {"clip": "c01", "in": 2.6, "out": 6.6, "memo": "0〜1.2秒は録画開始直後の真っ暗、1.2〜2.0秒は手ブレ、1.6〜2.3秒の「えっと」をまとめてカット"},
  {"clip": "c01", "in": 9.9, "out": 11.3, "memo": "6.6〜9.9秒の言い直し「コツは2つ、あ、違う」をカット。11.2秒以降の3秒の無音もカット"}
]

memo 欄にカットの理由が書かれているのがポイントです。

「えっと」の位置は、文字起こしが返す単語ごとの時刻から割り出しています。

2本目では「えー」の0.4秒だけを抜き、進捗バーの場面は2倍速で4秒に縮めました。

3本目は「えっと」を0.6秒抜いたうえで、ピンボケが始まる手前で終えています。

項目素材完成
長さ62.2秒(3本)40.2秒(11区間)
フィラー・言い直し4か所0か所
字幕なし12か所(説明の一言を含む)

解析から書き出しまで約2分の内訳

作業フォルダのファイル時刻とログから、各工程にかかった時間を拾いました。

動作環境はApple M4のMac(macOS 26.5.2)です。

時刻工程経過
00:11:30解析開始(文字起こし・無音検出・コマ割り画像)0秒
00:11:45解析完了(3本・62.2秒)15秒
00:12:18コマ割り画像と単語の時刻を確認し、下書きを作成48秒
00:12:47編集リストを書き、プレビューを書き出し1分17秒
00:13:16プレビューを確認して字幕を修正1分46秒
00:13:25本番の書き出しが完了1分55秒

素材そのものを作る時間は、この表とは別に32秒でした。

プレビューの確認では、記事の仕組みにある確認画像に加えて、書き出した音声をもう一度文字起こしにかけています。

戻ってきた文章に「えっと」も言い直しも残っていなかったので、カットが音声の上でも効いていると確かめられました。

自作した動画編集スキルの仕組み(4ステップ)

仕組みは「解析→判断→書き出し→確認」の4ステップです。

Claude Codeのスキル(手順書を読み込ませる機能)として登録しているので、素材フォルダを渡して「この動画を編集して」と頼むだけで最後まで進みます。

スキルの基本はClaude Skillsの解説記事にまとめています。

全体の流れを図にすると次のようになります。

素材フォルダ(撮影した動画)

↓

1. 解析(analyze.py)

文字起こし・無音区間・コマ割り画像を作る

↓

2. 判断(Claude Code)

コマ割り画像と文字起こしを見て edl.json を書く

↓

3. 書き出し(render.py+FFmpeg)

カット・倍速・字幕・音量を edl.json どおりに処理

↓

4. 確認(check.jpg)

字幕の見切れ・重なり・誤字・向きを画像で点検

↺ 見切れ・重なりあり
2. 判断に戻って edl.json を直す
✓ 問題なし
完成動画 draft.mp4

解析:文字起こしと無音検出はスクリプト担当

1つめの解析は、Claudeを使わない機械的な処理です。

analyze.py が素材を撮影日時順に並べ、次の3つを作業フォルダに書き出します。

  • 文字起こし:mlx-whisper(whisper-large-v3-turbo)をローカルで実行し、単語ごとの時刻も残す
  • 無音区間:FFmpegの silencedetect で検出
  • コマ割り画像:約2秒に1枚(最少6枚・最多24枚)のコマを1枚の画像に並べたもの

文字起こしはApple Siliconで動くmlx-whisperを使っているため、API料金はかかりません。

Whisperは無音の区間で「ご視聴ありがとうございました」のような存在しない発話を作ることがあるので、無音区間と重なる発話や定型句はこの段階で除外します。

今回の62秒の素材なら、解析は15秒で終わりました。

判断:コマ割り画像を見てClaudeが編集リストを書く

2つめが、この仕組みの中心です。

Claude Codeはコマ割り画像を全クリップ分読み込み、文字起こしと照らし合わせて編集リストを書きます。

動画そのものは読めませんが、画像なら読めます。

動画を「時刻ラベル付きの静止画の束」に変換して渡すのが、Claudeに動画を判断させるコツでした。

今回の素材でも、録画開始の真っ暗な場面と最後のピンボケはコマ割り画像にはっきり写り、何秒目からかまで読み取れました。

編集ルールもスキルに書いてあります。

「言い直しやフィラーは単語の時刻で抜く」「0.8秒以上の無音は詰める」「無音の単調な場面は1.5〜2倍速」といった基準です。

書き出し:FFmpegでカット・テロップ・音量を処理

3つめの書き出しは render.py が編集リストどおりに実行します。

区間ごとに切り出し・解像度の統一・倍速を適用した中間ファイルを作り、最後に連結して字幕を重ねます。

音量は、YouTube向けの目安として広く使われている -14 LUFS にそろえています。

中間ファイルは内容のハッシュ値で名前を付けてキャッシュするので、編集リストを1行直しても、作り直すのは変わった区間だけです。

プレビューは半分の解像度で高速に書き出し、確認が済んでから本番の解像度で書き出す二段構えにしています。

今回の40秒なら、プレビューは4秒、本番は9秒で書き出せました。

確認:check.jpgでテロップの見切れを点検

4つめの確認では、書き出した動画から各区間と字幕の表示中のコマを抜き出し、1枚の画像(check.jpg)にまとめます。

Claude Codeはこの画像を読んで、次の4点を確かめます。

  • 字幕が画面からはみ出していないか
  • 字幕が画面の文字やほかの字幕と重なっていないか
  • 誤字がないか
  • 映像の向きが正しいか

人間がやる「書き出したら一度通しで見る」を、画像1枚で代わりにやらせているイメージです。

今回もこの確認で字幕の重なりが見つかり、本番の前に直せました。

中身は次の章で紹介します。

動画編集の自動化でつまずいた3つのポイント

作る途中で引っかかったのは、Claude Codeの判断よりも周りのツールでした。

どれも「頼めば動く」系の記事ではあまり触れられていない落とし穴です。

同じ構成で作る人は、先に知っておくと遠回りせずに済みます。

3つの症状と対処を先にまとめると、次の表になります。

症状原因対処
「AI」が「愛」になる文字起こしの聞き間違い字幕を書く段階でClaudeが文脈から直す
字幕がスライドの文字に重なる2行の字幕が画面下の文字にかかる長い字幕を1行ずつ2枚に分ける
字幕を焼き込めないFFmpegにlibassがないPillowで透過PNGを作って重ねる

Whisperが「AI」を「愛」と聞き間違える

今回の文字起こしには、聞き間違いが4つありました。

ナレーション文字起こしの結果
動画編集をAIに任せる動画編集を愛に任せる
Claudeは動画を直接は読めませんクロットは動画を直接は読めません
1つ目は、えー、動画を1つ目は、A、動画を
動画編集を、えっと、AIに任せる動画編集を、レッド・アイに任せる

「レッド・アイ」には笑いました。

「えっと」と「AI」がくっついて、謎の固有名詞が生まれています。

文字起こしをそのまま字幕にすると、こうした誤字が全部画面に出ます。

私の仕組みでは、字幕の文言はClaude Codeが文字起こしとスライドの文字を見比べて書き直すので、完成版には残っていません。

4つめの「レッド・アイ」は、フィラーを抜く位置を決める手がかりにもなりました。

2行の字幕がスライドの文字に重なる

最初のプレビューでは、2行になった長い字幕が、スライドの3行目の箇条書きに重なっていました。

「Claudeは動画を直接は読めませんが、画像なら中身を判断できます」の31字です。

1行に収まる字幕は問題なかったので、2行になる字幕だけの症状でした。

check.jpgで見つけたあと、句読点の位置で2枚の字幕に分け、単語の時刻で切り替えるように直しています。

修正後の再書き出しは9秒で終わりました。

スライドや画面収録のように画面の下まで文字がある素材では、字幕を1行に収める前提で書かせると安全です。

FFmpegにlibassがなくテロップが焼けない

FFmpegで字幕を焼き込むときは subtitles フィルターを使うのが定番です。

ところが、私の環境のFFmpeg 8.1.1には、そのフィルターに必要なlibassが入っていませんでした。

FFmpegを入れ直す手もありましたが、選んだのは字幕を画像として作る方法です。

Pillowで1枚ずつ透過PNGを描き、FFmpegの overlay で重ねています。

フォントはmacOSに入っているヒラギノ角ゴシックを使うので、追加のインストールは要りません。

小さい「っ」や長音が行頭に来ないように、改行位置も調整しています。

自分で作るときの始め方と必要な環境

自分で作る場合も、最初から全部を作り込む必要はありません。

私の仕組みはPythonファイル6つ(解析・メディア処理・文字起こし・下書き作成・書き出し・テロップ)とスキルの手順書1つでできています。

必要な環境をそろえたら、1本の短い動画で「解析→判断→書き出し」が通るところまで作るのが近道です。

必要なもの(Mac・FFmpeg・mlx-whisper・Pillow)

動作を確認した環境は次のとおりです(2026年10月時点)。

項目動作確認した版・内容
マシンApple M4のMac(macOS 26.5.2)
Claude Code2.1.281
FFmpeg8.1.1(libass・zscaleなし)
mlx-whisper0.4.3(モデルはwhisper-large-v3-turbo)
Pillow12.2.0

mlx-whisperはApple Silicon専用です。

WindowsやIntelのMacで作るなら、文字起こしをfaster-whisperなど別の実装に置き換える必要があります。

iPhoneのHDR動画を扱う場合は、FFmpegにzscaleがないと正しく変換できないため、私はmacOS標準のavconvertでSDRに変換しています。

Claude Codeの導入がまだなら、Claude Codeの使い方ガイドから始めてください。

最初は1クリップ・テロップ3枚から試す

いきなり複数クリップの長い動画で試すと、どこで失敗したのかがわからなくなります。

おすすめは、30秒前後の1クリップで、テロップ3〜4枚の動画から始める進め方です。

動いたら、次の順に機能を足していくと安全です。

step
1
1クリップの無音カットだけを書き出す

ここで解像度と向きの統一まで確認します。

step
2
発話の字幕を付ける

聞き間違いの修正と、存在しない発話の除外はこの段階で入れておきます。

step
3
複数クリップの連結と、フィラー・言い直しのカットを足す

単語ごとの時刻を使うのはここからです。

step
4
確認画像(check.jpg)による自己チェックを足す

ここまで来れば、あとは編集ルールの調整だけです。

FFmpegのコマンドが頻繁に走るので、毎回の承認を減らす設定もしておくと快適です。

許可の設定はClaude Codeのおすすめ設定で紹介しています。

video-useなど既製ツールとの使い分け

自作しなくても、Claude Codeに動画編集を任せる既製の仕組みはあります。

代表例が、browser-useが公開したオープンソースのvideo-useです。

フィラーの除去・色補正・字幕の焼き込みなどをスキルとしてまとめて組み込めます。

ただし、video-useはカットの判断を主に音声の文字起こしに頼る設計です。声のない映像素材では、判断の材料が少なくなります。

既製ツール(video-use等)が向く人

話す動画・解説動画が中心で、すぐに使い始めたい人。フィラーカットや色補正まで一式そろっている。

自作が向く人

声のない映像も多く、コマ割り画像で映像の中身まで判断させたい人。独自の編集ルールや確認手順を入れたい人。

私が自作を選んだ理由は、ピンボケや真っ暗な場面のように、音声だけでは判断できない失敗も切らせたかったからです。

JavaScriptでも動画は作れる?Remotionで作った例

作れます。

JavaScript(React)で動画を組み立てるなら、Remotionが定番のフレームワークです。

ここまでの仕組みは「撮った素材を切る」編集でしたが、Remotionは素材なしで、コードから映像そのものを作る生成の道具です。

試しに、上の解説動画のオープニングにあたる8秒の動画を、Claude Codeに一から作らせました。

Remotion(React)のコードだけで作った8秒のオープニング動画

Remotionとは?Reactで動画を組み立てる仕組み

Remotionとは、Reactのコンポーネントで動画の1コマずつを描き、MP4などに書き出すフレームワークです。

Webページを作る感覚で、文字の位置や色、動きをコードで書きます。

コンポーネントは「今は何フレーム目か」を受け取り、その時点の見た目を返すだけです。

書き出すときは、Remotionが裏でブラウザを動かして全フレームを撮影し、動画にまとめます。

項目内容(2026年10月時点)
動作確認した版Remotion 4.0.532、React 19.1.0、Node.js 22.23.2
導入npm install で255パッケージ、19秒
書き出し8秒(240フレーム)で初回27秒、2回目以降9秒
ライセンス個人・社員3人以下の営利企業・非営利団体は無料(商用も可)。それ以外の企業は有料のCompany License

初回の書き出しが遅いのは、撮影用のブラウザ(Chrome Headless Shell)を自動でダウンロードするためです。

ライセンスはGitHubの公式LICENSE.mdで確認しました。

8秒のオープニングを作ったコード

Claude Codeが書いたコンポーネントの中心部分が次のコードです。

タイトルをばねの動きで拡大し、3つのコツを1秒おきに右から滑り込ませています。

tsx
export const Intro: React.FC<Props> = ({ title, tips }) => {
  const frame = useCurrentFrame();
  const { fps } = useVideoConfig();
  // タイトル:0フレーム目からばねの動きで拡大しながら現れる
  const titleScale = spring({ frame, fps, config: { damping: 12 } });

  return (
    <AbsoluteFill style={{ backgroundColor: "#f7f9fb" }}>
      <div style={{ fontSize: 100, transform: `scale(${titleScale})` }}>{title}</div>
      {tips.map((tip, i) => {
        // コツの札:2秒目から1秒おきに、右から滑り込む
        const progress = spring({ frame: frame - (60 + i * 30), fps });
        return (
          <div key={tip} style={{ opacity: progress, transform: `translateX(${(1 - progress) * 600}px)` }}>
            コツ{i + 1} {tip}
          </div>
        );
      })}
    </AbsoluteFill>
  );
};

書き出しはコマンド1つです。

bash
npx remotion render src/index.ts Intro out/intro.mp4

タイトルとコツの文言は、外から渡すデータ(defaultProps)にしてあります。

文言を差し替えて書き出し直すだけで、別の回のオープニングが作れます。

私がやったのは「さっきの動画のオープニングを8秒で作って」と頼んだことだけで、コードには手を入れていません。

Three.jsで3Dの立体を動かす

Three.jsの3Dも、Remotionの公式パッケージ @remotion/three を足せば同じ動画に入れられます。

上のオープニングの背景に、回転する3つの立体を敷いた版がこちらです。

Three.jsの3Dを背景に敷いた版(RemotionとReact Three Fiberで作成)

追加したパッケージは次の3つで、npm install は6秒で終わりました。

パッケージ動作確認した版役割
three0.186.1Three.js本体
@react-three/fiber9.8.1Three.jsをReactのコンポーネントで書くためのライブラリ
@remotion/three4.0.5323Dシーンを動画の1コマとして描く ThreeCanvas を提供

Three.jsを動画にするときの決まりごとは1つだけです。

回転や移動の量は、時刻ではなくフレーム番号から計算します。

ブラウザで動かすThree.jsは、描画のたびに角度を少しずつ足していく書き方が一般的です。

Remotionは1コマずつ順不同で撮影するので、その書き方だと書き出すたびに動きがずれます。

tsx
const Shapes: React.FC = () => {
  const frame = useCurrentFrame();
  // 8秒(240フレーム)で1回転半。フレーム番号だけで角度が決まる
  const angle = (frame / 240) * Math.PI * 3;
  return (
    <mesh position={[8.3, -1.2, 0]} rotation={[angle * 0.8, angle, 0]}>
      <torusKnotGeometry args={[0.7, 0.25, 128, 16]} />
      <meshStandardMaterial color="#d9534f" roughness={0.35} />
    </mesh>
  );
};

export const Intro3D: React.FC<Props> = ({ title, tips }) => {
  const { width, height } = useVideoConfig();
  return (
    <AbsoluteFill>
      <ThreeCanvas width={width} height={height} camera={{ position: [0, 0, 10], fov: 60 }}>
        <ambientLight intensity={0.6} />
        <directionalLight position={[5, 5, 5]} intensity={1.2} />
        <Shapes />
      </ThreeCanvas>
      {/* 文字とコツの札は2D版をそのまま重ねる */}
      <Intro title={title} tips={tips} background="transparent" />
    </AbsoluteFill>
  );
};

書き出しには --gl=angle を付けて、ブラウザのWebGL描画を有効にしています。

bash
npx remotion render src/index.ts Intro3D out/intro3d.mp4 --gl=angle

8秒の書き出しは初回15秒、2回目が10秒でした。

2D版の9秒とほとんど変わりません。

1回目の書き出しでは、左右の立体がコツの札の下に隠れてしまいました。

コマを並べた画像で気づき、立体を札の外側へずらして書き出し直しています。

3Dは奥行きのぶん、画面のどこに映るかを数字だけで想像しにくいので、書き出したコマを見て確かめる手順はここでも役に立ちました。

FFmpegでの編集とRemotionでの生成の使い分け

FFmpegによる編集とRemotionによる生成は、得意な仕事がはっきり分かれます。

比べる点FFmpeg+Python(編集)Remotion(生成)
材料撮影した動画・音声コードとデータ
得意なことカット・倍速・字幕の焼き込み・音量調整タイトル・図解・数字が動くアニメーション・Three.jsの3D
Claude Codeの役割どこを使うかの判断画面のデザインと動きをコードで書く
修正のしかた編集リスト(edl.json)を直すコンポーネントやデータを直す

両方を組み合わせるなら、Remotionで作ったオープニングを、FFmpegで編集した本編の頭につなぐ形が手軽です。

撮影した素材を編集する作業そのものはFFmpeg側のほうが向いていて、Remotionでカットや無音の判定までやらせる理由はあまりありません。

自動編集が向いている動画・向いていない動画

自動編集が向いているのは「何を残すかの基準を言葉で書ける動画」です。

解説動画は、言い直しを消す、無音を詰める、待ち時間を縮める、と基準を文章にしやすい題材でした。

ただ、今回うまくいったからといって、どんな動画でも同じ結果になるとは考えていません。

向いている動画

解説動画・画面収録・日常vlogなど、言い直しや無音、ピンボケを捨てれば形になる短い動画。

向いていない動画

音楽に合わせてカットするMVや、演出で見せる作品。2秒刻みのコマでは拾えない、一瞬の動きが主役の動画。

気になる点も残っています。

1つは、人の声の素材です。

今回のナレーションは機械の読み上げなので、発音が一定で、言い直しの境目もはっきりしていました。

人が話す素材では、早口や言いよどみで単語の時刻がずれ、切る位置が甘くなるかもしれません。

もう1つは、コマ割り画像の間隔より短い出来事を見落とす可能性です。

今回の検証は、読み上げのナレーションで作った62秒・3本の素材です。人の声で撮った数分の動画は、まだ十分に試せていません。

それでも、編集ソフトを開かずに「捨てる判断」まで任せられたのは大きな収穫でした。

動画編集で一番時間を食うのは、加工ではなく「どこを使うか」を決める作業だからです。

よくある質問

Claude Codeで動画編集を自動化するときに、よく出る疑問をまとめました。

仕組みの細かい部分や数値は、各見出しの本文もあわせて確認してください。

とくに環境まわりは、手元のFFmpegの構成で対処が変わります。

Q1. Claude Codeで動画編集はできますか?

できます。

ただしClaude Code自体に編集機能はなく、FFmpegなどのツールに加工を実行させる形です。

Claude Codeはコマ割り画像や文字起こしを見て、どこを使うかを判断する役を担います。

Q2. Claude Codeは動画の中身を見られますか?

動画ファイルを直接は読めません。

動画から一定間隔でコマを抜き出し、時刻ラベル付きの画像にして渡すと、映像の内容を判断できます。

私の仕組みでは約2秒に1枚のコマを並べた画像を使っています。

Q3. 動画編集の自動化にお金はかかりますか?

Claude Codeの利用料金以外は無料でそろえられます。

FFmpeg・mlx-whisper・Pillowはいずれも無料で、文字起こしもローカルで動くためAPI料金はかかりません。

Q4. 「えっと」などのフィラーや言い直しも自動で消せますか?

消せます。

文字起こしが返す単語ごとの時刻を使い、フィラーや言い直しの区間だけを抜いて前後をつなぎます。

今回の素材では4か所のフィラーと言い直しを抜き、書き出した音声を文字起こしし直しても残っていませんでした。

Q5. 文字起こしの聞き間違いはどう直しますか?

字幕を書く段階で、Claude Codeが文脈から直します。

今回は「AI」が「愛」、「Claude」が「クロット」と認識されましたが、スライドの文字と見比べて正しい表記に書き直しました。

人名や地名など確定できない固有名詞は、推測で書かずに人に確認させる設定にしています。

Q6. WindowsでもClaude Codeで動画編集を自動化できますか?

仕組み自体は作れます。

ただしmlx-whisperはApple Silicon専用なので、文字起こしはfaster-whisperなど別の実装に置き換える必要があります。

HDR変換に使ったavconvertもmacOS専用です。

Q7. JavaScriptで動画を作れますか?

作れます。

Reactで動画を組み立てるRemotionを使うと、コンポーネントで1コマずつの見た目を書き、MP4に書き出せます。

Three.jsの3Dも、公式パッケージ @remotion/three で同じ動画に入れられます。

個人や社員3人以下の会社なら商用でも無料で、それ以外の企業は有料ライセンスが必要です。

Claude Codeで動画編集を始める前のまとめ

62秒の撮り損ね素材は、1分55秒で40秒の解説動画になりました。

仕組みのポイントを振り返ると、次の4つです。

  • Claude Codeは編集ソフトではなく、どこを使うかを決める判断役にする
  • 動画はコマ割り画像に、音声は単語ごとの時刻付きの文字起こしにして渡す
  • 判断は編集リスト(edl.json)に書かせ、加工はスクリプトとFFmpegに任せる
  • 書き出したら確認画像を見せて、字幕の重なりや見切れを直させる

まだ試せていないのは、人の声で撮った数分の動画です。

次は、自分で話した画面収録を同じ仕組みに通して、言いよどみをどこまで拾えるかを見てみるつもりです。

手元に撮り損ねた30秒の動画が1本あれば、試すには十分です。

ほかにClaude Codeで自動化している作業はClaude Codeでできること10選にまとめています。

REVISIONS / 改訂履歴
REV.DATE内容
22026-10-04記載内容の事実確認と修正
12026-10-03初版
  • この記事を書いた人
  • 最新記事

トム

SESで約8年、環境を変えられないもどかしさの中にいました。32歳で自社開発企業に転職し、今はClaude Codeと自動化で、仕事も時間も組み直している途中です。
・Javaバックエンドエンジニア(Java歴12年以上)
・資格:基本情報技術者/応用情報技術者/Java Silver/Python3エンジニア認定基礎
詳細なプロフィール

-AI