← All posts

FFmpeg で動画を圧縮する方法

FFmpeg で動画ファイルを圧縮する方法を解説します。CRF、preset、コーデック選択、解像度変更で品質を保ちつつサイズを下げます。

FFHub·2026-03-03
FFmpeg で動画を圧縮する方法

FFmpeg で動画を圧縮するのは、ソフトを買わずにファイルを小さくする最短ルートです。CRF、preset、コーデック選択、解像度ダウンスケーリング——どれも画質とサイズのトレードオフを細かく制御できます。本記事は実際に使うテクニックを、コピペで動くコマンド付きで紹介します。圧縮の理屈をもっと深掘りしたい場合は動画圧縮のベストプラクティスも参照してください。

Try it in your browser

動画をドロップして目標サイズか品質を選ぶだけ。FFmpeg をインストールせず同じフラグが裏で動きます。

CRF でサクッと圧縮する

一番シンプルなのが CRF(Constant Rate Factor、固定品質) を使う方法です。値が小さいほど高品質、大きいほどファイルサイズが小さくなります。

ffmpeg -i input.mp4 -crf 23 output.mp4
CRF 値品質用途
18ほぼロスレスアーカイブ用途
23良好(デフォルト)一般用途
28中程度Web 配信向け
32+サイズ最優先

コンテナフォーマット(container format)も変えたい場合(例: MKV から MP4)はフォーマット変換ガイドを参照してください。

コーデックを選ぶ

H.264 — 互換性重視

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium output.mp4

H.265 (HEVC) — ファイルサイズが約 50% に

H.265 は同じ品質でファイルサイズが大幅に小さくなりますが、エンコードに時間がかかります。

ffmpeg -i input.mp4 -c:v libx265 -crf 28 output.mp4

preset で速度とサイズのバランスを取る

preset はエンコード速度と圧縮効率のトレードオフを調整するパラメータです。

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset slow output.mp4
preset速度ファイルサイズ
ultrafast最速最大
fast速いやや大きい
mediumバランス型バランス型
slow遅い小さい
veryslow最遅最小

解像度を下げる

解像度を落とすのはファイルサイズ削減に最も効きます。

# 720p に縮小
ffmpeg -i input.mp4 -vf "scale=-2:720" -crf 23 output.mp4

# 480p に縮小
ffmpeg -i input.mp4 -vf "scale=-2:480" -crf 23 output.mp4

-2 はアスペクト比を維持し、幅を 2 で割り切れる値に揃えます。

ビットレート(bitrate)を制限する

ストリーミングや厳密なファイルサイズ制約がある場合は、最大ビットレートを指定します。

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

音声も忘れずに圧縮

音声トラックの圧縮も効果があります。音声ビットレートを下げましょう。

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

とりあえずこれでいい万能コマンド

たいていの場面でうまくいくバランス型のコマンドはこれです。

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

ファイルサイズを大幅に下げつつ良好な品質を保てる MP4 を生成します。ほぼ全てのデバイス・プラットフォームで再生できます。

Try it in your browser

コマンドラインを打たずに、FFHub に動画をドロップして目標サイズか品質を選ぶだけ。裏では同じ FFmpeg フラグが動きます。

よくある質問(FAQ)

動画を圧縮するときの CRF はいくつにすべき?

H.264 のデフォルトは CRF 23 で、一般的な Web 動画なら安全な選択。高品質(アーカイブやプレミアム配信)なら CRF 18–20、強めに圧縮(SNS、低帯域)なら CRF 26–28 が目安です。H.265 なら H.264 + 5 のイメージ(H.265 の CRF 28 ≈ H.264 の CRF 23)。

FFmpeg で知覚できる画質劣化なしにどこまで圧縮できる?

H.264 を CRF 18–23 と -preset medium で使えば、カメラや録画ファイルなら 50–80% の容量削減が見た目の劣化なしに可能です。H.265 に切り替えて CRF 28 で更に 30–40% 削減。Web 上で既に圧縮された動画は余地が少なくなります。

H.264 と H.265、どちらが圧縮に向く?

同じ画質なら H.265 のほうがファイルサイズが 30–40% 小さいですが、エンコードに 3–5 倍時間がかかり、再生サポートも狭い(Safari やモダンモバイルは対応、一部ブラウザや古い機器は非対応)。互換性最優先なら H.264、帯域・ストレージ優先なら H.265。

指定サイズ(例:25MB 以下)に収めるには?

2 パス・ビットレート・エンコードを使います。目標ビデオビットレート = (目標サイズのビット数 - 音声サイズ) / 秒数。1 パス目で複雑度を解析し、2 パス目で複雑シーンに多くのビットを配分します。例えば 10 分動画を 100MB + 128k 音声に収めるなら、ビデオビットレートは約 1.2 Mbps。

圧縮したらファイルが元より大きくなったのは?

主な原因は 3 つ:(1) 元ファイルが既に圧縮済みで、低 CRF(18–20)で再エンコードすると画質"向上"扱いになる、(2) H.265 のような重いコーデックを fast preset で動かして効率が出ていない、(3) 解像度をアップスケールしている。まず ffprobe input.mp4 でソース情報を確認しましょう。

FFmpeg で最も速い圧縮方法は?

-c:v libx264 -preset ultrafast -crf 28-preset medium よりおよそ 5 倍速いですが、同画質ならファイルが 2–3 倍大きくなります。プロキシ動画やドラフト用には許容範囲。本番配信は medium か slow に戻しましょう。

関連記事

FFmpeg で動画を圧縮する方法 | FFHub