アニメーションや映像制作の仕事をしているなら、すでにFFmpegに出会っているはずです。
オープンソースで、YouTube、Blender、DaVinci Resolveのような巨大な存在によって使われているにもかかわらず、FFmpegは裏方に隠れがちで、その価値を知っているアーティストは多くありません。
このガイドでは、手作業の時間を何時間も節約するために、アニメーターやパイプライン担当者が知っておくべき実用的なFFmpegコマンド10個を順に紹介します。
FFmpegとは?
FFmpegは、映像・音声・画像データを扱うための強力なオープンソースのコマンドラインツールキットです。これは単一のプログラムというより、想像できるほぼすべてのメディア処理タスクを扱う一連のツールです:
- ほぼあらゆる映像・音声・画像フォーマット間で変換。
- 画像シーケンスをムービーに組み立て(その逆も可能)。
- レビューやアップロード用に大きなファイルを圧縮/トランスコード。
- フィルター:トリミング、スケーリング、カラー調整、オーバーレイ、ぼかしなど。
- 複数の音声/映像ソースを同期または結合。
- メディアのメタデータ解析(フレームレート、コーデック、ビット深度など)。
- スクリプトによるパイプラインでのバッチ処理の自動化。
ここに搭載されている“便利機能”をすべて挙げることはできませんが、まずは実用的なFFmpegコマンド10個を、すぐにターミナルへ貼り付けられる例とともに始めましょう。
1. 画像シーケンスを動画にまとめる
Blenderのようなレンダラーでは、単一のムービーファイルではなく、画像シーケンス(例:何千ものEXRやPNG)を出力できます。レンダーがクラッシュしてもそこから再開できるので、これなら安全です。問題は、そうしたシーケンスは再生できなかったり、レビューしづらかったりすることです。
FFmpegは数秒で全フレームを1つの動画ファイルに“つなぎ”、ショットの軽量で共有しやすいバージョンを作れます:
ffmpeg -framerate 24 -i frame_%04d.png -c:v libx264 -pix_fmt yuv420p output.mp4-framerate 24- 24フレーム毎秒でシーケンスを読み取るようFFmpegに指示します。-i frame_%04d.png - %04dは、ゼロで埋めて4桁にすることを意味します(例:0001、0002…)。シーケンスが1000フレームを超える場合は、より多くの桁が必要です。-c:v libx264- H.264コーデックで動画をエンコードし、レビュー用途のよいデフォルトになります。-pix_fmt yuv420p- 幅広い互換性を確保します(特にメディアプレーヤーやブラウザで)。output.mp4- 最終的な動画ファイル名です。
2. すぐに低解像度のレビュー用を作る
高解像度レンダー(4K、フル品質のEXR、またはProRes)が数GBもあると、フィードバックのためにSlackに送るのには重すぎます:日々のレビューには、より小さくて高速に読み込めるバージョンが必要です。
マスタービデオをスケール&圧縮するだけで、再レンダーせずに再生可能な版を自動的に作れます:
ffmpeg -i output.mp4 -vf scale=960:-1 -b:v 1M review.mp4-i output.mp4- 入力ファイル(高品質レンダー)。-vf scale=960:-1- 動画の幅を960ピクセルにリサイズし、アスペクト比を保つために高さは自動調整します(-1)。-b:v 1M- ビットレートを1メガビット毎秒に設定します。低サイズ/高スピードのよい妥協案です。review.mp4- 出力ファイル。
3. ロゴやウォーターマークをオーバーレイする
スタジオやフリーランスは、制作途中のファイルを共有することがよくあります。しかしウォーターマークがないと、プレビューが再配布されたり流出したり、最終版と混同されたりします。
単一のFFmpegコマンドで、スタジオのロゴ、ユーザー名、または「制作途中(Work In Progress)」のタグを、すべてのフレームに重ねられます。
ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=10:10" branded.mp4-i input.mp4- メイン動画。-i logo.png- オーバーレイする画像(透過がある必要があります。ないと無地の四角になります)。-filter_complex "overlay=10:10"- オーバーレイフィルターを適用し、ロゴを左上から10pxの位置に配置します。branded.mp4- ウォーターマークを適用した結果。

4. フレーム番号またはタイムコードを焼き付ける
クライアントやチームのレビューでは、ノート用に誰もが正確なフレームを参照する必要があります。そのためラベルのない映像だと、フィードバックを揃えることができません。
FFmpegのdrawtextフィルターを使えば、フレーム番号や再生中のタイムコードを動画に焼き込んで、正確な参照システムを提供できます。これにより、レビュー中に進行管理者やアニメーターが同期しやすくなります。
ffmpeg -i input.mp4 -vf "drawtext=text='%{n}':x=10:y=H-th-10:fontsize=24:fontcolor=white" numbered.mp4drawtextフィルターが、各フレームにテキストを描画します。text='%{n}'- フレーム番号を挿入します。x=10:y=H-th-10- 左下から10pxの位置に配置します。fontsize、fontcolor- 見た目の制御。

また、提示タイムスタンプ(PTS)を時間:分:秒の形式で使ってタイムコードを表示することもできます:
ffmpeg -i input.mp4 -vf "drawtext=text='%{pts\:hms}':x=10:y=H-th-10:fontsize=24:fontcolor=white" timecode.mp45. ループするクリップ(回転台)を作る
3Dモデルやショットを提示するときは、ポートフォリオ、社内ライブラリ、デモリール向けに、ループする回転台が必要になることがよくあります。エディターでクリップを手作業で複製するのは面倒です。
FFmpegなら、-stream_loopで指定した回数だけ任意のクリップをループできます。再レンダーせずに、連続再生を即座に作成:
ffmpeg -stream_loop 3 -i turntable.mp4 -c copy looped.mp4-stream_loop 3- 入力をさらに3回分再生します。-i turntable.mp4- 元のアニメーション。-c copy- 再エンコードせずに音声/映像ストリームをコピーします(高速・ロスレス)。looped.mp4- 最終出力。
6. 無音レンダーに音を追加する
3Dソフトからのレンダーには音声が含まれません。たとえアニメーションがセリフや音楽に同期していても、PremiereやAfter Effectsで手動に音を足す作業は、素早いプレビューのためには手間になりがちです。
FFmpegなら、無音レンダーに音声トラックを即座に結合でき、タイムラインベースのエディターなしで同期も取れます。
ffmpeg -i render.mp4 -i music.wav -c:v copy -c:a aac -shortest final.mp4-i render.mp4- 動画入力。-i music.wav- 音声入力。-c:v copy- 既存の動画ストリームを維持します(再レンダーなし)。-c:a aac- 音声をAACにエンコードします(広く対応)。-shortest- 2つのトラックのうち短い方が終わった時点でエンコードを停止します。
7. N番ごとのフレームを抽出する
長いショットのすべてのフレームを確認するのは遅いです。特にモーション分析、フリッカー検出、露出の変化チェックでは時間がかかります。そんなとき、10枚おきや20枚おきのように、サンプルとして取り出せれば十分なこともあります。
FFmpegのselectフィルターで、n番ごとのフレームを自動的に抽出できます。素早いモーション診断、コンタクトシートの作成、サムネイルの生成に最適です:
ffmpeg -i input.mp4 -vf "select='not(mod(n,10))',setpts=N/FRAME_RATE/TB" frames_%04d.pngselect='not(mod(n,10))'- フレーム番号nが10で割り切れるフレームだけを処理します(10枚ごと)。setpts=N/FRAME_RATE/TB- 出力が速すぎて再生されないよう、タイムスタンプを補正します。frames_%04d.png- 抽出画像の命名パターン。
8. 2つのバージョンを比較する(A/B Diff)
ライティングの微調整、カラー補正、ノイズ除去の更新をテストするとき、目視で2つのバージョンの小さな差を見分けるのは難しいです。
FFmpegのblend=all_mode=differenceフィルターは、あるバージョンからもう一方を差し引いて、差分を明るいピクセルとして表示します。バージョン変更のQAを素早く行う方法として便利です。
ffmpeg -i old.mp4 -i new.mp4 -filter_complex "blend=all_mode=difference" diff.mp4- 2つの入力ファイル:旧版と新版のレンダー。
blend=all_mode=difference- 片方のピクセル値をもう片方から引き算し、どこが違うかを示します。diff.mp4- 明るいピクセル=変更点、暗い=差なし。

9. レンダーパスを左右(上下)に並べる
アーティストはしばしば2つのパス(例:旧版 vs 新版)を比較する必要があります。比較のためだけにコンポジットソフトで開くのは過剰です。
hstack(またはvstack)フィルターは、動画を横並びまたは縦並びに配置して簡単に比較できるようにします。レビュー書き出しや、クライアント/進行管理者向けに変更点を示すビフォー/アフター動画に最適です。
ffmpeg -i pass1.mp4 -i pass2.mp4 -filter_complex "hstack" side_by_side.mp4- 2つの入力動画。
hstack- 水平方向にスタックします。縦に並べたい場合はvstackを使います。side_by_side.mp4- 出力ファイル。

さらに、前のblend=all_mode=differenceコマンドで作った結果動画も含めて、フレーム間の差を素早く確認することもできます:
ffmpeg -i pass1.mp4 -i diff.mp4 -i pass2.mp4 \
-filter_complex "[0:v][1:v]hstack=inputs=2[top]; [top][2:v]hstack=inputs=2" \
side_by_side2.mp4
10. アニメーションの再タイミング(スローモーション/高速化)
プレビューで遅いカメラ移動を試したり、素早いモーションテストを確認したりするようなタイミング調整は、通常リレンダーやソフトでの編集が必要になります。それなのに、テンポを変える試行だけをするために非効率です。
FFmpegなら、フレームのタイムスタンプを調整して再生速度をその場で変更し、アニメーターが別の速度をすぐにプレビューできるようにできます。
半分の速度にする:
ffmpeg -i input.mp4 -filter:v "setpts=2.0*PTS" slowmo.mp42倍の速度にする:
ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" fast.mp4setptsフィルターは、各フレームの提示タイムスタンプ(PTS)を操作します。- 2.0倍すると再生時間が2倍になり(遅くなる)、
- 0.5倍すると半分になり(速くなる)。
結論
FFmpegは単なる動画変換ツールではありません。テキストを数行書くだけで、従来のソフトで通常は数分〜数時間かかる作業を自動化できます:バッチレンダー、バージョン比較、レビュー用書き出し…お好みで。
構文に慣れたら、FFmpegはあなたのクリエイティブなワークフローの拡張になります。このリストから1つコマンドを選んで、次のレンダーパイプラインにそのまま投入し、日々の制作がどれだけスムーズになるか見てみてください!
でも、それだけではありません。ffmpegの力をDCCスクリプト(例:Blenderスクリプト)と組み合わせれば、人間の理解を超えるほどの“スーパーパワー”(たとえば、シーンの作成全体を自動化するなど)を解放できます。ブログを購読して、さらにどうぞ!


