ffmpegの使い方 — 動画処理の基本コマンドをまとめる【第3回】

subaru · ·

ffmpegは動画・音声処理のCLIツールで、事実上の業界標準だ。有料の動画編集ソフトの多くが内部でffmpegを使っている。

Claude Codeで動画編集を自動化するとき、実際の処理をするのはffmpegだ。Claude Codeはffmpegコマンドを生成・実行するだけで、動画を直接操作する機能を持っていない。

インストール

brew install ffmpeg

基本の構文

ffmpeg -i 入力ファイル [オプション] 出力ファイル

-i は input(入力)の意味。オプションは入力と出力の間に書く。

よく使うコマンド

動画の情報を確認する

ffmpeg -i input.mp4

解像度・コーデック・フレームレート・音声トラックの有無などが表示される。

フォーマットを変換する

ffmpeg -i input.mov -c:v libx264 -c:a aac output.mp4
  • -c:v libx264 — 映像コーデックをH.264に指定
  • -c:a aac — 音声コーデックをAACに指定

特定の区間を切り出す

ffmpeg -i input.mp4 -ss 00:01:30 -to 00:05:00 -c copy output.mp4
  • -ss — 開始時間(時:分:秒)
  • -to — 終了時間
  • -c copy — 再エンコードせずコピー(高速)

音声を抽出する

ffmpeg -i input.mp4 -vn -acodec pcm_s16le output.wav

Whisperに渡す前に音声だけ抽出したいときに使う。

  • -vn — 映像なし(video none)
  • -acodec pcm_s16le — 非圧縮WAV形式

字幕ファイルを焼き込む

ffmpeg -i input.mp4 -vf subtitles=subtitle.srt output.mp4

-vf subtitles= の後にSRTファイルのパスを指定する。字幕が映像に焼き付けられる(ソフト字幕ではなくハード字幕)。

日本語フォントを指定したい場合:

ffmpeg -i input.mp4 \
  -vf "subtitles=subtitle.srt:force_style='FontName=Hiragino Sans,FontSize=24,PrimaryColour=&Hffffff'" \
  output.mp4

複数ファイルを結合する

テキストファイルにファイルリストを書いて結合する。

# concat.txt の内容
file 'part1.mp4'
file 'part2.mp4'
file 'part3.mp4'
ffmpeg -f concat -safe 0 -i concat.txt -c copy output.mp4

解像度を変更する

ffmpeg -i input.mp4 -vf scale=1920:1080 output.mp4

アスペクト比を維持しながら横幅だけ指定したい場合:

ffmpeg -i input.mp4 -vf scale=1280:-1 output.mp4

-1 にすると自動計算される。

ビットレートを下げてサイズを圧縮する

ffmpeg -i input.mp4 -b:v 2000k -b:a 128k output.mp4

Claude Codeへの指示例

ffmpegの基本を知っていれば、Claude Codeへの指示が具体的になる。

# 曖昧な指示(動かない)
「動画を編集して」

# 具体的な指示(動く)
「input.mp4 の 1分30秒から5分00秒を切り出して output.mp4 として保存する
ffmpegコマンドを書いて実行して」
「以下の要件でffmpegコマンドを生成して実行してください:
- 入力: input.mp4
- subtitle.srt の字幕を焼き込む
- フォントサイズ: 28px、色: 白
- 出力: output_with_sub.mp4」

よくあるエラーと対処

No such file or directory

ファイルパスが間違っているか、ファイル名に特殊文字が含まれている。macOSのスクリーン録画ファイルはU+202F(ナローノーブレークスペース)を含む場合がある。

Stream map '0:a' matches no streams

音声トラックがない動画に音声オプションを指定したとき。-an オプションで音声なし出力にするか、音声付きの素材を使う。

codec not currently supported in container

コンテナ(mp4など)とコーデックの組み合わせが合っていない。mp4コンテナにはH.264(libx264)とAACの組み合わせが安定している。

まとめ

ffmpegは覚えることが多いが、Claude Codeと組み合わせる場合は「何ができるか」を把握していれば十分だ。具体的なオプションはClaude Codeに生成させればいい。

次回はWhisperを使った文字起こしとSRT字幕ファイルの生成を解説する。