FFmpeg Cookbook
EN

動画圧縮ツール

動画を H.264 で圧縮して小さくします。画質を決める「品質優先 (CRF)」と、容量を決める「目標サイズ (MB)」の 2 つのモードがあります。

動画はサーバーに送られません
動画をドラッグ&ドロップ、またはタップして選択
MP4/MOV/AVI/MKV/WebM など・最大 500MB
—
—
高品質
CRF 18
ファイル大・画質最優先
標準
CRF 23
品質とサイズのバランス
軽量
CRF 30
小サイズ優先
詳細CRF調整(18〜35、低いほど高品質) CRF 23

処理中… 0%
元のサイズ
—
MB
→
圧縮後サイズ
—
MB
—% 削減
画質比較プレビュー
元動画
圧縮後
圧縮済み動画をダウンロード

対応する FFmpeg コマンド

現在の設定に対応するコマンドラインです。設定を変えるとリアルタイムで更新されます。

ffmpeg -y -i input.mp4 -map 0:v:0 -map "0:a:0?" -pix_fmt yuv420p -map_metadata -1 -map_metadata:s -1 -map_chapters -1 -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -c:v libx264 -crf 23 -preset fast -c:a aac -b:a 128k -movflags +faststart output.mp4

圧縮すると、見た目はどう変わる?

同じ10秒の動画を3つの設定で圧縮した結果です。画像は一部分を2倍に拡大しています。

元動画 23.28 MB → 0.73 MB、変換 1.1 秒
ffmpeg -i input.mp4 -map 0:v:0 -map 0:a:0? -c:v libx264 -crf 36 -preset fast -pix_fmt yuv420p -c:a aac -b:a 96k -movflags +faststart output.mp4
圧縮前の画面の一部(Tシャツの柄と上着)を2倍に拡大 同じ部分を、選んだ設定で圧縮した後 元画像 圧縮後
測った条件

2026-09-24、Windows の FFmpeg 8.1(H.264、preset fast)で 1080p・10秒の実写映像を各設定1回ずつ変換。画像は3秒地点の 480×270 を原寸で切り出し、2倍に拡大したものです。

実測データ(JSON)素材の配布元

Tears of Steel (CC) Blender Foundation | mango.blender.org, CC BY 3.0. 4K版を切り出して1080pに縮小し、変換後のフレームの一部を2倍に拡大

よく使われる用途
Discord・メールの容量制限対策アップロード前の軽量化画質を残したMP4圧縮

使い方

  1. 動画をドロップMP4 / MOV / MKV / WebM などをドラッグ&ドロップ、またはタップで選びます。最大 500MB まで。
  2. モードを選ぶ画質を優先するなら「品質優先 (CRF)」、容量を決めたいなら「目標サイズ (MB)」を選びます。
  3. 解像度・速度を調整元の解像度のままでも使えます。容量を減らしたいときは 720p や 540p に下げます。
  4. 圧縮を実行進捗バーが終わると、プレビューとダウンロードボタンが表示されます。

おすすめ設定

YouTube アップロード前の軽量化
CRF 20〜23・元解像度・preset fast
YouTube はアップロード後にもう一度エンコードするので、画質に余裕を残します。
投稿先の容量の上限に収めたい
上限の数字を目標MBに入力
上限は投稿先の公式ヘルプで確かめます。長い動画は短く切るか解像度を下げ、仕上がりの容量と見た目を確かめます。
スマホで撮った動画を SNS 用に
CRF 23〜26・1080p のまま
CRF を上げるとファイルが小さくなります。見た目はプレビューで確かめます。
画質を最優先したい保存版
CRF 18〜20・preset slow
CRF を下げるほど、劣化は目立たなくなります。

うまくいかないとき

圧縮しても容量がほぼ変わらない

原因:元の動画がすでに十分に圧縮されています。

対処:解像度を一段下げる(1080p → 720p)か、CRF を 28 以上に上げます。

画質が一気に荒くなった

原因:CRF が 30 以上になっているか、動画の長さに対して目標MBが小さすぎます。

対処:CRF を 23〜26 に戻すか、目標MBを増やすか、動画を短く切ります。

ブラウザがフリーズする

原因:スマホで 200MB を超える動画を処理すると、メモリが足りなくなることがあります。

対処:解像度を下げるか、短い動画で試します。パソコンで実行する方法もあります。

よくある質問

画質が下がりすぎるのを避けたい場合は?

CRF を 20 前後にして、解像度は元のままにします。CRF 18 にすると劣化はほとんど見えなくなりますが、ファイルは大きくなります。

音声を消して映像だけ圧縮できますか?

できません。音声のある動画は、音声も入ったまま出力されます。音声を消したいときは「動画音声削除ツール」を使うか、FFmpeg で `-an` を付けます。

iPhone で撮った HEVC(.mov)も使えますか?

はい。読み込めます。出力は H.264 の MP4 になるので、再生できる機器が増えます。HDR の動画を SDR に変換する処理はしません。

長時間の動画でも処理できますか?

入力は 500MB までです。ブラウザのメモリで処理するため、大きいファイルほど失敗しやすくなります(スマホでは 200MB を超えると警告が出ます)。長い動画は先に短く切るか、パソコンの FFmpeg を使います。

同じ CRF でも動画によってサイズが違うのはなぜ?

CRF はビットレートではなく、画質の目標だからです。動きや細かい模様が多い動画ほど、多くのデータが必要になります。

出力フォーマットを mp4 以外にできますか?

できません。出力は MP4(H.264 + AAC)だけです。WebM や MOV にしたいときは「動画フォーマット変換ツール」を使います。

CRF と「目標サイズ MB」のどちらを使うべき?

容量に余裕があり画質を優先するなら CRF、投稿先に容量の上限があるなら目標サイズを使います。上限は投稿先のヘルプで確かめ、ほかの添付ファイルがあればその分を引きます。動画が長いほど、映像に使えるビットレートは下がります。

preset(ultrafast / fast / slow)は何が違う?

エンコードにかける時間の違いです。遅い preset ほど時間がかかり、画質は少し上がります。ただし同じ CRF では、ファイルが小さくなるとは限りません。ultrafast は速い代わりに、ファイルがかなり大きくなります。迷ったら既定の fast を使います。

圧縮後の動画が iPhone で再生できない

出力は H.264(8-bit 4:2:0)と AAC の MP4 で、iPhone で再生できる形式です。それでも再生できないときは、別の動画でも同じになるかを試して、元のファイルの問題かどうかを切り分けます。

元動画より大きくなることはありますか?

あります。元の動画がすでに強く圧縮されていると、CRF を低く(高画質に)したときに元より大きくなることがあります。そのときは「N% 増加」と表示されます。CRF を上げるか、解像度を下げて試します。

くわしい説明(設定の意味・制限・FFmpeg のコマンド)

設定の意味

CRF
Constant Rate Factor(画質の目標値)。小さいほど高画質で、ファイルは大きくなります。よく使うのは 18〜28 です。
目標MB
仕上がりの容量です。動画の長さと音声のビットレートから、映像のビットレートを計算します。目標に対して動画が短いときは、出力の大きさに合わせた上限で止めるので、目標より小さく仕上がります。
解像度
短い辺のピクセル数(横長の動画は高さ、縦長の動画は幅)。1080 → 720 にするだけで容量がおおむね半分になります。元の動画より大きい値を選んでも拡大せず、元の大きさ(幅と高さを偶数にそろえた大きさ)のままにします。
エンコード速度
x264 の preset です。遅いほど時間がかかり、画質が少し上がります。同じ CRF ではファイルが小さくなるとは限りません。ultrafast はファイルがかなり大きくなります。

使えるブラウザと制限

  • 対応ブラウザ:Chrome / Edge / Firefox / Safari の最新版
  • 最大ファイルサイズ:500MB(モバイルは 200MB 推奨)
  • 出力フォーマット:MP4(H.264 + AAC)のみ

同じ処理を FFmpeg のコマンドで

CRF 23 で標準的に圧縮
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset fast -pix_fmt yuv420p -c:a aac -b:a 128k -movflags +faststart output.mp4
ツールの既定(標準・CRF 23・fast)と同じ画質の設定です。-pix_fmt yuv420p で、多くの機器で再生できる 8-bit 4:2:0 にします。
720p に縮小しつつ圧縮
ffmpeg -i input.mp4 -vf "scale='if(gte(iw,ih),-2,trunc(min(min(iw,ih),720)/2)*2)':'if(gte(iw,ih),trunc(min(min(iw,ih),720)/2)*2,-2)'" -c:v libx264 -crf 23 -preset fast -pix_fmt yuv420p -c:a aac -b:a 128k -movflags +faststart output.mp4
短い辺を 720 にします。横長は 1280×720、縦長は 720×1280 になります(scale=-2:720 だと縦長が 406×720 になります)。短い辺が 720 より小さい動画は拡大せず、元の大きさのままです。ツールと同じ指定です。
目標 10MB で圧縮する(動画長 60 秒の例)
ffmpeg -i input.mp4 -c:v libx264 -b:v 1138k -maxrate 1252k -bufsize 2276k -preset fast -pix_fmt yuv420p -c:a aac -b:a 128k -movflags +faststart output.mp4
ツールと同じ計算です。10,000,000 × 0.95 × 8 ÷ 60 ÷ 1000 の切り捨て(1266)から音声 128 を引いて 1138 kbps。10MB に収まる保証ではありません。

CRF と「目標MB」モードはどう使い分けるか

CRF(Constant Rate Factor)は、画質を一定に保つことを優先する方式です。動きの多い場面には多くのデータを、止まっている場面には少ないデータを使います。そのため仕上がりの容量は動画の中身で変わり、前もって決められません。YouTube など、容量の上限を気にしなくてよい投稿先に向いています。

「目標サイズ (MB)」では、1MB を 1,000,000 バイトとして計算します。全体のビットレートを floor(目標MB × 8000 × 0.95 ÷ 秒数) で求め、そこから音声(128kbps、300 秒を超える動画は 64kbps)を引いた残りを映像に使います。5% はファイルの入れ物などのための余裕で、容量を保証するものではありません。仕上がりが目標を超えたら、ビットレートを下げて 1 回だけ作り直します。それでも超えたときは、その旨を表示します。動画を短くするか、解像度を下げてください。

目標に対して動画が短いときは、映像のビットレートを出力の大きさごとの上限で止め、仕上がりは目標より小さくなります。上限は YouTube ヘルプ にあるアップロード時の推奨ビットレート(SDR・48〜60fps)で、360p まで 1500、480p まで 4000、720p まで 7500、1080p まで 12000、1440p まで 24000、2160p まで 68000 kbps です(2026-09-25 確認)。この上限なら、1080p60 でも H.264 のレベルは 4.2 以下です。

x264 の preset と処理時間

libx264 の preset には ultrafast・veryfast・fast・medium・slow・veryslow などの段階があります。遅い preset ほど時間がかかり、画質は少し上がります。同じ CRF では、ファイルが小さくなるとは限りません。ultrafast はファイルがかなり大きくなります。このツールで選べるのは ultrafast・fast・medium・slow で、既定は fast です。

時間をかけて画質を上げたいときは、ページの「対応する FFmpeg コマンド」をコピーし、`-preset` を `slow` などに変えて、パソコンの FFmpeg で実行します。

コーデック選択:H.264 を勧める理由

H.264 で出力するのは、再生できる環境がいちばん多いからです。Windows・macOS・iPhone・Android の標準アプリ、主なブラウザ、PowerPoint などの多くのソフトが H.264 を再生できます。HEVC(H.265)や AV1 は同じ画質ならファイルを小さくできますが、HEVC は Windows で有料の拡張機能(Microsoft Store)が必要になることがあり、AV1 は古い機器やソフトで再生できないことがあります。

自分だけで保存するなら、HEVC や AV1 で小さくする方法もあります。人に送るときや、どこで再生されるか分からないときは、H.264 + AAC の MP4 がいちばん無難です。

次にやること