宇视GB28181平台对接SRS调试记录

一、问题:有现场需要宇视GB28181平台对接SRS,TCP取流,不能播放视频,报以下错误:

二、问题定位:

经查实际原因在这儿找不到H264的起始码,所以未能将视频数据插入列表:

三、问题解决:PS包对比,对比可播放的海康视频截图分析:见下图中绿色框部分为起始码即数据类型,绿框后跟音视频数据。

海康视频H264起始码符合上述代码,为4字节起始码00000001,而宇视视频推过来为3字节起始码000001,造成此处查找错误。可将红框部分做如下修改:并将接口replace_startcode_with_nalulen中的常量4改为3就可兼容两个厂家的设备了。

        if (video_data[index] == 0x00 && video_data[index+1] == 0x00 &&

             video_data[index+2] == 0x01){

                 list_index.push_back(index);

             }

四、其它:

         1,宇视视频配置音频使能后视频不能播放了,经查下图:

选中部分为一个完整音频帧TAG,(灰色框内为此TAG总长度)。看粉色部分宇视为70,海康为AA:

下附TAG头说明:

Audio Tag 数据:

        1.首字节前4bit表示SoundFormat,即编码格式。

7 = G.711 A-law logarithmic PCM 此为宇视格式  10 (A)= AAC 此为海康格式 

       2.首字节第5、6 bit表示SoundRate(采样率)  0 = 5.5 kHz,1 = 11 kHz,2 = 22 kHz,3 = 44 kHz

       3.首字节第7bit表示SoundSize,即采样点的大小,仅适用于未压缩格式。压缩格式总是解码。0 = 8-bit samples 1 = 16-bit samples  

        4.首字节第8bit表示SoundType,即声音类型0 = Mono sound,   1 = Stereo sound

问题原因找到了:目前SRS只支持AAC音频格式,非AAC格式时不能播放。宇视技术称目前GB28181只支持G711,此时在SRS配置中将音频关掉,视频就可正常播放了。

我手上有海康的一款相机到如下配置可实现SRS的音频播放配置,这样音视频均可正常播放,不知道其它设备是否相似。

另:1,如果将此改为G711的格式,海康的设备SRS也播不出视频了。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值