EasyCVR添加WebRTC播放协议实现过程分享

自2020年浏览器的发展和兼容性发生了变化,WebRTC的延时性、安全性得到了提升和保护,尤其是疫情爆发后,实时视频的需求比之前增长了30倍,这更刺激了WebRTC产品的持续快速发展。因此我们也在EasyGBS、EasyDSS等平台内实现了WebRTC协议的播放。

EasyCVR添加WebRTC播放协议实现过程分享

有些EasyCVR客户需要低延迟的云台方案,所以我们也在EasyCVR中添加了WebRTC的播放协议。分析该需求后,我们了解到只要在请求播放的时候返回WebRTC的播放地址即可实现该功能。

EasyCVR添加WebRTC播放协议实现过程分享

添加如下代码,根据请求的播放协议,返回对应的播放地址,当前端传递WebRTC的时候,后端返回webrtc://开头的播放地址,然后在前端请求播放的时候,将视频流数据直接返回出去。

VideoCode = 0xae

ack.EasyDarwin.Body["ChannelName"] = gbschannels[0].ID

ack.EasyDarwin.Body["DeviceType"] = "GB"

ack.EasyDarwin.Body["DeviceID"] = dev

ack.EasyDarwin.Body["ChannelID"] = gbschannels[0].Index

ack.EasyDarwin.Body["RealTimeRecord"] = realtimeRecord

ack.EasyDarwin.Body["Codec"] = VideoCode

ack.EasyDarwin.Body["SnapURL"] = value.SnapURL()

//添加分析,iframe,二维码 token,客户可手动刷新 更新token

shareAuth := utils.Conf().Section("base_config").Key("share_auth").MustBool(false)

if shareAuth {

if value.Token != token {

ack.EasyDarwin.Body["URL"] = ""

ack.EasyDarwin.Body["Token"] = ""

前端再次请求播放WebRTC,能够正常播放:

EasyCVR添加WebRTC播放协议实现过程分享

 

上一篇:EasyCVR偶尔不显示登录用户名是什么原因?


下一篇:EasyCVR多窗口分屏播放时,应如何调配达到较好的播放效果?