EasyCVR在https下访问后台wss_flv视频流无法播放原因排查

经常会有人对比HTTP和HTTPS,HTTP向HTTPS过度的主要原因可以说是信息数据化的必经过程,为了对数据进行更加精密的加密,HTTPS也日益受到用户的青睐。不难看出,HTTPS的加密机制将会成为未来电子信息化发展的主流。我们的视频监控云边端项目架构中,最先通过HTTPS实验的就是EasyNVR和EasyDSS,紧随其后的有EasyCVR、EasyGBS等。

近期我们测试EasyCVR时,发现通过https访问后台时,wss_flv格式的视频流无法播放:

排查后端代码,发现wss_flv的路由后端没有添加,所以导致https访问后台的时候,返回的websocket的flv的播放地址不能播放。

添加如下代码,在路由列表中添加wss_flv的路由地址,然后将请求地址的url解析为http的具体设备和通道的具体地址,然后代理到流媒体中去播放。

func WSFlvHandler() gin.HandlerFunc {

return func(c *gin.Context) {

//Grader.ReadBufferSize = 102400000

//Grader.WriteBufferSize = 102400000

ws, err := Grader.Upgrade(c.Writer, c.Request, nil)

if err != nil {

return

}

defer func() {

fmt.Printf("关闭长连接")

ws.Close()

}()

countSplit := strings.SplitN(c.Param("path"), "/", 3)

path := "/" + countSplit[2]

if strings.HasSuffix(path, ".flv") {

再次使用https去播放wss_flv,一切正常:

 

posted on 2021-11-26 14:45  EasyCVR视频融合平台  阅读(111)  评论(0)    收藏  举报