修改Chromium源码,实现HEVC/H.265 4K视频播放

作为 H.264 的后继产品,HEVC/H.265 是一种高级视频压缩标准,能够节省50%的比特率,带来惊人的视觉质量。例如,在Converter 的 DivX HEVC 配置文件中编码的视频,不仅保持了DivX Plus 配置文件的高质量,文件还更小。即使在拥挤的网络环境中,HEVC 对于传输高质量视频也至关重要,并且是将 4K内容传输到 4K/Ultra HD 显示器的驱动因素。本文作者分享了其公司推广 HECV/H.265 的经验,并介绍了该技术的相关背景。

公司内容生产端最近在推广 HEVC/H.265 的使用,这种视频编码格式对比 H.264 更加先进且节省带宽,虽然先进但是因为专利费的问题,在普及度,软硬件方面的支持都远不及预期。视频技术水深,还是先把了解的背景给大家整理罗列一下。

HEVC 软硬件的支持

浏览器

Can I use 测试基本全军覆没,除了 iOS 11 以上的移动端 safari 和 chrome。

系统原生支持

Native 支持的情况已经相当不错,这里的支持是操作系统提供了 HEVC 编解码的 api,底层实现会根据硬件条件优先硬解否则软解,当然移动端机型也会因为系统定制、专利、性能考量等原因屏蔽支持(猜测)还要用黑名单控制一下。

Android:Android 5.0+
os_version >= 5.0 && app_version >= 570 && device_model not in blacklist
复制
iOS:iOS 11+
os_vesion >= 11 && minMajorModelVersion >= 8 && device_model not in blacklist
复制
macOS:macOS High Sierra+

Windows:DirectX Video Acceleration (DXVA),这个不是很确定,需要进一步深入调研,或许会在下一篇文章介绍。

硬件支持

Intel :支持较好,在第六代 Skylake 架构 cpu 及以上实现 HEVC 8-bit 编解码。
Nvidia GPU:Nvidia 900 Series GPUs (GeForce GTX 960 或者 950) 以上都支持。
AMD GPU :具体的支持度配合查看 Unified Video Decoder;比较完整的支持需要到 UVD 6.0 以上。
苹果 A :A9 及型号或者以上,A11 及以上支持 10-bit HEVC 编解码。
华为麒麟:使用 Mali 的 GPU,2014 年以后都支持硬解,10-bit 超高清视频 + (HDR) + wide color gamut coverage。
高通骁龙 Qualcomm Snapdragon :805, 810, 820, 835 支持 4K HEVC decoding. 615,410, 208 或以上芯片支持硬解。
联发科 MediaTek:同样使用 Mali GPU。
编解码技术
我们说的 HEVC 是一种编码技术的标准,真正应用和落地的时候还有大量的优化工作,从全球最权威的 MSU 视频编码大赛 2018 的报告中可以看出,中国的军团独占风骚,华为、腾讯和金山的表现都相当抢眼,可以说是站在了世界一流的梯队中,当然宋利提出国外有高手并未参赛。不管如何,2019 年已经接近尾声,相信会有新的一轮比拼和报告出现。

这里面开源的有:

X265,编码器,主要由 MulticoreWare 公司管理开发,并拥有著作权和商标权,开源协议是 GNU GPL v2 license。
openHevc,解码器,开发语言 C 基于 ffmpeg/libav 框架。
libde265,解码器,发布在 GitHub 上,采用 LGPL 许可证授权。
这些编码的 SDK 我们能用吗?据我了解,这里面都是商家的核心技术,性能都是大幅领先开源编解码器,这里列出来做一个对标和选型参考。我了解到,字节跳动的视频架构组也有自研的编解码器,据说性能也是相当不错~

竞争格局

说起这个,不得不提起 HEVC 那恶心的专利费,许多内容提供商不愿意部署跟进 HEVC 的最主要原因是,当前有三个不同专利联盟开黑在嗷嗷收钱,每个联盟背后代表的公司也不一样。包括 MPEG LA、HEVC Advance、Velos Media,对错综复杂的关系感兴趣的话,可以看看这篇文章。

简单说,又贵又麻烦风险不可控(互联网企业最怕的就是养肥再杀的这一招),所以必然导致发展缓慢,替代品出现。

重点来了,苹果是 HEVC 专利拥有者,所以一直高调支持 HEVC;Google 不在开黑联盟里面,没什么专利,底下 YouTube 就是头大肥羊,是坚决不用 HEVC 的,目前 Google 用自研的 VP9;2015 年成立了一个新联盟叫 AOM(Alliance for Open Media) 开放媒体联盟,主要研发 AV1 的编码格式用于替代 HEVC 和 VP9,并且完全免费!机智的苹果一边收 HEVC 的费用,一边过来站队,还混了个 AOM 管理成员的职位,大佬毕竟还是大佬。

浏览器支持 HEVC 解码现有方案
在 Web 前端技术标准之上的方案,最近几年,各个前端团队也都经过深入探索和总结。其中,淘宝前端团队的方案比较有代表性,大体的思路是:

JS 实现解封装。
ffmpeg 模块转换成 WebAssemblly,用来实现高效音视频解码。
引入 WebWorker 改善解码模块性能。
分离的视频解码后用 canvas 绘制,音频用 audio 播放。
优缺点:性能相对好,但是和 C 实现的还有较大差距,如果替换成更好的解码器会更快(比如,金山点播的 web 实现,收费),工作量大,无法硬件加速,要支持 4K 还是比较难。
具体大家可以看淘宝的这篇文章ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五一编程

程序之路有我与你同行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值