GB28181 对接海康平台,解决音视频卡顿问题

本文介绍了在GB28181协议下对接海康平台时遇到的音视频卡顿问题,通过设备对比分析和报文抓包,发现音频时间戳与视频时间戳不独立是造成卡顿的原因。解决方案是使音频时间戳独立,并根据底层传递的时间戳进行封装。调整后,音视频传输恢复正常。
摘要由CSDN通过智能技术生成


一、概述

设备使用GB28181协议对接海康平台时,发现音频和视频存在卡顿现象,不是一直卡顿,有时候卡有时候不卡,但是卡顿的时候音视频一起卡顿。

在这里插入图片描述

从2016版国标文档上可以看出,要求携带者音视频数据,并且对音视频数据还是有要求的,出现这种卡顿的问题肯定是上传的音视频流数据出现了问题。后面我们测试发现,只发送视频帧,不发送音频帧是正常的,视频画面很流畅,无卡顿现象,当时分析着可能跟发送的音频帧有关。

二、问题分析

1、设备对比分析

找到了海康设备和宇视设备进行对比,同时接入到海康平台上两个厂家的音频和视频都是正常的,音视频也非常流畅,没有卡顿现象。后面又分别使用tcp进行拉流测试,因为海康平台默认是udp传输流,tcp模式下,我们的设备也是一样卡顿,从这次设备对比分析中确定了我们的设备的确是存在着问题。

2、抓包对比分析

抓取了海康和宇视两个厂家设备的报文,从sip信令开始分析,我们设备发送的sip信令报文和另外两个厂家发送的基本上一致,只是海康平台下发invite的sdp中没有携带y=字段,也就是没有要求ssrc值,这个感觉问题不大,至少设备发送的音视频流中是有的,尽管是自己定义的ssrc值。
在这里插入图片描述

上面是从sip信令中对比分析的,接下来就是分析音视频流的打包区别,GB28181协议中,要求使用rtp+ps+h264的格式进行打包,导致音视频卡顿的问题,也有可能是打包格式不一样导致的,导致客户端解码时出现了问题。使用wireshark工具抓取了海康设备、宇视设备和我们设备的音视频流数据进行对比,从打包格式中并没有发现异常,一时有点头大,不知道问题在哪里了。
在这里插入图片描述

经过一段时间的摸排,发现音频时间戳增量不一样,也就是ps流中和rtp头中协议的时间戳不一样,海康设备音频时间戳和视频时间戳是一样的,我们的设备也是这样,音频时间戳使用的是视频的时间戳,
在这里插入图片描述

宇视设备的报文跟海康的是不一样的,音频时间戳是独立的,不依赖与视频的时间戳,这也让我找到了突破口,海康设备可能不具有借鉴的意义,因为平台就是海康的嘛
在这里插入图片描述

3、验证分析结果

将音频时间戳独立开,使用底层传递上来的音频时间戳进行封装报文,需要注意的是,rtp头中携带了时间戳,在ps header中也有时间戳,需要同时修改。修改后,设备对接海康平台音视频正常,不再有卡顿的现象。

三、总结

经验和知识同等重要,主要是对gb28181打包音视频方式不大了解,通过这次问题分析,又学到了不少。

四、讨论

这里再问给大家一个问题,在使用gb28181传输音视频流时,使用的音频如果没有时间戳怎么办?那应该怎么设置时间戳呢?先别着急看答案,答案也不一定唯一,大家可以思考一下。。。

我思考的答案
这种情况需要知道音频编码参数,音频采样率、帧率信息,比如音频格式为G711A,采样率为8000,每次采样8比特,即一个字节。
帧率即每秒打多少包,假设c毫秒打一包,帧率即:1000ms/Xms,
时间戳增量=8000/(1000/X)=8X;
假设X=40ms,则计算出时间戳增量为320;
这种配置下,每包的数据大小:8000
(X/1000)=8*X;
当X=40时,结果为320;
也就是说,G711A时间戳增量和包数据大小是相同的。

相信大家也想到了好的解决办法!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烫手的热山药

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值