要做一批教学视频的归档,原来的 H.264 文件太大,存储成本扛不住。我拍板转了 H.265,结果交付后发现客户的老旧播放器全打不开。最后又乖乖压回 H.264,浪费了三天服务器时间。从那以后我学乖了:编码格式没有绝对的“更好”,只有“更适合”。这篇文章把 H.264 和 H.265 的方方面面摊开讲,看完你就知道怎么选了。
一、一句话说清楚两者是什么
- H.264(也叫 AVC):2003 年发布的视频编码标准,目前兼容性最好,几乎所有设备都能播。
- H.265(也叫 HEVC):2013 年发布的下一代标准,压缩率更高,同画质下文件比 H.264 小 30%-50%,但老设备不支持。
打个比方:H.264 是国民神车(到处能跑),H.265 是特斯拉(更先进但挑充电桩)。
二、它们到底差在哪里(不讲技术术语)
| 对比项 | H.264 | H.265 |
|---|---|---|
| 文件大小 | 大 | 小(通常省 40% 左右) |
| 编码速度 | 快 | 慢(约 2-5 倍时间) |
| 解码(播放)要求 | 低(老手机、电视都行) | 高(需要硬件支持,否则卡顿) |
| 浏览器支持 | 几乎所有 | Safari、Edge 部分,Chrome/Firefox 需要靠系统解码器 |
| 硬件普及 | 2008 年后设备基本都带硬解 | 2016 年后中高端设备才有硬解 |
| 适用场景 | 通用分发、网页播放、老旧设备 | 4K/8K 视频、存档、带宽受限环境 |
三、我该选哪个?(直接给结论)
选 H.264 的场景(大多数情况)
- 你做的视频要给客户/用户,你不知道对方用什么设备看 → 选 H.264
- 网页直接播放(HTML5 视频)
- 微信、QQ 里发送视频(老版本微信对 H.265 支持很差)
- 转码时间有限,需要快速出片
- 视频分辨率低于 1080p(1080p 下 H.265 优势不明显)
选 H.265 的场景(确定环境可行)
- 4K、8K 超高清视频(文件大小优势明显)
- 自己收藏的视频库(想省硬盘空间)
- 你的播放环境全部是近几年的设备(比如 2018 年后买的手机、电视、电脑)
- 直播推流带宽不足(同样画质占用更低码率)
- 视频点播平台(如 Netflix、YouTube 都用 H.265 或更高级的 AV1)
四、快速测试:用 FFmpeg 转码对比文件大小
先准备一个 1 分钟的视频片段(避免浪费时间)。
4.1 转成 H.264(CRF 23,中等质量)
ffmpeg -i input.mp4 -c:v libx264 -preset medium -crf 23 -c:a copy h264.mp4
4.2 转成 H.265(CRF 28,同等画质)
ffmpeg -i input.mp4 -c:v libx265 -preset medium -crf 28 -c:a copy h265.mp4
对比两个文件大小,通常 H.265 会小 40% 左右。
踩坑:H.265 的 CRF 值与 H.264 不是同一条线。通常 H.265 的 CRF 加 4-6 约等于 H.264 的画质。比如 H.264 的 23 约等于 H.265 的 27-28。
五、实战:几行命令帮你决策
- 检查你的设备是否支持 H.265 硬解
# 用 ffmpeg 列出所有解码器
ffmpeg -decoders | grep hevc
如果看到 hevc_cuvid(NVIDIA)或 hevc_videotoolbox(macOS)或 hevc_qsv(Intel),说明你的电脑能硬解。
- 批量把 H.264 转成 H.265 存档
for f in *.mp4; do
ffmpeg -i "$f" -c:v libx265 -crf 28 -preset slower -c:a copy "${f%.mp4}_hevc.mp4"
done
-preset slower 压缩效果更好,但慢很多。
- 让 H.265 兼容更多播放器(指定 profile)
ffmpeg -i input.mp4 -c:v libx265 -profile:v main -pix_fmt yuv420p -tag:v hvc1 output_hevc.mp4
-profile:v main(不是 main10)保证 8bit 色深,老电视基本能播。-tag:v hvc1 是苹果兼容的标记。
- 给 H.264 降码率(不换编码)
如果实在不想换 H.265,但文件太大,可以降低码率:
ffmpeg -i input.mp4 -c:v libx264 -b:v 1M -maxrate 1.5M -bufsize 2M -c:a aac -b:a 128k output.mp4
六、问题汇总(都是我真实遇到的)
-
转了 H.265,结果老电视/投影仪播不了
原因:设备解码器不支持。
解决:保留一份 H.264 版本给老旧设备,或者用 Plex/Emby 等服务端实时转码。 -
用 H.265 录屏,剪辑软件导入后卡死
原因:剪辑软件(如 Premiere 旧版、会声会影)对 H.265 支持不好。
解决:录屏时选 H.264,剪辑完导出再压 H.265。 -
同样 CRF 值,H.265 文件反而更大
现象:设置了 -crf 23 给 H.265,结果比 H.264 同 CRF 大。
原因:H.265 的 CRF 标尺不同。23 对 H.265 来说是极高质量,几乎无损。
解决:H.265 用 28 左右开始测试。 -
Unknown encoder 'libx265'
原因:FFmpeg 没编译 x265 支持。
解决:换用完整版 FFmpeg(参考第一篇安装博客)。 -
H.265 转码太慢,一天才转完一个电影
原因:没有开启硬件加速,或者 -preset 设成了 slower/veryslow。
解决:
1、用 GPU 加速(如 NVIDIA 的 hevc_nvenc,画质略差但快 10 倍)
2、降低 preset 到 fast 或 medium
3、分片并行转码(高级用法) -
网页播放 H.265,浏览器报错 Unsupported video type
原因:Chrome 等浏览器默认不支持 H.265(需要系统解码器或开启实验性标志)。
解决:网页端最好提供 H.264 备用源,或者用 HLS/MPEG-DASH 自适应切换。
七、进阶:下一代 AV1 要来了
如果你关注未来,AV1 是继 H.265 之后的新标准,压缩率再提高 20-30%,且开源免费。但目前硬件解码支持比 H.265 还少,编码慢得令人发指。个人建议:2026 年的今天,AV1 还不到普及的时候。H.265 仍是存 4K 视频的最佳选择。
八、一点小建议
1、存自己手机拍的视频:用 H.265,省空间,且新手机都支持硬解。
2、给客户交付:先问对方“你的播放设备是近几年的?”,不确定就用 H.264。
3、上传到 B站、YouTube:他们自动转码,你上传 H.264 或 H.265 都可以,优先 H.264 更快。
4、做视频教程或录屏:本地用 H.264,剪辑流畅;最终存档用 H.265。
买新手机拍视频:记得在相机设置里选“高效格式(HEVC)”,省一半存储。
写这篇的时候我又手贱:把自己婚礼录像从 H.264 转成 H.265 备份,省了 20GB,结果放老家电视上播不了,被家人骂了一顿。最后重新拷了 U 盘里的 H.264 版本。所以,存档可以 H.265,分发必须 H.264。
最后给你的选择流程图:
你的视频给谁看?
│
├─ 自己看 + 设备是近几年的 → H.265
├─ 自己看 + 设备可能有老款 → 保留两份
├─ 给别人/客户/网页 → H.264
├─ 4K / 8K 超大文件 → H.265(省空间)
└─ 需要快转码 → H.264
希望能帮你少走弯路。