H5视频可视化播放RTSPRTMPHLSHTTP视频流媒体的⼏种可⾏
⽅案
经过多年的项⽬实战和研发经验的积累,总结了⼀下对于H5视频可视化在视频播放上如何做到⽆插件H5展⽰的⽅法,尤其是契合安防⾏业的⽅案;
除了HTTP、WebSocket类的传输协议,其他是⽆法通⽤地传输到浏览器的,所以,如果要做⼀款通⽤的H5视频播放器,基本上就是⼀款
HTTP/WebSocket协议的视频播放器,如果是类似于RTMP、RTSP类型协议的视频源,是不可避免,需要经过服务器转换的,那么我们可以总结Web⽹页可视化直播的⼏个刚性需求:视频播放器十大排名
H5播放只⽀持HTTP、WebSocket协议的流媒体源;
需要同时⽀持H.264、H.265视频编码格式;
⽀持低延时的实时视频以及录像回放视频;
可⾏⽅案⼀:WebSocket透传
通过WebSocket代理服务器,建⽴透传通道,转发各种不同协议的视频流,WebSocket类似于⼀个管道,只做原样的数据转发,将源设备与H5客户端之间建⽴⼀条由WebSocket包裹的传输通道,具体的协议交互过程还是按照原协议进⾏,RTSP、SIP类的⽂本协议按照⽂本协议的⽅式,RTMP类的字节流协议按照字节流协议的⽅式;
⽅案难点:
前端兼容性开发难度⾼:前端对于各种信令协议、字节流协议、以及解包、缓冲区、时间戳同步、解码、显⽰、播放,都要开发,对于前端开发的要求⽐较⾼;
H.265播放技术:安防场景下,⼤部分摄像机都采⽤的是H.265编码格式,所以,要前端Web⽀持H.265格式,需要引⼊wasm技术;
⽅案优缺点:
优点:后端开发简单,速度快;
缺点:后端只做管道,不具备实际的设备信息知悉权,这对于设备的管控是⽆法做到的,例如,⽆法快照、⽆法录像、⽆法获取设备具体的错误信息;
可⾏⽅案⼆:协议转换
采⽤类似于EasyCVR的全协议接⼊⽅案,将各种不同协议类型的视频源(RTSP、RTMP推流/拉流、HTTP、UDP等)、视频⽂件,通过标准化的协议转换,统⼀可以输出为HTTP-FLV(实时流)、HLS(直播流/点播流)对终端进⾏输出,就达到了标准化、全终端、全平台输出了;
⽅案难点:
后端兼容:后端需要将各种协议接⼊,并进⾏解封装,封装成标准的flv、ts等格式,不过好在已经有⽐较多的积累;
H.265播放器:同样是需要做到H.265的Web播放,包括HTTP-FLV和HLS的H.265格式;
⽅案优缺点:
缺点:技术门槛较⾼;
优点:可控性强,前后端分离,前后端⼈员均可灵活定制;
H.265⽹页播放⽅案
⼤家可以看到以上的两种解决⽅案都会具有⼀个H.265⽹页播放的难点,这⾥的主要原因是⽬前的浏览
器基本都不能⽀持H.265的底层解码,或者说硬解码,H.265需要结合原⽣播放器的开发技术和Web播放器的开发技术,也就是wasm技术,将C/C++封装成wasm,被js调⽤,这样js就能像C/C++原⽣播放器⼀样,充分利⽤C/C++的计算能⼒和扩展能⼒,来实现视频的解码过程。
wasm播放的主要优势的契合安防的实际需求,虽然⽬前各⼤⼚商开始流⾏WebRTC直播,但⽬前由于安防的特殊性,H.265已经占据主导,解决H.265的前端展⽰才能完整地解决整个安防可视化的需求,这个是RTC播放⽆法解决的。
总结下来,我们有⼏点思考:
想要完整的控制整个视频可视化的流程,最好还是在服务端做视频的处理和协议的转换;
H.265的前端⽀持是必不可少的,后端的H.265转H.264来⽀持前端的播放,都是技术的倒退;
在可视化系统都Chromium的时代,WebRTC可能是⼀个⾮常好的选择;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论