如何將WebRTC播放協議新增到EasyCVR?

語言: CN / TW / HK

自2020年瀏覽器的發展和相容性發生了變化,WebRTC的延時性、安全性得到了提升和保護,尤其是疫情爆發後,實時影片的需求比之前增長了30倍,這更刺激了WebRTC產品的持續快速發展。因此我們也在EasyGBS、EasyDSS等平臺內實現了WebRTC協議的播放。

有些EasyCVR客戶需要低延遲的雲臺方案,所以我們也在EasyCVR中添加了WebRTC的播放協議。分析該需求後,我們瞭解到只要在請求播放的時候返回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,能夠正常播放: