· FabLab Westharima Team · Webサイト · 11 min read
FFmpegインストール・使い方・オプション・コマンド
動画・音声の変換や圧縮、切り出し、結合などをコマンドラインで実行できる強力なツールFFmpegの使い方を解説。初心者でも迷わない基本コマンド構造と実用レシピをまとめました。
FFmpegは、動画・音声の変換や圧縮、切り出し、結合などをコマンドラインで実行できる強力なツールです。本記事は「初めてでも迷わない」ことを目的に、基本のコマンド構造と、よく使うオプションを使用例つきの表でまとめました。すぐにコピペできる実用レシピも掲載します。
インストール
- macOS(Homebrewを使うのが簡単):
Homebrewのインストール(まだの人だけ)
ffmpegのインストール(ターミナルから以下コマンド実行)
brew install ffmpegバージョン確認
ffmpeg -version
Windows:
公式配布または
choco install ffmpeg(Chocolatey)等。インストール後に
ffmpeg -versionで確認。
Linux:
- ディストリビューションのパッケージマネージャを利用(例:
sudo apt install ffmpeg)。
- ディストリビューションのパッケージマネージャを利用(例:
基本的なコマンドの構造(ここが最重要)
FFmpegの基本形は下記です。概念として「入力 → 処理 → 出力」の流れになります。
ffmpeg [グローバルオプション] [入力オプション] -i [入力ファイル] [出力オプション] [出力ファイル]各パートの役割
| パート名 | 役割・説明 | 例・補足 |
|---|---|---|
| グローバルオプション | ffmpeg全体に影響するオプション | -y(出力ファイルを確認せず上書き) |
| 入力オプション | 入力ファイルに関する指定 | -ss 60(入力の60秒から開始)、-f mp4(入力フォーマットを明示) |
| 入力ファイル | 変換・編集したいファイルの指定 | -i input.mp4 |
| 出力オプション | 出力形式やエンコード方法の指定 | -c:v libx264(動画コーデック)、-c:a aac(音声コーデック)、-crf 23(画質指定)、-vf scale=1280:720(サイズ変更) |
| 出力ファイル | 変換・編集後のファイル名の指定 | output.mp4 |
ポイント(順序が重要)
オプションの多くは「どの出力に効くか」が位置で決まります。原則として、出力ファイル名の”前”に書いたオプションはその出力に適用されます。
-iで入力を指定し、その後にコーデックやビットレート、フィルタ(-vf/-af)などを並べ、最後に出力ファイル名を書きます。1回のコマンドで複数出力も可能です(それぞれの出力の直前にオプションを配置)。
コマンド例
ffmpeg -y -i input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k -vf "scale=1280:720" output.mp4コマンド例の分解イメージ
ffmpeg \
[グローバル] \ # -y(出力ファイルを確認せず上書き)
-i input.mp4 # 入力(コンテナ: MP4、映像/音声ストリームを内包) \
-c:v libx264 -crf 23 # 映像コーデック設定(libx264)と品質(CRF) \
-c:a aac -b:a 128k # 音声コーデック(AAC)と音声ビットレート \
-vf scale=1280:720 # 映像フィルタ(例: リサイズ) \
output.mp4 # 出力用語メモ(初心者向け)
| 用語 | 意味・説明 | 例・補足 |
|---|---|---|
| コーデック | データを圧縮・展開する方式。動画や音声の「中身の形式」。 | 映像: H.264、音声: AAC |
| コンテナ | 映像・音声・字幕などをまとめて格納する”入れ物”の形式。 | MP4、MKV など |
| ビットレート | 1秒あたりのデータ量。高いほど画質・音質が良くなる傾向。 | 2M = 2メガビット/秒 |
| フレームレート | 1秒間に表示されるフレーム(画像)の数。 | 24fps、30fps、60fps など |
| 解像度 | 画面の縦横サイズ(ピクセル数)。 | 1920x1080 など |
| CRF | 品質目標の指標(Constant Rate Factor)。小さいほど高品質。 | 0=無劣化、18〜28が目安、23付近が標準 |
| CFR/VFR | 恒常フレームレート(CFR)/可変フレームレート(VFR)。用途に応じて使い分ける。 | 編集や配信で使い分ける |
よく使うオプション早見表(使用例つき)
| オプション | 役割/意味 | よく使う場面 | 使用例 | 補足 |
|---|---|---|---|---|
| -i | 入力ファイル指定 | 変換・編集の起点 | -i input.mp4 | 複数可(-iを並べる)。 |
| -c:v | 映像コーデック指定 | H.264/H.265/VP9等の選択 | -c:v libx264 | 互換性重視はH.264(libx264)。 |
| -c:a | 音声コーデック指定 | AAC/MP3/Opus等 | -c:a aac | 一般的なMP4はAACが無難。 |
| -b:v | 映像ビットレート | ABRやCBR指定 | -b:v 2M | ファイルサイズを概ね制御。CRFと併用は非推奨。 |
| -b:a | 音声ビットレート | 音質調整 | -b:a 128k | トーク中心は128kでも十分なことが多い。 |
| -crf | 品質指標(可変ビットレート) | 画質優先の圧縮 | -crf 23 | 数値が小さいほど高品質。H.264で18〜28目安。 |
| -preset | エンコード速度/圧縮率の調整 | 品質はそのまま速度を調整 | -preset slow | ultrafast→placebo。遅いほど高圧縮=小容量。 |
| -vf | 映像フィルタ | リサイズ/クロップ/回転等 | -vf scale=1280:720 | 複数は,で連結。 |
| -af | 音声フィルタ | 音量調整/ノーマライズ等 | -af volume=1.5 | -filter:aとも書ける。 |
| -filter_complex | 複雑なフィルタグラフ | 連結/ピクチャインピクチャ等 | -filter_complex "[0:v][1:v]hstack" | 複数入力・分岐に対応。 |
| -ss | 開始位置 | トリミング/サムネ抽出 | -ss 00:01:00 | 入力の前=高速/概算、後=精密。 |
| -t | 長さ(秒/時刻) | クリップ長の指定 | -t 30 | -toは終了時刻。併用は避ける(後に書いた方が優先)。 |
| -to | 終了時刻 | 2分まで等の指定 | -to 00:02:00 | -ssと使って区間抽出も。 |
| -r | 出力フレームレート | 24/30/60fps等 | -r 30 | 入力のfpsを変える際に使用。 |
| -s | 出力解像度 | 720p等に統一 | -s 1280x720 | -vf scaleとおおむね同等。フィルタ連携なら-vf推奨。 |
| -map | ストリーム選択 | 特定の映像/音声/字幕のみ | -map 0:v:0 -map 0:a:0 | 自動選択を制御。複数入力時に重要。 |
| -an | 音声なしにする | ミュート動画 | -an | 音声トラックを出力しない。 |
| -vn | 映像なしにする | 音声抽出 | -vn | 映像トラックを出力しない。 |
| -sn | 字幕なしにする | 字幕を外す | -sn | 字幕を出力しない。 |
| -pix_fmt | ピクセルフォーマット | 互換性確保 | -pix_fmt yuv420p | 古い再生機器で有効。 |
| -movflags +faststart | MP4のmoov先頭化 | Web再生を早く | -movflags +faststart | ストリーミング開始が早い。 |
| -shortest | 最短ストリームに合わせる | BGMが短い等 | -shortest | 最短のストリームに合わせて早めに終了。 |
| -y | 上書き許可 | 自動化 | -y | 既存ファイルに確認なしで上書き。 |
| -n | 上書き禁止 | 誤上書き防止 | -n | 既存があると失敗させる。 |
| -f | フォーマット指定 | 生PCM等の明示 | -f wav | 自動判定が誤るケースで使用。 |
注意: H.264/H.265の品質重視は
-crf+-presetが基本。明確な目標サイズがある場合のみ-b:v(2pass推奨)を検討。注意2:
-rは入力側と出力側で意味が異なります。入力の前に置く-rは「入力のフレームレートをこうだとみなす」指定で、通常のMP4等では不要です。出力側の-rは「出力の目標fps」を指定します。
すぐ使えるコマンド一覧(コピペOK)
1) MOV→MP4、CRF 25指定
ffmpeg -i input.mov -crf 25 output1.mp42) 動画のトリミング(1分地点から30秒)
ffmpeg -i input.mp4 -ss 00:01:00 -t 30 -c:v libx264 -crf 22 -c:a aac -b:a 128k output_clip.mp4メモ: -ssを入力の”後”に置くとフレーム精度が上がります(速度はやや低下)。
3) 高速にざっくりトリミング(キーフレーム基準)
ffmpeg -ss 60 -i input.mp4 -t 30 -c copy output_fast.mp4メモ: 入力の”前”に-ssを置き、-c copyで再エンコードなし。切断点は概算になります。
4) 音声を無音にする(映像は再エンコード)
ffmpeg -i input.mp4 -an -c:v libx264 -crf 23 output_noaudio.mp45) 音声だけ抽出(WAVやMP3)
# WAV(非圧縮)
ffmpeg -i input.mp4 -vn -c:a pcm_s16le -ar 48000 -ac 2 output.wav
# MP3(圧縮)
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k output.mp36) 解像度を1280x720にリサイズ
ffmpeg -i input.mp4 -vf scale=1280:720 -c:v libx264 -crf 22 -c:a aac -b:a 128k output_720p.mp47) 目標ビットレートで書き出し(2Mbps)
ffmpeg -i input.mp4 -c:v libx264 -b:v 2M -c:a aac -b:a 128k output_2m.mp4例:-b:v 2M。「映像品質が保証されるわけではありません。希望のビットレートでお試しください。」
8) 画質優先(CRF基準)
ffmpeg -i input.mp4 -c:v libx264 -crf 20 -preset medium -c:a aac -b:a 160k output_crf20.mp49) 複数の動画を結合(同じコーデック/解像度/フレームレート前提)
# 1) リストファイルを作成(例: files.txt)
# file 'part1.mp4'
# file 'part2.mp4'
# file 'part3.mp4'
# 2) concatデマルチプレクサで結合
ffmpeg -f concat -safe 0 -i files.txt -c copy merged.mp410) 字幕を焼き込む(SRT)
ffmpeg -i input.mp4 -vf subtitles=subs.srt -c:v libx264 -crf 22 -c:a copy output_subbed.mp411) 90度回転(時計回り)
ffmpeg -i input.mp4 -vf "transpose=1" -c:a copy output_rotated.mp412) フレームレートを30fpsに変換
ffmpeg -i input.mp4 -r 30 -c:v libx264 -crf 22 -c:a aac -b:a 128k output_30fps.mp4-r 30 の指定は一般的。ただし「フレームの補間はせず、間引き/複製されます」
よくある疑問・トラブルシューティング
| エラー・現象 | 対処法・説明 |
|---|---|
| Unknown encoder ‘libx264’ | H.264エンコーダが入っていないビルド。macOSのHomebrew版なら通常含まれます。別の配布源を利用するか再インストール。 |
| At least one output file must be specified | 出力ファイル名を書き忘れ。最後にoutput.mp4等を明示。 |
| Non-monotonous DTS | トリミングやストリーム結合で時系列が前後。-fflags +genptsや再エンコードで解消することがあります。 |
| Webで再生が始まるのが遅い | -movflags +faststartでmoovを先頭に移動。 |
| 互換性が低い/一部で再生できない | -pix_fmt yuv420pを付与、H.264ならlevel/profile調整も検討。 |
参考リンク
公式サイト: https://ffmpeg.org/
CRFの解説(英語): https://slhck.info/video/2017/02/24/crf-guide.html
以上、FFmpegの「基本の型」と「定番オプション」「即戦力レシピ」をまとめました。まずはサンプルをコピペで動かし、必要に応じてパラメータを調整してみてください。

