让CEF支持HEVC(H.265)视频播放

HEVC(H.265)有高昂的版权费用这个是众所周知的,所以现在绝大多数浏览器默认都不具备HEVC解码能力,这一点可以通过caniuse.com看到:
CanIuseHEVC
可以看到,基本上只有Apple是HEVC的主要支持者。Google Chrome以及使用Chromium内核的浏览器全军覆没。但实际中确实有很多需求是要在非Apple系的浏览器播放HEVC,怎么办呢?我所知道的有两种方式:一种是在页面上采用WebAssembly开发的Web播放器,这个主流媒体厂商应该大多数都提供了。开源的也有不少,github上一搜一大堆。另外一种那就是如果客户端是你提供的,并且采用了Chromium内核,那就可以通过自己手动修改Chromium源码和相关配置文件的方法,为Chromium提供native层的HEVC解码播放能力,让video标签可以直接渲染播放HEVC的mp4文件。

下面是我基于CEF 3809(Chromium 76内核)添加了HEVC解码的版本:
CEF 3809中播放HEVC视频
上面是我使用video标签,src给了一个 从Elecard网站上下载的一个 3840x2160@25fps 的HEVC mp4文件(Elecard_about_Tomsk_part2_HEVC_UHD(3840x2160@25fps).mp4,118.48MB)。也可以不用测试页面,直接把本地HEVC mp4文件地址粘贴到地址栏访问也是可以的。

让CEF 3809支持HEVC解码播放的修改,我在github上放了一份 修改时参考了这个:henrypp / chromium

注意我写了一个readme.txt,里面有些说明。比较关键的是:虽然可以播放HEVC视频了,但是渲染播放时会有比较严重的卡顿和画面内容异常(物体跳动感),而相同的测试页面和测试视频文件,在macOS Safari 13上面播放就很流畅,没有任何问题。通过简单排查,在macOS上播放时,存在一个名字为 VTDecoderXPCService 的进程,这个进程属于VideoToolBox.framework。而大家知道VideoToolBox是苹果操作系统上一个可以访问硬件编解码器的底层框架。所以,猜想在Safari中播放HEVC视频,是利用了硬件加速而非CPU软解码播放。Chromium中应该是纯粹的软解码播放,所以性能会比较差。那么接下来就需要解决,或者寻找如何让Chromium支持硬解码HEVC播放的问题了,嗯,还有很多工作要做。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
cefsharp.winforms.netcore 114.2.100 是一个适用于 Windows Form 应用程序的 Chromium Embedded Framework(CEF)的 .NET Core 版本。在该版本中,CEFSharp 提供了对视频播放支持CEFSharp 是一个基于 CEF 的 .NET 接口封装,它允许开发人员在自己的 .NET 应用程序中嵌入一个完整的 Chromium 浏览器。通过使用 CEFSharp,开发人员可以轻松地在 Windows Form 应用程序中实现强大的浏览器功能,包括支持 HTML5 标准的视频播放。 使用 CEFSharp 进行视频播放非常简单。首先,需要确保你的应用程序引用了正确的版本,并且安装了相关的依赖项。然后,在你的 Windows Form 页面中,你可以使用 CefSharp.WinForms.ChromiumWebBrowser 控件来嵌入浏览器。 在浏览器加载网页时,如果网页中包含视频元素,CEFSharp 将会自动处理视频播放。你可以使用嵌入好的浏览器控件的方法和事件来控制视频播放,例如播放、暂停、停止等。 在 CEFSharp 中,也可以使用自定义的 JavaScript 代码来操作视频播放。你可以通过调用 JavaScript 代码在 C# 中控制视频播放状态。要实现自定义的视频控制,你可以使用 CefSharp.WinForms.IJavascriptCallback 接口来进行通信。 总结来说,cefsharp.winforms.netcore 114.2.100 提供了对视频播放支持。开发人员可以使用 CEFSharp 在他们的 .NET Core Windows Form 应用程序中嵌入一个完整的 Chromium 浏览器并实现强大的视频播放功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值