首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >视频压缩到100m以内,码率按目标体积反推、分辨率降到720p

视频压缩到100m以内,码率按目标体积反推、分辨率降到720p

原创
作者头像
软领
发布于 2026-10-28 09:43:23
发布于 2026-10-28 09:43:23
2330
举报

在网页上传框里点上传,进度条走到一半跳出「文件大小超过限制,请压缩后重试」;用微信发视频时提示「文件过大,无法发送」。两个提示指向的是同一件事:体积没有落到平台的上限之内。1080p、60fps 的手机原片码率常在 15~20Mbps,3 分钟就有 300MB 上下,把 .mov 改成 .mp4 再另存一遍,文件大小一个字节都不会变。

多数情况下,问题出在只换了容器没动码率这一步。先看清原视频的大小和时长,用「目标体积 × 8192 ÷ 时长秒数」算出码率上限,再按这个码率配合降分辨率转码;导出后超过 100MB,就降一档重压一次。

以下方法在 Windows 10/11 实测可用。参数算准了,多数手机原片都能一次落到 100MB 以内,不必急着重拍素材。

适用系统:Windows 10/11;最后更新:2026-10-26。

视频压不到 100MB,问题多半出在这几处

从这两个提示往回查,落点一般在三处:

  • 码率没有动。1080p、60fps 手机原片的视频码率常在 15~20Mbps,3 分钟素材就有 300MB 上下。只把后缀从 .mov 改成 .mp4,封装换了、码率没换,体积自然不动。
  • 分辨率维持原样。100MB 这个上限下,1920×1080 能分到的码率很紧,降一档到 1280×720 通常比死磕码率更划算。
  • 素材本身太长。码率已经压到画质下限仍然超限时,继续压只会让画面更糊,剪短比调参数管用。

先确认原始参数和目标上限,再按公式反推码率,比反复换格式去试要快得多,也少一次画质损失。

第 1 步 先看清原视频的大小、时长和分辨率

不算清原始参数,后面的码率就无从下手。这一步只做记录,把体积、时长、分辨率、码率这四个数写下来。

  1. 右键视频文件 → 属性 → 详细信息,看「大小」「时长」「帧宽度」「帧高度」「总比特率」五项,把「大小」记成多少 MB。
  2. 把时长换算成秒,3 分 20 秒 = 200 秒,后面算码率要用到这个数。
  3. 「详细信息」里时长一栏是空的(MP4 元数据缺失时常见),就用「电影和电视」打开视频,看进度条右侧的总时长。
  4. 确认目标上限的口径:多数平台按 1MB = 1024KB 算,按 100MB 卡线容易超,留 5% 余量更稳。

参数记完就能判断要不要一起降分辨率,1080p 的素材想压到 100MB 以内,通常要配合降到 720p。

这一步只读不写。四项参数记在同一个地方,后面每一步都要回头跟它们对照。

第 2 步 按目标体积反推码率上限

体积等于码率乘时长。先把能用的码率算出来再去转码,就不用靠一次次试。100MB、200 秒的素材,算下来视频码率要在 3900kbps 上下。

  1. 公式:目标码率(kbps) ≈ 目标体积(MB) × 8192 ÷ 时长(秒)。
  2. 代入算一遍:100MB、200 秒 → 100 × 8192 ÷ 200 ≈ 4096kbps,音频留 128kbps,视频码率给 3900kbps 左右。
  3. 再乘 0.95 留余量,避免封装完之后刚好卡在 100MB 之上。
  4. 1080p 素材先降到 720p(1280×720),同样的码率下画面更稳,也更容易压下来。
  5. 60fps 的素材按 30fps 出片,体积还能再省一截。

算出的这个数就是转码时要填的码率,不用再凭感觉调。

8192 这个系数来自 1MB = 1024KB × 8bit 的量纲换算,推一次就够。音频占用的那 128kbps 要先从总码率里扣掉,剩下的部分才是视频能用的。

第 3 步 按算出的码率和分辨率转码一次

把第 2 步算出的数值填进转码参数,输出一次看结果就够了,参数不需要来回试。

  1. 用支持手动设码率的工具新建转码任务,导入原视频。
  2. 参数照填:视频编码 H.264,视频码率 3900kbps,音频 AAC 128kbps。
  3. 分辨率改成 1280×720,勾上保持宽高比,帧率设 30fps。
  4. 输出容器选 MP4。只改后缀名不会重新编码,体积一点不变。

习惯命令行的话,等价写法是:

代码语言:powershell
复制
ffmpeg -i input.mp4 -c:v libx264 -b:v 3900k -vf scale=1280:-2 -r 30 -c:a aac -b:a 128k output.mp4

scale=1280:-2 里的 -2 让高度自动取偶数。H.264 要求宽高都能被 2 整除,写成 -1 在某些源分辨率上会让编码器直接报错。

第一次转码用单遍编码就够,想体积更稳再考虑两遍编码。

第 4 步 导出后核对体积,超了就再降一档

第一次压完先看实际大小,再按固定顺序往下调,不要乱改参数。

  1. 导出后右键 → 属性,看实际字节数是不是落在 100MB 以内,对照 104857600 字节这个数。
  2. 超了就按这个顺序降:先帧率 30→24,再分辨率 720p→960×540,最后把视频码率乘 0.8。
  3. 每次只动一个参数再压一次,方便判断到底是哪一项在起作用。
  4. 体积卡得很紧时用两遍编码(two-pass),码率分配更准,代价是耗时翻倍。

一般降到码率 2500kbps、720p、24fps,3 分钟的视频就能稳稳落在 100MB 以内。

第 5 步 还压不下去时的兜底做法

参数已经压到画质下限,就从编码格式和素材本身想办法,继续压码率只会让画面更糊。

  1. 换 H.265/HEVC 编码,同画质下体积通常还能再小 30%~40%,注意部分老设备播放 HEVC 会卡。
  2. 剪掉片头片尾和用不上的片段,比继续压码率直接得多。
  3. 实在压不下去就分片,拆成第 1 部分、第 2 部分分别上传,或者先发布再分享链接。
  4. 不要拿同一组参数反复二次压缩,画质会累积损失,一次算准更划算。

到这一步还超限,多半是原片时长太长,剪短比调参数管用。

常见问题

视频压缩到100m以内,码率应该调到多少?

按 100 × 8192 ÷ 时长秒数 算。3 分钟(180 秒)的视频约 4550kbps,再乘 0.95 留余量,视频码率给 4300kbps 左右,音频 128kbps,分辨率降到 720p 就够用。

1GB 的视频怎么压到 100MB 以内?

1GB 压到 100MB,体积要缩到十分之一,单靠降码率不够。先把分辨率降到 720p 甚至 960×540,帧率降到 24fps,再按算出的目标码率转码;原片太长就先剪掉用不上的部分,比硬压画面划算。

手机拍的视频怎么压到 100MB 以内?

先把视频拷到电脑再处理,手机端的转码参数大多不透明。右键属性看总比特率,iPhone 原片常在 15Mbps 以上,按第 2 步的公式算出码率,在电脑上转码一次,落到 100MB 以内通常没问题。

视频压缩完还是超过 100MB 是什么原因?

常见两种:码率没填对,或者码率按标称值走、封装后略有偏差。核对导出文件的字节数,超过 104857600 就按第 4 步的顺序,先降帧率再降分辨率,最后把码率乘 0.8 重压一次。

视频压到 100MB 以内后画面变模糊了怎么办?

说明码率给低了。把码率往上调 20% 重压,分辨率降到 720p 换取码率空间;也可以换 H.265 编码,同体积下画面会更清楚一些。

边界与注意

  • HEVC 不是所有机器都能放。同画质下 H.265 能再省 30%~40% 的体积,但部分老设备只出声音不出画面,视频要给这些设备播放时仍然用 H.264 出片。
  • 同一组参数不要反复压。二次压缩的画质损失会累积,一次算准比压三次再挑一个更划算。
  • 留余量比卡线稳。100MB 按 1MB = 1024KB 算刚好是 104857600 字节,压到 100.0MB 很容易因为封装偏差超出去,把目标定在 95MB 更省事。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 视频压不到 100MB,问题多半出在这几处
  • 第 1 步 先看清原视频的大小、时长和分辨率
  • 第 2 步 按目标体积反推码率上限
  • 第 3 步 按算出的码率和分辨率转码一次
  • 第 4 步 导出后核对体积,超了就再降一档
  • 第 5 步 还压不下去时的兜底做法
  • 常见问题
    • 视频压缩到100m以内,码率应该调到多少?
    • 1GB 的视频怎么压到 100MB 以内?
    • 手机拍的视频怎么压到 100MB 以内?
    • 视频压缩完还是超过 100MB 是什么原因?
    • 视频压到 100MB 以内后画面变模糊了怎么办?
  • 边界与注意
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档