3ツールの全体像

FFmpegパッケージには3つのコマンドラインツールが含まれています(公式 About)。

ツール主な役割主な用途
ffmpeg変換・エンコード・フィルタリング・ストリーミングファイル変換、動画処理
ffprobeメディアストリームの解析・情報表示ファイル情報確認、スクリプト連携
ffplaySDLを使ったメディア再生動作確認・開発テスト

ffmpeg — 変換・処理の主力ツール

ffmpeg は3つの中で最も機能が豊富なツールです。公式ドキュメント によると、デコード・エンコード・トランスコード・mux/demux・ストリーミング・フィルタリングをすべて担います。

基本構文

ffmpeg [グローバルオプション] {[入力オプション] -i 入力URL} ... {[出力オプション] 出力URL} ...

詳細は「FFmpegコマンドの基本構文」で解説しています。

代表的な使用例

コンテナ変換(ストリームコピー):

ffmpeg -i input.mkv -c copy output.mp4

コーデック変換(トランスコード):

ffmpeg -i input.avi -c:v libx264 -c:a aac output.mp4

フィルタ適用(リサイズ):

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

ffprobe — ファイル情報の解析ツール

ffprobe はメディアファイルのストリーム情報やコンテナ情報を取得するツールです。公式ドキュメント では「ストリームの情報を収集し、人間と機械が読みやすい形式で出力する」と説明されています。

ffprobe gathers information from multimedia streams and prints it in human- and machine-readable fashion.

基本構文

ffprobe [オプション] 入力URL

主要オプション

オプション説明
-show_streams各メディアストリームの詳細情報を表示
-show_formatコンテナフォーマットの情報を表示
-print_format jsonJSON形式で出力(スクリプト連携向け)
-select_streams v:0特定ストリームのみ選択(例: 映像の1本目)
-v quiet冗長ログを抑制してデータのみ出力

使用例

ファイルの基本情報を確認する(最も頻繁に使う方法):

ffmpeg -i でも同様の情報を表示できます(処理は実行しない)。

ffmpeg -i input.mp4 -hide_banner

JSON形式でストリーム情報を取得(スクリプト向け):

ffprobe -v quiet -show_streams -print_format json input.mp4

映像ストリームのみ表示:

ffprobe -v quiet -show_streams -select_streams v input.mp4

コンテナ情報のみ表示:

ffprobe -v quiet -show_format -print_format json input.mp4

Note: ffprobe コマンドは本記事の CI 検証対象外です(ffprobe で始まるコマンドは ffmpeg ではないため)。上記コマンドは実機で確認済みですが、各自の環境でもご確認ください。

ffprobe の出力例

{
  "streams": [
    {
      "index": 0,
      "codec_name": "h264",
      "codec_type": "video",
      "width": 1920,
      "height": 1080,
      "r_frame_rate": "30/1"
    },
    {
      "index": 1,
      "codec_name": "aac",
      "codec_type": "audio",
      "sample_rate": "48000",
      "channels": 2
    }
  ]
}

ffplay — テスト用メディアプレーヤー

ffplay は SDL ライブラリを使ったシンプルなメディアプレーヤーです。公式ドキュメント では「主にFFmpegの各種APIのテストベッドとして使用される」と説明されています。

FFplay is a very simple and portable media player using the FFmpeg libraries and the SDL library. It is mostly used as a testbed for the various FFmpeg APIs.

基本構文

ffplay [オプション] [入力URL]

主なキーボードショートカット

キー動作
q / ESC終了
fフルスクリーン切り替え
p / Space一時停止・再開
mミュート切り替え
9 / 0音量を下げる / 上げる
/ 10秒シーク
/ 1分シーク
s1フレーム送り

主な用途

Note: ffplay はGUI表示が必要なため、GUIなし環境(サーバー・CI)では動作しません。


使い分けの指針

ファイル情報を確認したい
  → ffprobe -show_streams input.mp4
     または ffmpeg -i input.mp4 -hide_banner

ファイルを変換・エンコードしたい
  → ffmpeg -i input.mp4 output.mkv

変換結果をその場で再生確認したい
  → ffplay output.mp4

よくある使い方の流れ

  1. 確認: ffmpeg -i input.mp4 -hide_banner でソースファイルの情報を確認
  2. 変換: ffmpeg で目的の形式に変換
  3. 確認: ffplay output.mp4 で変換結果を再生確認

ffmpeg で情報表示する際の注意

ffmpeg -i input.mp4 はファイル情報を表示しますが、出力ファイルを指定しないとエラー終了します(終了コード 1)。情報表示だけが目的なら、-hide_banner を付けたうえでエラーを無視するか、ffprobe を使うのが適切です。


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