c++高性能264/265实时流媒体服务器/h5客户端整体解决方案源码

文章介绍了针对Chrome不支持H265解码的问题,提出了一套C++后端和H5前端的解决方案。包括两种H5UI方案:多屏混合显示和监控大屏视图切换,支持GPU解码,适用于各种嵌入式和x86环境。该方案强调了前端技术在安防桌面客户端开发中的优势和适用性。
摘要由CSDN通过智能技术生成

c++高性能264/265实时流媒体服务器/h5客户端整体解决方案源码

缘由

长期以来chrome一直致力于推广自己的vp9解码,而不支持h265, 而互联网上有大量的h265视频,事实上,安防行业自2019年就有大量的h265产品了,推动的理由很简单:更高的编码复杂度,同样的清晰度有着更低的码率,这样可以大幅度降低存储成本。

在此之前,chrome支持fmp4流媒体播放h264但不支持h265。这就催生了大量临时方案

  • wasm方案的h265解码器,他们不辞辛苦的将ffmpeg编译成wasm,然后利用js调用cpu来解码h265视频。这样的方案依赖CPU软解,能用但性能不足,典型情况下,在普通PC机上只能够播放一路1080p的h265视频

  • 修改chrome源码,重新编译ffmpeg,使其支持265解码,这个效果比wasm更好,也有可能做到一定程度的GPU硬件加速,但硬件适配远没有chrome做的更好,毕竟chrome面临的是这个世界上绝大多数的桌面端、移动端设备。

目前的前端技术栈,已经能够支撑常规的安防桌面客户端软件开发

前端的优势:

  • 绝佳的UI表现能力;
  • 面向新需求快速开发的能力;
  • 前后端分开,容易搭建团队的能力;
    可以说上面的几个优点,招招都踢在传统桌面客户端的要害上。

我的方案

主要分为两块,

  • 后端流媒体服务
  • 两个前端UI
    整体逻辑如下:
    整体逻辑示意图

一套c++后端,两套前端

H5 UI方案一:多屏h265/h264混合显示

主要逻辑:前端查询后端可用的流列表,流式布局显示,点击播放
后端提供多个测试文件,前端就会展示相应的个数,快速帮助使用者摸清播放性能边界。

打开后查询对应的流个数
初始页面
本例中,后端提供5路流,点击播放后
播放页面
图中附上任务管理器截图,可以看到CPU和GPU使用量

H5 UI方案二:H5监控大屏,提供视图切换功能

multi_preview_standby
multi_preview_play
此方案值得一提的是:

  • 提供1分屏、4分屏、8分屏、9分屏、16分屏、32分屏、64分屏切换;
  • 分屏切换不会停止播放;

优点

  • GPU解码,无插件,chrome网页播放32路 h256/hevc 直播视频流,毫无压力;

  • 纯c++编写,可以运行在绝大多数嵌入式、x86环境下, 只要c++版本不低于14;

  • 基于h5原始“video”标签,方便集成到自己的前端项目中;

  • 白盒交付,提供前后端全部源码;

总结

前端视频应用的机会已经到来,小公司可以掌握更多的机会,用前端开发去替代原先的qt等传统UI开发框架,用新技术撬动原本只属于大公司的机会。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值