FFmpegインストール・使い方・オプション・コマンド

投稿: 2025/9/28
Webサイト

FFmpegは、動画・音声の変換や圧縮、切り出し、結合などをコマンドラインで実行できる強力なツールです。本記事は「初めてでも迷わない」ことを目的に、基本のコマンド構造と、よく使うオプションを使用例つきの表でまとめました。すぐにコピペできる実用レシピも掲載します。


インストール

  • macOS(Homebrewを使うのが簡単):
  1. Homebrewのインストール(まだの人だけ)

  2. ffmpegのインストール(ターミナルから以下コマンド実行)
    brew install ffmpeg

  3. バージョン確認
    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
コンテナ映像・音声・字幕などをまとめて格納する“入れ物”の形式。MP4MKV など
ビットレート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 slowultrafastplacebo。遅いほど高圧縮=小容量。
-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 +faststartMP4の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、CFR25指定

ffmpeg -i input.mov -crf 25 output1.mp4

2) 動画のトリミング(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.mp4

5) 音声だけ抽出(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.mp3

6) 解像度を1280x720にリサイズ

ffmpeg -i input.mp4 -vf scale=1280:720 -c:v libx264 -crf 22 -c:a aac -b:a 128k output_720p.mp4

7) 目標ビットレートで書き出し(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.mp4

9) 複数の動画を結合(同じコーデック/解像度/フレームレート前提)

# 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.mp4

10) 字幕を焼き込む(SRT)

ffmpeg -i input.mp4 -vf subtitles=subs.srt -c:v libx264 -crf 22 -c:a copy output_subbed.mp4

11) 90度回転(時計回り)

ffmpeg -i input.mp4 -vf "transpose=1" -c:a copy output_rotated.mp4

12) フレームレートを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調整も検討。

参考リンク


以上、FFmpegの「基本の型」と「定番オプション」「即戦力レシピ」をまとめました。まずはサンプルをコピペで動かし、必要に応じてパラメータを調整してみてください。