网站放视频这件事,不压缩就等于放弃一半的流量。Google PageSpeed Insights把视频列为LCP(最大内容绘制)的头号杀手之一,一个50MB的未压缩MP4放在首屏,LCP直接从2秒飙到8秒,而每多1秒加载延迟,移动端的跳出率就增加20%。压缩这件事不存在"要不要做",只有"怎么压才不糊、怎么压才批量快、怎么压才不给网站服务器添负担"
但压缩工具从在线网页到命令行到桌面软件少说有二十几种,每一类都有自己的天花板和甜区。在线工具方便但单个文件有上限(通常500MB-2GB),桌面软件不限大小但需要学参数,命令行最快最灵活但门槛最高。下面按三个层次拆开讲。
压缩前先搞清一个前提:视频压缩的本质是用编码算法把"人眼不容易察觉的信息"扔掉,换体积。同样一个1080P视频,H.264编码输出16Mbps约120MB/分钟,H.265(HEVC)同样画质只要10Mbps约75MB/分钟,体积直接少37%。但H.265的代价是编码时间翻2.5倍。所以选编码器之前先想清楚:你要的是最小体积(用H.265)、最快速度(用H.264硬件加速)还是最广兼容(用H.264)。
一、网站视频压缩到底压什么
一个视频文件的大小 = 码率 × 时长。时长你改不了,所以只能改码率。而码率又受三个参数影响:

| 参数 | 对体积的影响 | 对画质的影响 | 网站场景的建议 |
|---|---|---|---|
| 分辨率 | 4K→1080P体积约减75% | 肉眼可见的清晰度下降 | 网站背景视频用720P足够,产品展示用1080P,4K只留给需要全屏高清的场景 |
| 编码格式 | H.264→H.265减37%-50% | 同等码率下H.265画质明显更好 | 网站视频优先选H.264保证兼容性,需要极致压缩再上H.265 |
| 帧率 | 60fps→30fps体积约减50% | 非运动画面几乎看不出来 | 产品展示/教程用24-30fps,运动/游戏类才需要60fps |
网站场景下还有一个特别重要的维度:格式。MP4(H.264编码)的浏览器兼容性接近99%,所有主流浏览器都能直接播放。WebM(VP8/VP9编码)体积更小但Safari不支持。所以网站视频的标配是:MP4 + H.264 + AAC音频 + 1080P及以下,这是能保证所有设备都能播放的最优组合。
二、三类工具怎么选
在线压缩:零安装,适合偶尔用
代表:VideoCompress.ai / RedPanda Compress / VideoKit / tools.video
优点:打开网页就能用,浏览器本地处理不经过服务器,隐私安全。部分工具支持批量(VideoKit一次5个)。压缩后文件直接下载。
短板:单个文件上限通常500MB-2GB,大视频需要分次处理。浏览器性能瓶颈,4K视频压缩速度明显慢于桌面软件。参数调节空间有限,大部分只能选"高中低"三档压缩率。
桌面GUI:批量压缩的主力军
代表:HandBrake / ShanaEncoder / CompressO / 小丸工具箱
优点:文件大小无上限,批量队列支持几十上百个文件排队处理。参数精细可控——码率、CRF值、编码器预设、分辨率、帧率、音频格式每个都能调。
短板:需要安装软件。HandBrake学习曲线较陡(预设虽多但调优要理解RF值和编码器速度档位)。部分工具不支持GPU硬件加速。
命令行:自动化集成方案
代表:FFmpeg
优点:一条命令搞定,可以写到Shell脚本里实现上传自动压缩、定时批量处理、配合Git Hooks在部署前自动优化所有视频。速度最快,GPU硬件加速参数直接指定。
短板:纯命令行,没有图形界面。参数记不住需要查文档。适合开发者或有一定技术基础的内容运营。
三、四款桌面工具逐个看
HandBrake:参数最全、预设最多、学习曲线最陡
HandBrake 是开源界视频压缩的事实标准,免费、跨平台(Windows/macOS/Linux)、功能极其完整。它的核心竞争力是预设系统——内置了上百个针对不同设备的输出预设(Web、iPhone、Android、YouTube、Discord等),选一个预设再微调几个参数就能用。批处理队列支持拖入整个文件夹,按顺序排队处理。
核心参数是 RF值(Constant Quality),范围0-51,数字越小画质越高体积越大。HandBrake官方推荐的甜区:
| 用途 | 推荐RF值 | 编码器 | 预估压缩率 |
|---|---|---|---|
| 网站背景视频(720P) | RF 24-28 | H.264 (x264) | 70%-85% |
| 产品展示(1080P) | RF 20-23 | H.264 (x264) 或 H.265 | 50%-70% |
| 高清存档(4K) | RF 18-20 | H.265 (x265) | 40%-60% |
一个细节:HandBrake的编码器预设速度有8档(ultrafast到placebo),速度越慢压缩率越高。日常用 medium 档,追求更小体积用 slow,再往下每一档增加40%-60%的编码时间但压缩率提升只有2%-5%,性价比很低。
ShanaEncoder:HandBrake的韩国兄弟,GPU加速独一档
ShanaEncoder 也是基于FFmpeg,但它的杀手锏是GPU硬件加速。用NVIDIA NVENC或Intel QSV编码,压缩速度是纯CPU的3-5倍,而画质损失几乎察觉不到(现代硬件编码器已经足够成熟)。对于需要批量处理几十上百个视频的网站运维场景,GPU加速直接把等待时间从"去喝杯咖啡"变成了"去倒杯水"。
B站官方推荐的上传压制工具就是ShanaEncoder,因为它在速度和画质的平衡上做得最好。界面是中文的,比HandBrake的英文界面友好很多。批量队列和HandBrake一样支持文件夹拖入,但额外支持并行编码——如果你有独立显卡+CPU核显,可以同时用两套编码器处理两个视频。
参数推荐:编码器选 HEVC(NVENC),码率控制选 CQ(恒定质量,和HandBrake的RF同概念),CQ值设 22-26(日常用25足够),预设速度选 P5或P6(NVENC的medium档)。这个组合下,一段3分钟1080P视频能在15秒内完成压缩,体积从150MB减到约25MB,肉眼几乎看不出画质差异。
CompressO:基于FFmpeg的极简压缩器
CompressO 适合"我什么都不想调,就想把视频变小"的人。界面只有三个选项:输入文件、压缩级别(低/中/高)、输出目录。拖入视频点开始就行。它内部用的是FFmpeg的CRF模式+H.265编码,压缩效果中规中矩,画质保留比HandBrake手动调参差一点,但胜在完全不需要学习。

支持Windows、macOS、Linux,完全离线运行。唯一要注意的是默认输出格式是MKV,如果要用于网站需要手动改成MP4。
小丸工具箱:B站UP主的老朋友
小丸工具箱是国内开发者做的视频压制工具,在B站UP主圈子里用了很多年。它的特点是对中文用户极度友好——全中文界面、参数有详细的中文解释、内置了"2Pass"压制模式(二次编码,第一遍分析视频复杂度第二遍精准分配码率,画质优于单次编码但时间是2倍)。
网站场景用它的 CRF压制模式 就行,不需要上2Pass(耗时翻倍但压缩率提升只有5%-8%)。支持批量拖入、音频单独提取、封装格式切换。免费,Windows平台。
四、FFmpeg一条命令搞定批量压缩
如果你的网站有自动化部署流程,FFmpeg是最佳选择。把它写到Git Hooks或者CI/CD脚本里,每次推送代码时自动压缩assets目录下的所有视频。
# 单个视频:H.264 + CRF 23 + 1080P,日常最常用
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4
# 批量压缩当前目录所有MP4
for f in *.mp4; do ffmpeg -i "$f" -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k "compressed_$f"; done
# H.265硬件加速版(NVIDIA显卡),速度翻3-5倍
ffmpeg -i input.mp4 -c:v hevc_nvenc -cq 25 -preset p5 -c:a aac -b:a 128k output.mp4
参数解释:-crf 23 是质量参数(0-51,23是视觉无损的甜点),-preset medium 是编码速度档位,-b:a 128k 是音频码率(网站视频128k AAC完全够用)。
五、在线工具:不装软件的最短路径
如果你一年就压两三个视频,装HandBrake或者配FFmpeg环境确实不划算。下面四个在线工具覆盖了从"极简"到"批量"的需求:
| 工具 | 单文件上限 | 批量 | 特色 | 最适合 |
|---|---|---|---|---|
| RedPanda Compress | 2GB | 否 | 指定目标大小,浏览器本地处理 | "微信只能发25MB,帮我把这个压到刚好25MB" |
| VideoKit | 1GB | 是(5个) | 在线批量压缩,统一参数 | 一次性处理3-5个小视频 |
| tools.video | 50GB | 否 | 文件上限极高,支持多声道 | 超大单个视频(4K/8K素材) |
| Elysia Tools | 500MB | 是(5个) | CRF值可调、分辨率缩放滑块 | 想调参数但不想装软件的折中选择 |
在线工具共有的一个点:选择"浏览器本地处理"的(RedPanda Compress、Elysia Tools、VideoKit)隐私更安全,视频不会上传到服务器;需要上传到云端处理的(部分老式在线工具)不建议用于敏感视频。
六、网站场景的四个实战组合
| 网站场景 | 推荐工具 | 关键参数 | 预期效果 |
|---|---|---|---|
| 首页背景视频 | HandBrake / ShanaEncoder | 720P + H.264 + RF 26 + 24fps + 10秒以内循环 | 50MB→5-8MB,加载时间从3秒降到0.5秒 |
| 产品介绍视频 | ShanaEncoder(GPU加速) | 1080P + H.265 + CQ 23 + 30fps | 200MB→40-60MB,画质肉眼无损 |
| 博客内嵌教程视频 | HandBrake + Web预设 | 1080P + H.264 + RF 24 + 24fps + AAC 128k | 300MB→60-80MB,全浏览器兼容 |
| 批量旧视频重新压缩 | FFmpeg + Shell脚本 | H.264 + CRF 23 + preset medium | 100个视频一条命令自动跑完 |
七、三个容易被忽略但影响巨大的细节
1. 音频压缩经常被忘掉
一个10分钟视频的音频轨可能占20-40MB。如果视频内容是纯讲解或背景音乐,AAC 128kbps完全够用,不要保留原始音频的320kbps。用FFmpeg的话加 -b:a 128k,HandBrake在音频标签里把比特率从自动改成128。
2. WebM格式可以省更多但兼容性有坑
WebM(VP9编码)在同画质下比H.264小30%-40%,但iOS Safari不支持。如果你的网站流量里iOS用户占比超过30%,就不能只用WebM。最优解是用HTML5的 <video> 标签同时提供MP4和WebM两个源,浏览器会自动选它能播的:<video><source src="video.webm" type="video/webm"><source src="video.mp4" type="video/mp4"></video>
3. CDN比压缩更能决定加载速度
视频压缩完只有5MB,但如果放在一台1Mbps带宽的廉价服务器上,加载时间还是要5秒以上。压缩解决的是"文件本身太大"的问题,CDN解决的是"离用户太远"的问题。两个一起做才有意义。把压缩后的视频放到阿里云OSS+CDN或Cloudflare R2上,静态资源加载时间能再砍掉50%-70%。
最后说一句:网站视频压缩就记住一个原则——1080P+H.264+CRF 23+AAC 128k,这是能兼容所有浏览器、画质肉眼看不出损失、体积能减50%-80%的通用参数。偶尔压一两个用在线工具,日常压几十个用ShanaEncoder或HandBrake,要集成到自动化流程里用FFmpeg。剩下就是在格式(MP4保证兼容)和码率(够用不浪费)之间找到你网站的平衡点。
