zoukankan      html  css  js  c++  java
  • 安防视频上云服务平台EasyCVR同一通道向上级联到多个平台无法同时播放问题修复

    在TSINGSEE青犀视频云边端架构产品中,EasyGBS和EasyCVR都能通过GB28181协议和其他平台进行级联。在级联情况下,如果遇到视频流无法播放的问题,首先需要关注通道是否设置了按需播放,因为在按需播放下,上级平台无法获取到EasyCVR中该通道的视频流。

    今天我们要分享的案例比较奇特,在该案例中,EasyCVR同时接入了2个上级平台,将某个通道同时分配给了这2个上级平台,当在这2个上级平台中同时播放该通道的时候,问题就出现了:A平台可以播放该通道,B平台无法播放该通道。

    当我们尝试交替替换这两个视频平台时,发现只能在1个上级平台中播放,无法在2个上级平台中同时播放。

    通过现象分析上级平台能获取到设备和通道信息,只是无法同时播放,上级平台下发的invite 消息,处理正常。但是当多个上级平台都下发invite消息时,下级平台推流对象就一个,只推了一份数据到其中的一个上级平台,导致其他上级平台没有流数据,无法播放。

    我们可以通过如下代码,对视频流地址进行解析:

    strKey:=strings.Split(server.Cascade,",")
    for _,v:=range strKey{
    	if v != "" {
    		cascade_udp, err := net.ResolveUDPAddr("udp", v)
    		if err != nil {
    			fmt.Println("转发地址解析失败:", err)
    			return
    		}
    
    		_, err = server.DataConn.WriteToUDP(rtpBuf, cascade_udp)
    		if err != nil {
    			fmt.Println("转发失败:", err)
    		}
    		if !server.IsLiveStream {
    			continue
    		}
    	}
    }
    
    

    修改后视频通道则可以正常播放了。随后进行两个平台同时播放的测试,播放正常,则问题修复完毕。

  • 相关阅读:
    【模板】Sparse-Table
    UVa 11235 Frequent values
    【模板】树状数组
    UVa 1428 Ping pong
    数学技巧
    UVa 11300 Spreading the Wealth
    UVa 11729 Commando War
    UVa 11292 Dragon of Loowater
    POJ 3627 Bookshelf
    POJ 1056 IMMEDIATE DECODABILITY
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/13864971.html
Copyright © 2011-2022 走看看