FFmpeg 動画圧縮ガイド - FFHub

FFmpeg で動画を圧縮する方法を、各パラメータの意味とともに解説。

FFmpeg で動画を圧縮する方法を、各パラメータの意味とともに解説します。

基本コマンドの構成

ffmpeg -i input.mp4 -b:v 1M output.mp4

各部分の意味:

パラメータ意味
ffmpeg実行するプログラム
-i input.mp4-i は「input」、後ろにソースファイル
-b:v 1M-b:v は「映像ビットレート」、1M = 1 Megabit/秒
output.mp4出力ファイル名(必ず最後)

ビットレートとは? 1 秒あたりのデータ量です。高い = 高画質・大容量、低い = 小容量・低画質。

方法 1: CRF(初心者向け)

CRF(Constant Rate Factor)は最も簡単な圧縮方法で、画質レベルを指定するだけです:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
パラメータ意味
-c:v libx264-c:v は「映像コーデック」、libx264 は H.264 エンコーダ
-crf 23画質レベル(0-51)。低い = 高画質・大容量

CRF 値の目安

CRF画質用途
18非常に高画質(ほぼロスレス)重要動画のアーカイブ
23良好(デフォルト)一般用途
28普通オンライン共有、SNS
33低画質プレビュー、ドラフト

ヒント: まず CRF 23 で試し、大きすぎれば 28、画質が低ければ 20 へ。

方法 2: ファイルサイズ指定

特定のサイズが必要な場合はビットレート指定:

ffmpeg -i input.mp4 -c:v libx264 -b:v 2M output.mp4

よく使うビットレート:

  • 500K = 500 Kilobits/秒(小容量・低画質)
  • 1M = 1 Megabit/秒(中)
  • 2M = 2 Megabits/秒(良好)
  • 5M = 5 Megabits/秒(高画質)

エンコード速度: Preset

-preset でエンコード速度を制御します:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset fast output.mp4
Preset速度ファイルサイズ
ultrafast非常に速い最大
fast速い
medium普通(デフォルト)普通
slow遅い
veryslow非常に遅い最小

ヒント: すぐに結果が欲しいなら fast、最終納品なら slow

解像度を下げる

解像度を下げると大幅にサイズが減ります:

ffmpeg -i input.mp4 -vf scale=-2:720 -c:v libx264 -crf 23 output.mp4
パラメータ意味
-vf scale=-2:720-vf は「映像フィルター」、scale でリサイズ
-2アスペクト比を保つよう幅を自動計算
720高さ(720p)

よく使う解像度:

  • scale=-2:2160 → 4K
  • scale=-2:1080 → 1080p(Full HD)
  • scale=-2:720 → 720p(HD)
  • scale=-2:480 → 480p(SD)

音声も圧縮

音声も圧縮するとさらに小さくなります:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4
パラメータ意味
-c:a aac-c:a は「音声コーデック」、aac は一般的なフォーマット
-b:a 128k音声ビットレート: 128 Kilobits/秒

音声ビットレートの目安:

  • 320k → 高音質音楽
  • 192k → 良好
  • 128k → 標準(推奨)
  • 96k → 音声向け

完成例

バランス重視(推奨)

良好な画質と妥当なファイルサイズ:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4

最小サイズ

オンライン共有で画質より容量を優先:

ffmpeg -i input.mp4 -vf scale=-2:720 -c:v libx264 -crf 28 -preset slow -c:a aac -b:a 96k output.mp4

最高画質

画質優先のアーカイブ用途:

ffmpeg -i input.mp4 -c:v libx264 -crf 18 -preset slow -c:a aac -b:a 192k output.mp4

FFHub API で実行

コマンドを FFHub に送信してクラウドで処理:

curl -X POST https://api.ffhub.io/v1/tasks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "command": "ffmpeg -i https://your-storage.com/input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4"
  }'

注: 入力 URL は実際の動画 URL に置き換えてください。FFHub が処理し、結果のダウンロードリンクを返します。

クイックリファレンス

目的コマンド
基本圧縮ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
小容量化ffmpeg -i input.mp4 -c:v libx264 -crf 28 output.mp4
高画質化ffmpeg -i input.mp4 -c:v libx264 -crf 18 output.mp4
720p にリサイズffmpeg -i input.mp4 -vf scale=-2:720 -c:v libx264 -crf 23 output.mp4
音声込みffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4
FFmpeg 動画圧縮ガイド - FFHub — FFHub Docs