其他分享
首页 > 其他分享> > EasyCVR平台接入海康Ehome未携带ssrc导致视频无法播放的解决办法

EasyCVR平台接入海康Ehome未携带ssrc导致视频无法播放的解决办法

作者:互联网

EasyCVR视频融合云服务平台支持的协议类型与设备类型非常丰富,它能够兼容国标GB28181、RTSP/Onvif、海康SDK、Ehome、大华SDK等协议的前端设备。其中,Ehome协议是海康的私有协议,相对于GB28181国标协议,都是基于设备端主动向平台注册,更适用于无固定IP地址的设备,只需要配置一下设备注册地址即可云端使用。

 

近期我们接到反馈,EasyCVR平台在接入Ehome上级,出现了无法播放的情况。今天我们来和大家分享一下排查过程和解决办法。

在排查中抓包分析,发现无法播放的原因,是下级在回复上级播放消息时,未携带ssrc描述字段,导致上级流无法区分,所以造成了视频无法播放。

 

 

添加如下代码,在封装RTP流时,添加ssrc描述字段即可解决问题。

 

func (obj *SinkUDP) SendAVFrame(avframe *AVFrame, codec int, pts int) (err error) {
	cframe := &C.EASY_AV_Frame{
		u32AVFrameFlag:   C.uint(avframe.Flag),
		u32AVFrameLen:    C.uint(avframe.Len),
		u32VFrameType:    C.uint(avframe.Type),
		pBuffer:          (*C.uchar)(unsafe.Pointer(avframe.Buffer)),
		u32TimestampSec:  C.uint(avframe.TimeSec),
		u32TimestampUsec: C.uint(avframe.TimeUsec),
	}
	obj.rtpInfo.SSRC = obj.SSRC
	return obj.SendRTMP(cframe, codec, pts)
}

修改后我们再次测试播放,已经恢复正常了。

  

 

EasyCVR支持将所有视频通道通过GB28181协议级联到上级国标平台上,且支持同一通道级联到多个上级平台,十分的灵活。目前平台也正在积极拓展AI智能分析功能,如人脸识别、车牌识别等,欢迎大家的关注。

标签:ssrc,obj,Ehome,EasyCVR,播放,uint,avframe
来源: https://www.cnblogs.com/easycvr/p/15893586.html