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智能分析功能,如人脸识别、车牌识别等。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。