「FFmpegって名前は聞いたことがあるけど、何ができるの?」——動画・音声を扱うすべての人に関係するツールです。FFmpegは無料で使えるオープンソースの動画処理エンジンで、変換・圧縮・カット・音声抽出・GIF作成など、動画に関するほぼすべての作業をコマンド1行でこなせます。この記事で全体像をつかみましょう。所要時間:10分。

動作確認: FFmpeg 6.1(ubuntu-latest / GitHub Actions CI検証済み)


この記事でわかること

  1. FFmpegとは何か(公式定義と特徴)
  2. コーデックとコンテナの違い(最重要の前提知識)
  3. FFmpegでできること(用途別の実例コマンド)
  4. FFmpegでできないこと
  5. ffmpeg・ffprobe・ffplayの役割の違い
  6. 開発者向けライブラリ構成
  7. よくある疑問と答え(FAQ 5問)
  8. 次に読むべき記事

FFmpegとは

FFmpegは「音声・映像のあらゆる処理を行うためのオープンソースフレームワーク」です。公式サイトでは次のように定義されています。

A complete, cross-platform solution to record, convert and stream audio and video.

主な特徴:

  • 無料・オープンソース(LGPL/GPL)
  • クロスプラットフォーム(Windows・macOS・Linux・BSD等すべて対応)
  • コマンドラインツール(GUIなし、スクリプト化・自動化が容易)
  • 圧倒的な対応フォーマット数(数百種類のコーデック・コンテナ)
  • YouTube・Netflix・VLC・HandBrakeのバックエンドでも使われている

VLC・HandBrake・OBS・Adobe Premiere・DaVinci Resolveなど、あなたが使っているソフトウェアのほとんどがFFmpegのライブラリ(libav*)を内部で使用しています。


コーデックとコンテナの違い(重要な前提知識)

FFmpegを理解するうえで最も混同しやすい概念です。

概念説明
コンテナ(ファイル形式)映像・音声・字幕などのデータを格納する「入れ物」。ファイル拡張子で識別.mp4, .mkv, .avi, .mov, .webm
コーデック(エンコード方式)データの圧縮・展開アルゴリズムH.264, H.265, AV1, AAC, MP3, Opus

よくある組み合わせ:

ファイル名コンテナ映像コーデック音声コーデック
video.mp4MP4H.264AAC
video.mkvMatroskaH.264 or H.265AAC or FLAC
video.webmWebMVP9 or AV1Vorbis or Opus
video.movQuickTimeProRes or H.264AAC

「MP4をMKVに変換する」=コンテナのみ変更(コーデックはそのまま)が可能です(ストリームコピー)。


FFmpegでできること(実例コマンド付き)

1. フォーマット変換(コンテナ変換)

映像・音声を再エンコードせずにコンテナだけ変換。非常に高速で品質劣化なし

# MKV → MP4(コーデックはそのまま)
ffmpeg -i input.mkv -c copy output.mp4

2. エンコード・圧縮

品質を保ちながらファイルサイズを削減します。

# H.264圧縮(最も汎用)
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac output.mp4

# H.265でさらに高圧縮(同品質でH.264より約40%小さい)
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -c:a aac output.mp4

3. 動画のトリミング・カット

# 1分00秒から2分00秒を切り出し(高速・ストリームコピー)
ffmpeg -ss 00:01:00 -i input.mp4 -to 00:02:00 -c copy output.mp4

4. 音声抽出

# 動画からMP3を抽出
ffmpeg -i input.mp4 -vn -c:a libmp3lame -q:a 2 output.mp3

# 無劣化でAACをそのまま抽出
ffmpeg -i input.mp4 -vn -c:a copy output.aac

5. GIF作成

# 動画の一部をGIFアニメーションに変換
ffmpeg -i input.mp4 -vf "fps=15,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif

6. 解像度変更(リサイズ)

# 1080p → 720pに変換
ffmpeg -i input_1080p.mp4 -vf scale=1280:-2 -c:v libx264 -crf 23 output_720p.mp4

7. ライブ配信(RTMP)

# YouTubeライブに配信
ffmpeg -re -i input.mp4 -c:v libx264 -b:v 4000k -c:a aac -f flv rtmp://a.rtmp.youtube.com/live2/YOUR_KEY

FFmpegでできないこと

できないこと理由・代替手段
DRM保護コンテンツの解除著作権法上の保護対象。FFmpegの対象外
GUIによるビジュアル編集コマンドラインツールのため。GUIが必要ならHandBrake・OpenShot等を使用
タイムライン編集(非線形編集)Adobe Premiere・DaVinci Resolve等のNLEが必要
AIベースのアップスケーリングReal-ESRGAN等の専用ツールが必要

ffmpeg・ffprobe・ffplayの役割

ツール役割使いどき
ffmpeg変換・エンコード・フィルタリング・配信動画処理のほぼすべて
ffprobeファイル解析・メタデータ確認コーデック・解像度・フレームレート確認
ffplay動画再生(SDL)テスト用フィルタ結果の素早い確認
# バージョン確認
ffmpeg -version

# ファイル情報を確認
ffprobe -v quiet -show_streams -print_format json input.mp4

# 動画を再生して確認
ffplay input.mp4

開発者向けライブラリ構成(libav*)

ライブラリ役割
libavcodecエンコーダー・デコーダーの集合体
libavformatコンテナのmux/demux処理
libavdeviceデバイス入出力(カメラ・マイクなど)
libavfilterフィルタグラフ処理
libavutil共通ユーティリティ
libswscale映像スケーリング・ピクセルフォーマット変換
libswresample音声リサンプリング・フォーマット変換

FAQ

Q1. FFmpegは有料ですか?
A. 無料です。LGPL v2.1以降(またはGPL v2以降)でライセンスされたオープンソースソフトウェアです。商用利用も条件を満たせば可能です(詳細はFFmpeg Legalを参照)。

Q2. プログラミング知識がなくても使えますか?
A. はい。コマンドラインの基本(ターミナル/コマンドプロンプトを開く、コマンドを入力する)がわかれば使えます。この記事のコマンドをそのままコピペして試せます。

Q3. WindowsとMacとLinux、どれでも動きますか?
A. はい。FFmpegはクロスプラットフォーム対応です。インストール方法が異なるだけで、コマンドはほぼ共通です(パス区切り文字など微差はあります)。

Q4. 対応しているフォーマットを確認するには?

# 対応フォーマット一覧
ffmpeg -formats

# 対応コーデック一覧
ffmpeg -codecs

# 利用可能エンコーダー一覧
ffmpeg -encoders

Q5. FFmpegとHandBrakeの違いは?
A. HandBrakeはFFmpegのライブラリを内部で使うGUIソフトです。FFmpegはコマンドラインツールで自由度が高く、スクリプト化・自動化ができます。HandBrakeはGUIで直感的に操作できますが、FFmpegほど細かい制御はできません。


関連記事


動作確認: ffmpeg 6.1.1 / Ubuntu 24.04 (GitHub Actions runner)
一次ソース: ffmpeg.org/about.html / ffmpeg.org/ffmpeg.html