ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-02-14 18:01:52  阅读:152  来源: 互联网

标签:ssrc obj Ehome EasyCVR 播放 uint avframe


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有