关于使用GB28181协议实现与大华摄像机的语音对讲功能小记

这篇具有很好参考价值的文章主要介绍了关于使用GB28181协议实现与大华摄像机的语音对讲功能小记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目前只测试了与大华摄像机的语音对讲功能,在此记录下对接工程中遇到的问题和收获。

首先我们需要理清下思路:

第一步要熟悉语音对讲的协议流程,下图为国标28181中的参考图:

关于使用GB28181协议实现与大华摄像机的语音对讲功能小记

这里我们可以简化下流程,只参与与摄像机的信令交互,也就是1,2,3,4,5,14,15   17,18

这里我将信令详情展示出来,以供参考

1.发送语音广播请求

MESSAGE sip:34020000001320000001@192.168.1.108:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.20:9088;branch=4dae6d98892f4a0fb630b8e77d49bc30;rport
To: "" <sip:34020000001320000001@4401020048>
From: "34020000002000000002" <sip:34020000002000000002@192.168.1.20:9088>;tag=6606061
Call-ID: 6b135a147f4b425e981406bdd9751924@192.168.1.20
CSeq: 1 MESSAGE
Max-Forwards: 70
Content-Length: 193
Content-Type: Application/MANSCDP+xml

<?xml version="1.0" encoding="GB2312"?>
<Query>
<CmdType>Broadcast</CmdType>
<SN>991225</SN>
<SourceID>34020000002000000002</SourceID>
<TargetID>34020000001370000001</TargetID>
</Query>

2.设备回复OK
SIP/2.0 200 OK
Call-ID: 6b135a147f4b425e981406bdd9751924@192.168.1.20
Content-Length: 0
CSeq: 1 MESSAGE
From: "34020000002000000002"<sip:34020000002000000002@192.168.1.20:9088>;tag=6606061
To: ""<sip:34020000001320000001@4401020048>;tag=fcf251b2e36ab8324e6c7772c971ea06
User-Agent: SIP UAS V3.0.0.828177
Via: SIP/2.0/UDP 192.168.1.20:9088;rport=9088;branch=4dae6d98892f4a0fb630b8e77d49bc30

3.设备发送广播通知结果请求
MESSAGE sip:34020000002000000002@192.168.1.20:9088 SIP/2.0
Call-ID: 67c4f0acd67bb28284401481f6d66ba7
Content-Length: 187
Content-Type: Application/MANSCDP+xml
CSeq: 4997 MESSAGE
From: <sip:34020000001320000001@192.168.1.108:5060>;tag=8c22c278382c2ab79017a91f806b9ff0
Max-Forwards: 70
To: <sip:34020000002000000002@192.168.1.20:9088>
User-Agent: SIP UAS V3.0.0.828177
Via: SIP/2.0/UDP 192.168.1.108:5060;rport;branch=z9hG4bKa1bc3d6ca30b7e643b67aa393c7fb9f6

<?xml version="1.0" encoding="GB2312" ?>
<Response>
    <CmdType>Broadcast</CmdType>
    <SN>991225</SN>
    <DeviceID>34020000001370000001</DeviceID>
    <Result>OK</Result>
</Response>

4.回复设备OK

SIP/2.0 200 Ok
Via: SIP/2.0/UDP 192.168.1.108:5060;rport=5060;branch=z9hG4bKa1bc3d6ca30b7e643b67aa393c7fb9f6;received=192.168.1.108
To: <sip:34020000002000000002@192.168.1.20:9088>
From: <sip:34020000001320000001@192.168.1.108:5060>;tag=8c22c278382c2ab79017a91f806b9ff0
Call-ID: 67c4f0acd67bb28284401481f6d66ba7
CSeq: 4997 MESSAGE
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, PRACK, REFER, REGISTER, SUBSCRIBE
Content-Length: 0

5.设备主动发起INVITE 请求

INVITE sip:34020000002000000002@192.168.1.20:9088 SIP/2.0
Call-ID: 24174d55333b5ba8c1b04ea8be4a755f
Contact: <sip:34020000001320000001@192.168.1.108:5060>
Content-Length: 240
Content-Type: application/sdp
CSeq: 1 INVITE
Expires: 120
From: <sip:34020000001320000001@192.168.1.108:5060>;tag=a2752e81ddc7ca8693c411f8b3c77329
Max-Forwards: 70
Subject: 34020000002000000002:03d7a8ef3276a8ef327,34020000001370000001:0552354c54f3354c54f
To: <sip:34020000002000000002@192.168.1.20:9088>
User-Agent: SIP UAS V3.0.0.828177
Via: SIP/2.0/UDP 192.168.1.108:5060;rport;branch=z9hG4bK17794d3a5b5e56a894332fd42136c92f

v=0
o=34020000001320000001 0 0 IN IP4 192.168.1.108
s=Play
i=VCam BroadCast Session
c=IN IP4 192.168.1.108
t=0 0
m=audio 9920 RTP/AVP 8 96
a=recvonly
a=rtpmap:8 PCMA/8000/1
a=rtpmap:96 PS/90000
y=0232409800
f=v/0/0/0/0/0a/1/8/1

14.回复给设备带SDP的OK确认消息
SIP/2.0 200 Ok
Via: SIP/2.0/UDP 192.168.1.108:5060;branch=z9hG4bK17794d3a5b5e56a894332fd42136c92f;rport
To: "" <sip:34020000002000000002@192.168.1.20:9088>;tag=24174d55333b5ba8c1b04ea8be4a755f
From: <sip:34020000001320000001@192.168.1.108:5060>;tag=a2752e81ddc7ca8693c411f8b3c77329
Call-ID: 24174d55333b5ba8c1b04ea8be4a755f
CSeq: 1 INVITE
Contact: "" <sip:34020000002000000002@192.168.1.20:9088>
Max-Forwards: 70
Content-Length: 169
Content-Type: APPLICATION/SDP

v=0
o=34020000002000000002 0 0 IN IP4 192.168.1.20
s=Play
c=IN IP4 192.168.1.20
t=0 0
m=audio 30050 RTP/AVP 8
a=sendonly
a=rtpmap:8 PCMA/8000/1
y=0232409800

15.设备回复ACK确认消息
ACK sip:34020000002000000002@192.168.1.20:9088 SIP/2.0
Call-ID: 24174d55333b5ba8c1b04ea8be4a755f
Contact: <sip:34020000001320000001@192.168.1.108:5060>
Content-Length: 0
CSeq: 1 ACK
From: <sip:34020000001320000001@192.168.1.108:5060>;tag=a2752e81ddc7ca8693c411f8b3c77329
Max-Forwards: 70
To: <sip:34020000002000000002@192.168.1.20:9088>;tag=24174d55333b5ba8c1b04ea8be4a755f
User-Agent: SIP UAS V3.0.0.828177
Via: SIP/2.0/UDP 192.168.1.108:5060;rport;branch=z9hG4bK0571dff2cc66262a140a3a66925ca316

在这个过程中,我们可以得到以下信息:

        1.设备支持8000采样率,单通道的PCMA流和90000 PS包

        2.设备提供的收留端口为9920

        3.我们发送流的端口为30050

        4.我们需要发送的音频流为PCMA 8000采样率的RTP包

这里还有几点需要注意:

        1.经过测试,语音对讲请求与设备的通道ID中是否标记为137无关,在信令1中TargetID字段的标红部分

关于使用GB28181协议实现与大华摄像机的语音对讲功能小记

 2.发起语音广播请求1中,TargetID可以为设备ID,也可以为设备的通道ID,

3.设备发送的INVITE后,回复带SDP的OK响应时(信令14),to字段中tag不能为空,可以指定为call-id,否则无法收到ACK确认消息

4.回复带SDP的OK响应时(信令14),sdp协议中不要包含多余信息。如

m=audio 30050 RTP/AVP 8 96
a=sendonly
a=rtpmap:8 PCMA/8000/1

这里我们并没有使用96 PS流,如果这样发送过去,会导致设备确认后,立马发送BYE消息

所以,不必要的信息,最好不带,以免参数异常问题

至此,我们与摄像机建立了语音对讲的连接。接下来我们只需要使用协商好的端口往摄像机指定的端口发送数据流即可。

接下来,我们需要发送PCMA 8000的RTP包,这里需要用到VLC,ffmpeg,ffprobe,ffplay等工具,这些工具可以帮助我们测试。

首先,如何构建出一个PCMA 8000 单通道的问题,使用FFMPEG命令:

ffmpeg -i D:\CloudMusic\外婆.mp3 -map_metadata -1 -fflags +bitexact -acodec pcm_alaw -ac 1 -ar 8000 外婆_PCMA.wav -y

参数详解: -acode pcm_alaw  编码为pcma格式

                 -ac 1 单声道

                 -ar 8000是采样率8000   

                 -map_metadata -1 -fflags +bitexact 是将ffmpeg转码默认携带的LIST的数据(artist,genre等)去掉,变成标准的44字节的wav文件头

这里使用fprobe工具查看我们转码的文件是不是我们想要的

ffprobe C:\Users\24610\外婆_PCMA.wav

关于使用GB28181协议实现与大华摄像机的语音对讲功能小记

 这里,我们看到的确是我们想要的文件,那么如何打包成RTP流发送出去呢?

我们打开VLC,

关于使用GB28181协议实现与大华摄像机的语音对讲功能小记

关于使用GB28181协议实现与大华摄像机的语音对讲功能小记

 关于使用GB28181协议实现与大华摄像机的语音对讲功能小记

 关于使用GB28181协议实现与大华摄像机的语音对讲功能小记

 关于使用GB28181协议实现与大华摄像机的语音对讲功能小记

 关于使用GB28181协议实现与大华摄像机的语音对讲功能小记

关于使用GB28181协议实现与大华摄像机的语音对讲功能小记

这里我们已经开始发送RTP流了,我们可以使用ffplay播放,

ffplay -i rtp://192.168.1.20:5004 

或者再启动一个VLC,打开网络串流输入:rtp://192.168.1.20:5004 都是可以的,这里我们可以拿来测试RTP包是否发送正常,这里还不能往摄像机发送,因为这里发送端口是随机的,我们需要使用特定端口(这里是30050)来发送,这就要在代码中实现的。

更新:

关于结束发送的BYE请求,需要保证callId,to,from三者的信息与之前建立INVITE连接保持一致,否则会报481,会话不存在的问题。

BYE sip:34020000001320000001@192.168.1.108:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.8:15061;branch=ea0521a2ed87417fbfbc2ab07a80fe21;rport
Via: SIP/2.0/UDP 0.0.0.0;branch=z9hG4bK120e676c326f4a24a32f0272f9a7008d;rport
To: "" <sip:34020000001310000001@4401020048>;tag=ecff3b47b02ef1219b395728baeaaf68
From: "34020000002000000002" <sip:34020000002000000002@192.168.1.8:15061>;tag=6816997
Call-ID: 7d49358c56084d40bb993a9f8482f3cd@192.168.1.8
CSeq: 2 BYE
Max-Forwards: 70
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, PRACK, REFER, REGISTER, SUBSCRIBE
Content-Length: 0

ACK sip:34020000001320000001@192.168.1.108:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.8:15061;branch=ea0521a2ed87417fbfbc2ab07a80fe21;rport
To: "" <sip:34020000001310000001@4401020048>;tag=ecff3b47b02ef1219b395728baeaaf68
From: "34020000002000000002" <sip:34020000002000000002@192.168.1.8:15061>;tag=6816997
Call-ID: 7d49358c56084d40bb993a9f8482f3cd@192.168.1.8
CSeq: 2 ACK
Max-Forwards: 70
Content-Length: 0文章来源地址https://www.toymoban.com/news/detail-425800.html

到了这里,关于关于使用GB28181协议实现与大华摄像机的语音对讲功能小记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【国标语音对讲】EasyCVR视频汇聚平台海康/大华/宇视摄像头GB28181语音对讲配置

    近年来,国内视频监控应用发展迅猛,系统接入规模不断扩大,涌现了大量平台提供商,平台提供商的接入协议各不相同,终端制造商需要给每款终端维护提供各种不同平台的软件版本,造成了极大的资源浪费。各地视频大规模建设后,省级、国家级集中调阅,对重特大事件

    2024年04月27日
    浏览(100)
  • JavaCV音视频开发宝典:使用javacv读取GB28181、海康大华平台和网络摄像头sdk回调视频码流并转码推流rtmp流媒体服务

    《JavaCV音视频开发宝典》专栏目录导航 《JavaCV音视频开发宝典》专栏介绍和目录 本篇文章用于解决javacv接入h264/hevc裸流或者接入ps/ts流等字节流的非流媒体协议视频源接入并推流到rtmp流媒体服务。 本篇文章适用于gb28181/海康大华网络摄像机设备sdk对接以及海康大华等视频平

    2023年04月09日
    浏览(60)
  • 视频安防监控EasyCVR平台海康大华设备国标GB28181告警布防的报文说明

    TSINGSEE青犀视频监控综合管理平台EasyCVR基于云边端协同,可支持海量视频的轻量化接入与汇聚管理。平台既具备传统安防视频监控的能力,比如:视频监控直播、云端录像、云存储、录像检索与回看、告警上报、平台级联、云台控制、语音对讲等,也能接入AI智能分析的能力

    2024年02月14日
    浏览(50)
  • 海康大华监控摄像机接入SkeyeVSS视频融合平台配置详细步骤

    监控摄像机接入SkeyeVSS视频融合平台配置 监控接入准备 一台笔记本电脑 安装海康摄像机调试工具 安装大华摄像机调试工具 硬件调试工具(自备) 监控接入步骤 海康网络摄像机接入步骤: 打开设备网络搜索工具(SADPTool.exe),打开界面如下图所示: 正常情况下,网线接上

    2024年02月15日
    浏览(214)
  • 监控摄像头接入GB28181平台实现监控视频直播的详细搭建流程

    将监控摄像头的视频在网站和APP中直播,要解决的几个问题是: 1)获取摄像头视频 2)将视频直播出去 3)网页无插件直播和APP集成 获取摄像头视频,之前主要采取拉流模式,即在知道摄像头ip地址的情况下,可以通过RTSP协议拉取摄像头实时视频。最新的方案是采用GB28181协

    2023年04月17日
    浏览(60)
  • window下搭建WVP+ZLMediaKit服务实现获取GB28181视频(三、WVP+ZLMediaKit服务启动,并连接摄像头)

    前面两篇文章分别介绍了WVP服务和ZLMediaKit服务的搭建,现在介绍这两个服务如何达到通讯效果 配置通讯的mediaServerId和media.id 1、在ZLMediaKit服务第一次启动后,会出现config.ini文件,这个文件在服务没有启动之前是不存在的,打开这个配置文件,在里面找到mediaServerId  2、打开

    2024年02月08日
    浏览(44)
  • [运维|GB28181] wvp-GB28181-pro+ZLMediaKit部署GB28181协议视频平台(windows)-个人笔记

    mysql下载地址 redis下载地址 vc++运行库 wvp-GB28181-pro+ZLMediaKit部署GB28181协议视频平台全流程(ubuntu2204) wvp-GB28181-pro+ZLMediaKit部署GB28181协议视频平台全流程(centos7) 若需要协助部署可私信我

    2024年04月14日
    浏览(48)
  • GB28181协议--SIP协议介绍

      SIP(Session Initiation Protocol,会话初始协议)是一个用于建立、更改和终止多媒体会话的应用层控制协议,其中的会话可以是IP电话、多媒体会话或多媒体会议(GB28181安防使用的是SIP协议)。SIP是IETF多媒体数据和控制体系结构的核心协议。其主要目的是为了解决IP网中的信

    2023年04月23日
    浏览(45)
  • 【GB28181】协议详解

    GB28181协议指的是国家标准GB/T 28181—2016《公共安全视频监控联网系统信息传输、交换、控制技术要求》。 该标准规定了公共安全视频监控联网系统的互联结构, 传输、交换、控制的基本要求和安全性要求, 以及控制、传输流程和协议接口等技术要求,是视频监控领域的国家

    2024年02月11日
    浏览(29)
  • GB28181国标协议

    GB28181主要解决: 不同平台之间的对接和互通问题 。 协议属于应用层的协议,是国内多家厂家联合制定的一套标准。 国标基于SIP(会话发起协议或会话初始化协议) 各厂家之间GB28181协议的差别: 1.查询录像的时间。 2.查询录像的返回结果时长。 监控领域业务: 1.获取设备

    2023年04月08日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包