视频压缩完全指南:把 1GB 视频压到 100MB,画质几乎无损

前端工程

录了一段视频,却发不出去

手机里一段产品演示、孩子一场演出、会上一个发言,录完一看:2GB。微信传输助手提示「文件过大」,邮件附件被拒,网盘上传进度条像睡着了。

视频就是这么吃空间。一张照片几 MB,一段 30 秒视频轻松上百 MB,根源在于它本质是「几十万张图连着声音」。我们在做工具库的视频工具这几年,最常听到的诉求就是「帮我弄小点,但别糊」。这篇文章把视频体积的来源和压小的办法一次讲透——读完你不仅能压,还能明白「为什么这么压」。


先分清:容器和编码不是一回事

新手最容易混淆 .mp4.mov.mkv 和 H.264、H.265。记住:

  • 容器(Container).mp4 / .mov / .mkv 是「盒子」,决定文件怎么打包视频、音频、字幕。
  • 编码(Codec):盒子里那团数据用啥算法压的,比如 H.264、H.265/HEVC、VP9、AV1。

同一个 .mp4 盒子,里面可以是 H.264 也可以是 H.265。体积主要看编码,不看容器。iPhone 录的 .mov 常常用的是 H.265,所以同样时长比安卓 .mp4(H.264) 小很多——这就是很多人觉得「苹果视频占空间小」的原因。


视频体积到底从哪来

四个因素叠加:

  • 分辨率:4K(3840×2160)的像素量是 1080p 的 4 倍、720p 的近 9 倍。像素越多,数据越肥。
  • 码率(Bitrate):每秒钟包含的数据量,这是影响体积最大的旋钮。
  • 编码格式(Codec):H.264 是兼容之王;H.265/HEVC 体积能小约一半,但部分老设备不认;AV1 更省,但编码慢。
  • 帧率与音频码率:60fps 比 30fps 数据多一倍;音频 320kbps 比 128kbps 占得多。

同一段内容,参数不同体积能差出十倍:

配置 大约体积(60 秒片段)
4K + H.264 + 高码率 ~380 MB
1080p + H.264 + 中码率 ~90 MB
720p + H.265 + 中码率 ~35 MB
720p + H.264 + 低码率 ~22 MB

上面是典型场景的估算,实际取决于画面复杂度——静态画面(开会PPT)压得狠,高速运动画面(球赛)压不动多少。


真正能压小的四个杠杆

1. 降分辨率:见效最快

1080p 降到 720p,像素量砍掉一半多,体积往往跟着降一半以上。在手机小屏上看,几乎看不出差别。除非你要投到大电视或做后期剪辑,否则 720p 足够发朋友圈、发群里。

2. 调码率 / CRF:最精细的旋钮

转码工具里常出现 CRF(恒定速率因子,Constant Rate Factor)。简单记:CRF 越大,压得越小,画质略降。常用区间是 18–28:

  • 18–20:几乎无差,体积偏大(适合存档母版)
  • 23–24:默认甜点区(压完肉眼基本无差)
  • 26–28:明显小,画质轻微下降,手机看没问题

CRF 是「按画质定码率」,属于 VBR(可变码率)的一种:复杂画面多给点码率,简单画面少给点,同样画质下最省体积。相对的 CBR(恒定码率)则是「固定每秒多少数据」,简单画面也浪费,不推荐用于压缩。

3. 换编码:H.265 比 H.264 小约 40%–50%

同样画质,H.265 文件更小。代价是兼容——老电视、部分车机、某些剪辑软件打不开。通用分享优先 H.264;只在自己生态内传,可以上 H.265 省空间。

编码还有「Profile/档位」概念,以 H.264 为例:

Profile 能力 适用
Baseline 最简,兼容性最高 极老设备、实时通信
Main 中等 标清流媒体
High 最强压缩 高清、蓝光(首选

4. 剪掉废片 + 降音频码率

片头 10 秒黑屏、片尾 20 秒闲聊,剪掉就是实打实的体积。音频降到 128kbps 对人声完全够用,别用 320kbps 撑着——视频里音频占比小,但聊胜于无。


目标体积参考

原始情况 建议操作 大致结果
1080p 1GB 演示视频 降到 720p + CRF 24 ~350 MB
4K 手机录屏 2GB 降到 1080p + H.265 ~400 MB
微信要发的 500MB 片段 降到 720p + CRF 26 ~120 MB
邮件附件限制 25MB 降到 480p + 剪多余 ~20 MB

各平台实际上传限制(常变,作参考):微信单文件约 1GB(聊天)、200MB(朋友圈);邮件附件普遍 20–25MB;多数网盘单文件 4GB 上限。先想清楚「发去哪」再定参数。


用工具库在浏览器本地压

视频压缩让你拖动滑块调分辨率和 CRF,浏览器用 ffmpeg.wasm 在本地转码——文件不上传,关掉页面数据就没了。

顺手的配套:

一个真实工作流:微信发产品演示

iPhone 录的 MOV(H.265,1.2GB)
  → /video/to-mp4 转成 H.264 的 MP4(兼容安卓/Win)
  → /video/trim 剪掉开头 8 秒黑屏和结尾闲聊
  → /video/compress 降到 720p + CRF 26
  → 输出 ~110MB,微信秒发

什么时候本地压不够用

浏览器受内存和性能限制,遇到这些情况建议上桌面 ffmpeg:

  • 单个文件几 GB 以上
  • 要批量处理几十个
  • 对速度要求极高(WASM 比原生慢不少)

本地装好 ffmpeg 后,下面这些命令覆盖绝大多数场景。

基础:降分辨率 + H.265 + 调音频

# 降到 720p,用 H.265,CRF 28,音频 128kbps
ffmpeg -i input.mp4 \
  -vf scale=1280:-2 \
  -c:v libx265 -crf 28 \
  -c:a aac -b:a 128k \
  output.mp4

参数拆解:

  • scale=1280:-2:宽设为 1280,高按比例自动(-2 保证偶数,编码器要求)
  • libx265 -crf 28:H.265 编码,CRF 28
  • -c:a aac -b:a 128k:音频 AAC,128kbps

要最大兼容就换 -c:v libx264;要更狠的压缩把 CRF 调到 30 左右(画质会更明显地降)。

两遍编码(追求最小体积)

# 第一遍:分析,不输出画面
ffmpeg -i input.mp4 -c:v libx265 -b:v 800k -pass 1 -f mp4 /dev/null
# 第二遍:按分析结果精压
ffmpeg -i input.mp4 -c:v libx265 -b:v 800k -pass 2 -c:a aac -b:a 128k output.mp4

两遍适合「我有明确目标体积」的场景,比单遍 CRF 更可控,但慢一倍。

只裁一段(不重新编码,超快)

# 截取 00:00:10 开始、时长 30 秒,不重编码(-c copy)
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:30 -c copy clip.mp4

-c copy 几乎瞬间完成,但切点不精准(会落在关键帧)。要精准就去掉 -c copy(会重编码,稍慢)。

硬件加速(NVIDIA / Intel)

# NVIDIA 显卡:NVENC 硬编码,快很多
ffmpeg -i input.mp4 -c:v hevc_nvenc -rc vbr -cq 28 -c:a aac -b:a 128k output.mp4

硬件编码快但压缩效率略低于软件(CPU)编码,日常分享完全够。


关于「画质」:怎么判断压得值不值

别只信文件大小。一个简单自检法:

  1. 压完在全屏/大屏上看一遍关键片段(运动、文字、人脸)。
  2. 放大看边缘有没有「块效应」(马赛克块)、文字有没有毛刺。
  3. 对比原片,找出画质明显下降的时间点。

如果肉眼看不出差别,就说明压得值。一旦 CRF 超过 30 或分辨率降太多,文字和高速画面就会露馅。


常见错误

错误 后果 正确做法
反复压同一个文件 质量一层层掉 从原片压一次到位
CRF 拉到 35+ 大片马赛克、色块 控制在 18–28
用 H.265 发给老设备 对方打不开 通用分享用 H.264
只压不剪 片头废片照样占空间 先剪 /zh-CN/video/trim
音频码率不动 体积省不下来 降到 128kbps
拿 MOV 直接发安卓/Win 对方可能打不开 先转 MP4 /zh-CN/video/to-mp4

常见问题

H.264 和 H.265 怎么选? 给别人、跨设备、怕打不开 → H.264。只在自己苹果/现代设备间传、想省空间 → H.265。

压完能还原成原画质吗? 不能。压缩是有损的,压完的信息回不来。所以永远留一份原片,别把原片删了。

手机浏览器能压吗? 能。工具库的视频工具是网页,手机打开同样能用本地转码,只是大文件会比电脑慢。

为什么我压完体积没小多少? 多半是分辨率没降、或 CRF 调太低。先动分辨率这把最大的旋钮——它比码率影响更直观。

GIF 和视频该用哪个? 短动画发群里,GIF 方便但巨大;短视频(MP4/H.265)体积小十倍还清晰。能发视频就别发 GIF。


一句话决策

视频太大传不出去?
├── 要快速压小、保画质 → /video/compress(调分辨率 + CRF)
├── iPhone 录的 MOV → /video/to-mp4
├── 只要其中一段 → /video/trim 先裁再压
├── 要换编码 H.265 → /video/convert
└── 单个几 GB / 批量几十个 → 桌面 ffmpeg(见上文命令)

下次再录出个「传不动」的大视频,照着上面的分支来,几分钟就能收到一个又小又清晰的版本。要把压出来的 MP4 再截一帧当封面,可以用视频转图片按需取帧。

本站提供浏览器本地工具,免注册即可试用 →

#视频压缩#视频格式转换#H.264#H.265#CRF#本地处理