3ツールの全体像
FFmpegパッケージには3つのコマンドラインツールが含まれています(公式 About)。
| ツール | 主な役割 | 主な用途 |
|---|---|---|
ffmpeg | 変換・エンコード・フィルタリング・ストリーミング | ファイル変換、動画処理 |
ffprobe | メディアストリームの解析・情報表示 | ファイル情報確認、スクリプト連携 |
ffplay | SDLを使ったメディア再生 | 動作確認・開発テスト |
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 json | JSON形式で出力(スクリプト連携向け) |
-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分シーク |
s | 1フレーム送り |
主な用途
- エンコード後のファイルをすぐ確認したいとき
- フィルタ適用結果をプレビューしたいとき
- ライブストリームの受信テスト
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
よくある使い方の流れ
- 確認:
ffmpeg -i input.mp4 -hide_bannerでソースファイルの情報を確認 - 変換:
ffmpegで目的の形式に変換 - 確認:
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