提示

H.264 vs H.265:视频编码怎么选?

要做一批教学视频的归档,原来的 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。

五、实战:几行命令帮你决策

  1. 检查你的设备是否支持 H.265 硬解
# 用 ffmpeg 列出所有解码器
ffmpeg -decoders | grep hevc

如果看到 hevc_cuvid(NVIDIA)或 hevc_videotoolbox(macOS)或 hevc_qsv(Intel),说明你的电脑能硬解。

  1. 批量把 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 压缩效果更好,但慢很多。

  1. 让 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 是苹果兼容的标记。

  1. 给 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

六、问题汇总(都是我真实遇到的)

  1. 转了 H.265,结果老电视/投影仪播不了
    原因:设备解码器不支持。
    解决:保留一份 H.264 版本给老旧设备,或者用 Plex/Emby 等服务端实时转码。

  2. 用 H.265 录屏,剪辑软件导入后卡死
    原因:剪辑软件(如 Premiere 旧版、会声会影)对 H.265 支持不好。
    解决:录屏时选 H.264,剪辑完导出再压 H.265。

  3. 同样 CRF 值,H.265 文件反而更大
    现象:设置了 -crf 23 给 H.265,结果比 H.264 同 CRF 大。
    原因:H.265 的 CRF 标尺不同。23 对 H.265 来说是极高质量,几乎无损。
    解决:H.265 用 28 左右开始测试。

  4. Unknown encoder 'libx265'
    原因:FFmpeg 没编译 x265 支持。
    解决:换用完整版 FFmpeg(参考第一篇安装博客)。

  5. H.265 转码太慢,一天才转完一个电影
    原因:没有开启硬件加速,或者 -preset 设成了 slower/veryslow。
    解决:
    1、用 GPU 加速(如 NVIDIA 的 hevc_nvenc,画质略差但快 10 倍)
    2、降低 preset 到 fast 或 medium
    3、分片并行转码(高级用法)

  6. 网页播放 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

希望能帮你少走弯路。

顶部
×
🔖
收藏本站
将本站添加到浏览器书签,方便下次访问
Ctrl + D (Windows/Linux)
+ D (Mac)