FFmpeg圧縮:CRF vs CBR vs VBR怎么选?

結論先行:FFmpeg動画圧縮有三種類ビットレート制御模式——CRF(恒定画質)適したアーカイブ和ローカルストレージ,CBR(恒定ビットレート)適した直播推流,VBR(可变ビットレート)適した流媒体点播。同一つ1080p動画,CRF 23输出42MB画質最优,CBR 4Mbps输出38MBビットレート最稳定,VBR输出36MBサイズ最小但画質波动。选错模式不是サイズ浪费である是画質下降,以下では原理、命令、实测三つ层面詳解怎么选。

もし動画圧縮的整体方法まだ慣れていない場合は,まず動画圧縮指南

一、三種類ビットレート模式原理比較

動画エンコード的ビットレート制御模式决定了エンコーダー如何分配比特リソース。不同模式的核心差异在于"优先保证什么"——CRF优先保证画質、CBR优先保证ビットレート稳定、VBR在2者间折中。理解この三種類模式的原理,是做好動画圧縮的基础。

比較维度CRF (Constant Rate Factor)CBR (Constant Bitrate)VBR (Variable Bitrate)
中文全称恒定速率因子恒定ビットレート可变ビットレート
核心目標画質恒定ビットレート恒定サイズ可控
ビットレート分配按画面複雑度动态分配每フレーム固定ビットレート在上下限间波动
画質一致性★★★★★★★☆☆☆★★★☆☆
サイズ可控性★★☆☆☆★★★★★★★★★☆
エンコード速度中等最快较慢
適用シナリオアーカイブ/ローカルストレージ直播推流流媒体点播

簡単来说:CRFさせるエンコーダー"根据画面难易程度分配ビットレート"——动作大片多にビットレート、静态に対して话少にビットレート,最终每フレーム画質一致;CBR则"不管画面複雑与否都に一样多的ビットレート"——簡単シナリオ浪费ビットレート、複雑シナリオビットレート不够导致马赛克;VBR介于2者之间,设定ビットレート範囲させるエンコーダー自行调节。

二、FFmpeg命令例与パラメータ

三種類模式在FFmpeg中的命令写法不同,主なパラメータ也不同。下面に出每種類模式的標準命令模板和パラメータ説明。

模式主なパラメータパラメータ説明典型值範囲
CRF-crf画質因子,值越小画質越高0-51(18-28常用)
CRF约束-maxrate / -bufsize制限峰值ビットレートmaxrate 2-8Mbps
CBR-b:v / -minrate / -maxrate三者设である相同值実現CBR2-8Mbps
VBR-b:v目標平均ビットレート2-6Mbps
VBR範囲-minrate / -maxrateビットレート波动範囲min 1-2Mbps / max 4-8Mbps
通用-presetエンコード速度与圧縮率平衡ultrafast-fast-medium-slow

1. CRF模式命令

CRF是最推奨的アーカイブ圧縮模式。エンコーダー根据画面複雑度自動分配ビットレート,保证每フレーム画質一致。CRF 23是H.264的デフォルト值,適した大多数シナリオ。

纯CRF模式(不限ビットレート上限):
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4

约束CRF模式(制限峰值ビットレート,適した需要ビットレート上限的シナリオ):
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -maxrate 4M -bufsize 8M -preset medium output.mp4

2. CBR模式命令

CBRを通じてをminrate、maxrate和b:v设である相同值来実現恒定ビットレート。直播推流必须用CBR保证ビットレート稳定。

標準CBR模式:
ffmpeg -i input.mp4 -c:v libx264 -b:v 4M -minrate 4M -maxrate 4M -bufsize 8M -preset fast output.mp4

直播推流模式(配合RTMP):
ffmpeg -i input.mp4 -c:v libx264 -b:v 4000k -minrate 4000k -maxrate 4000k -bufsize 8000k -g 60 -preset fast -f flv rtmp://server/live/stream

3. VBR模式命令

VBR设定目標平均ビットレート,エンコーダー在範囲内自由调节。適した流媒体点播等需要サイズ预估的シナリオ。

標準VBR模式:
ffmpeg -i input.mp4 -c:v libx264 -b:v 4M -preset medium -c:a aac -b:a 128k output.mp4

2遍エンコードVBR(Two-pass,更精确制御サイズ):
ffmpeg -y -i input.mp4 -c:v libx264 -b:v 4M -pass 1 -an -f mp4 /dev/null
ffmpeg -i input.mp4 -c:v libx264 -b:v 4M -pass 2 -c:a aac -b:a 128k output.mp4

三、实测データ:同動画三種類模式比較

我たち用同一段1080p/30fpsテスト動画(元のサイズ350MB,H.264エンコード,时长5分钟),分别用三種類模式圧縮,比較サイズ、画質和エンコード耗时。

模式パラメータ输出サイズ圧縮率画質评分エンコード耗时
CRF 18-crf 18 -preset medium85.2MB75.7%★★★★★142秒
CRF 23-crf 23 -preset medium42.1MB88.0%★★★★☆128秒
CRF 28-crf 28 -preset medium22.5MB93.6%★★★☆☆115秒
CBR 4M-b:v 4M -minrate 4M -maxrate 4M38.3MB89.1%★★★☆☆98秒
CBR 2M-b:v 2M -minrate 2M -maxrate 2M19.4MB94.5%★★☆☆☆92秒
VBR 4M-b:v 4M -preset medium36.8MB89.5%★★★★☆135秒
VBR 4M 2遍-b:v 4M -pass 236.2MB89.7%★★★★☆268秒

实测データ揭示了几つ重要结论:CRF 23在画質和サイズ间达到最佳平衡(42MB,画質四星半);CBR 4Mサイズ接近CRF 23但画質略差(複雑シナリオ出现马赛克);VBR2遍エンコードサイズ最精确但耗时翻倍。に対して于アーカイブシナリオ,CRF 23是最优選択。

再看不同presetに対してCRF 23的影响:

preset输出サイズエンコード耗时サイズ差异推奨シナリオ
ultrafast58.2MB32秒+38%实时预览
fast45.6MB68秒+8%高速圧縮
medium42.1MB128秒基准通用デフォルト
slow39.8MB285秒-5%高品質アーカイブ
slower38.5MB612秒-9%极致圧縮

不同解像度下的推奨ビットレート参照,帮助選択合适的CBR/VBR目標ビットレート:

解像度フレーム率CBR推奨ビットレートVBR目標ビットレートCRF推奨值適用シナリオ
480p30fps1.0Mbps1.0MbpsCRF 24移动端低清
720p30fps2.5Mbps2.5MbpsCRF 23网页標準清晰度
1080p30fps4.0Mbps4.0MbpsCRF 23高清通用
1080p60fps6.0Mbps6.0MbpsCRF 22高清高フレーム率
1440p30fps8.0Mbps8.0MbpsCRF 222K画質
2160p(4K)30fps16.0Mbps16.0MbpsCRF 20超高清アーカイブ

四、シナリオ推奨:不同用途选不同模式

不同使用シナリオに対して画質、サイズ、ビットレート稳定性的要求不同,選択ビットレート模式的核心是匹配シナリオ要件。

使用シナリオ推奨模式推奨パラメータ選択理由期待圧縮率
ローカルアーカイブストレージCRF-crf 23 -preset medium画質优先,サイズ最优85%–90%
高品質アーカイブCRF-crf 18 -preset slow接近无损,长期保存70%–80%
直播推流CBR-b:v 4M -minrate 4M -maxrate 4Mビットレート稳定,防卡顿因源而定
流媒体点播VBR2遍-b:v 4M -pass 2サイズ精确,画質均衡80%–90%
移动端再生约束CRF-crf 26 -maxrate 2M -bufsize 4M制限ビットレート适配移动网络90%–95%
网页動画约束CRF-crf 24 -maxrate 3M -bufsize 6M平衡画質和読み込み速度88%–92%
監視录像CBR-b:v 1M -minrate 1M -maxrate 1M恒定ビットレート便于ストレージ計算因源而定
動画邮件CRF-crf 28 -preset fastサイズ优先,画質可接受93%–96%

SmartSlim 在動画圧縮时基于自研 Rust 圧縮引擎,内置シナリオ化パラメータ库——4级圧縮 x 15シナリオ x 5档性能 = 300グループ合,自動根据動画用途選択最佳ビットレート模式和パラメータ,无需手動调FFmpeg命令。企業ユーザーまた可を通じてSDK集成到业务システム中,実現動画圧縮自動化。

更多動画エンコード比較,を参照してくださいH.264 vs H.265 vs AV1エンコード比較動画圧縮画質评估方法

五、よくある質問FAQ

Q1:FFmpeg動画圧縮用CRFまた是VBR好?

アーカイブ和ローカルストレージ用CRF更好。CRF以恒定画質である目標,複雑シナリオ多分配ビットレート、簡単シナリオ少分配,画質一致且サイズ最优。推奨CRF值18-28,18接近视觉无损,23是デフォルト平衡点,28画質可接受但サイズ更小。VBR適した需要制御ビットレート上限的シナリオ如流媒体,但画質不如CRF稳定。

Q2:CRF值多少画質最好?

CRF值越小画質越高,サイズ越大。H.264エンコード下:CRF 0である无损,CRF 18接近视觉无损(サイズ约である原片的50%),CRF 23是FFmpegデフォルト值(サイズ约原片的25%),CRF 28画質可接受(サイズ约原片的12%)。推奨範囲18-28,大多数シナリオ用CRF 23即可,追求高品質用CRF 18-20。

Q3:直播推流应该用CBRまた是VBR?

直播推流推奨用CBR。直播に対してビットレート稳定性要求极高——CBR保持恒定ビットレート,避免网络波动导致卡顿。推流平台通常要求固定ビットレート(如Twitch 6000kbps,B站 4000kbps),CBR能精确匹配。VBR在複雑シナリオ可能ビットレート飙升超出带宽上限导致丢フレーム,CBR则始终稳定。推奨推流用CBR + maxrate = bufsize = 目標ビットレート。

Q4:FFmpeg2種類VBR模式有什么区别?

FFmpeg有2档VBR:-crf配合maxrate/bufsize是约束VBR(constrained VBR),画質接近纯CRF但制限ビットレート峰值;-b:v配合-minrate/-maxrate是传统VBR,ビットレート在範囲内波动。约束VBR更適した实际使用,既保证画質又制御峰值ビットレート。传统VBR適した需要精确制御ビットレート範囲的シナリオ,如适配特定带宽环境。

まとめ

FFmpeg三種類ビットレート模式各有最佳シナリオ:CRF优先画質適したアーカイブ(推奨CRF 23),CBR优先稳定適した直播推流(推奨4Mbps恒定),VBR优先サイズ可控適した流媒体点播(推奨2遍エンコード)。选に対して模式是動画圧縮的第一步——アーカイブ选CRF、直播选CBR、点播选VBR,记住このつ原则である不会出错。

如果不想手動写FFmpeg命令,SmartSlim 提供开箱即用的動画圧縮ソリューション,基于自研 Rust 圧縮引擎内置300種類シナリオ化パラメータグループ合,サポート mp4/mkv/avi/mov/wmv/flv/webm/m4v 等 8 種類動画形式,ローカル圧縮データ不出域。

ファイルを圧縮してみませんか?SmartSlimを試す

独自開発のRust圧縮エンジンに基づき、PDF/画像/動画/Office/OFDなど10分野40以上の形式に対応。ローカル圧縮でデータは外部に送信されません。