onvif 语音对讲

onvif 语音对讲

前言

在视频监控应用场景中,有很多场景需要采集查看监控的人的语音发送到监控摄像头的音响上去以实现对被监控对象的语音控制。
ONVIF Core Specification Core_2.00文档中章节12.3 Back Channel Connection对此进行了详细的描述。
ONVIF语音对讲的实现完全基于RTSP协议,流程中没有用到ONVIF协议。

RTSP Require-Tag

RTSP 标准[RFC 2326]可以通过添加额外的头进行扩展,引入Requiretag 用于处理特殊的功能扩展(参考 [RFC
2326], 1.5 Extending Rtsp and 12.32 Require).
Require头用来判定是否支持某个特性,如果要求server理解支持某个特性并正确处理请求,需要对server的每个请求都携带这个Require头。
server如果支持backchannel这个特性,需要理解该特性所对应的tag:

  • www.onvif.org/ver20/backchannel

如果client想要建立一个包含backchannelRTSP连接,在这一系列请求(SUBSCRIBE,SETUP,PLAY,PAUSE,TEARDWON)中需要包含这个Require www.onvif.org/ver20/backchannel头。

DESCRIBE

Client - Server发送DESCRIBE协议的时候添加前文说过的Require-tag,这时如果Server不支持语音对讲则会回复551 Option not supported,示例如下:

Client – Server: DESCRIBE rtsp://192.168.0.1 RTSP/1.0
CSeq: 1
User-Agent: ONVIF Rtsp client
Accept: application/sdp
Require: www.onvif.org/ver20/backchannel #!! Require-tag
Server – Client: RTSP/1.0 551 Option not supported
CSeq: 1
Unsupported: www.onvif.org/ver20/backchannel

如果支持语音对讲的话,则会回复200 OK并携带sdp信息:

RTSP/1.0 200 OK
CSeq: 1
Content-Type: application/sdp
Content-Length: xxx
v=0
o= 2890842807 IN IP4 192.168.0.1
s=RTSP Session with audiobackchannel
m=video 0 RTP/AVP 26
a=control:rtsp://192.168.0.1/video
a=recvonly
m=audio 0 RTP/AVP 0
a=control:rtsp://192.168.0.1/audio
a=recvonly
m=audio 0 RTP/AVP 0
a=control:rtsp://192.168.0.1/audioback
a=rtpmap:0 PCMU/8000
a=sendonly

上面的sdp列出了三个流及其控制URL: 视频流:rtsp://192.168.0.1/video,音频流:rtsp://192.168.0.1/audio,以及我们的主角对讲流rtsp://192.168.0.1/audioback,注意对讲流的属性a=sendonly与其他流的a=recvonly不同。

SETUP

接下来我们就可以SETUP这些session:

Client – Server: SETUP rtsp://192.168.0.1/video RTSP/1.0
CSeq: 2
Transport: RTP/AVP;unicast;client_port=4588-4589
Server – Client: RTSP/1.0 200 OK
CSeq: 2
Session: 123124;timeout=60
Transport:RTP/AVP;unicast;client_port=4588-4589;
server_port=6256-6257
Client – Server: SETUP rtsp://192.168.0.1/audio RTSP/1.0
CSeq: 3
Session: 123124
Transport: RTP/AVP;unicast;client_port=4578-4579
Server – Client: RTSP/1.0 200 OK
CSeq: 3
Session: 123124;timeout=60
Transport:RTP/AVP;unicast;client_port=4578-4579;
server_port=6276-6277
Client – Server: SETUP rtsp://192.168.0.1/audioback RTSP/1.0
CSeq: 4
Session: 123124
Transport: RTP/AVP;unicast;client_port=6296-6297
Require: www.onvif.org/ver20/backchannel
Server – Client: RTSP/1.0 200 OK
CSeq: 4
Session: 123124;timeout=60
Transport:RTP/AVP;unicast;client_port=6296-6297;
server_port=2346-2347

上面setup了三次,分别建立了视频流,音频流以及位于最后的音频对讲流的连接。

PLAY

由于rtsp有集合控制的功能,仅需要发送一条PLAY或者PAUSE就可以同时控制多个音频流和视频流。所以下面我们发送一条PLAY请求即可:

Client – Server: PLAY rtsp://192.168.0.1 RTSP/1.0
CSeq: 5
Session: 123124
Require: www.onvif.org/ver20/backchannel
Server – Client: RTSP/1.0 200 OK
CSeq: 5
Session: 123124;timeout=60

在收到PLAY请求的200 OK的回复之后,客户端就可以Server发送音频数据包了,Client不应该在收到回复之前就开始发送数据包。
上面例子中的Require: www.onvif.org/ver20/backchannel头指明了这个特殊的解释对于PLAY命令是必须的。PLAY命令同时开始了ClientNVT获取音频流和视频流以及从Client发送到Server的对讲流。

TEARDOWN

通过发送TEARDOWN请求来关闭这个包含三个流的session:

Client – NVT: TEARDOWN rtsp://192.168.0.1 RTSP/1.0
CSeq: 6
Session: 123124
Require: www.onvif.org/ver20/backchannel
NVT – Client: RTSP/1.0 200 OK
CSeq: 6
Session: 123124

Multicast Streaming

如果客户端要发送语音广播给多个摄像头,那么它需要使用SETUP请求中的transport参数来告诉Server多播地址和端口

Client – Server: SETUP rtsp://192.168.0.1/audioback RTSP/1.0
CSeq: 4
Session: 123124
Transport:RTP/AVP;multicast;destination=224.2.1.1;port=60
000-60001;ttl=128
Require: www.onvif.org/ver20/backchannel
Server – Client: RTSP/1.0 200 OK
CSeq: 4
Session: 123124;timeout=60
Transport:RTP/AVP;multicast;destination=224.2.1.1;port=60
000-60001;ttl=128;mode=”PLAY”

参考

ONVIF Core Specification Core_2.00

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: ONVIF(开放网络视频接口)是一个全球开放标准,为IP网络摄像机和视频管理系统之间的互操作性提供了一种通用接口。ONVIF支持双向对功能,允许用户在监控中心与摄像机之间进行实时的音频通信。 ONVIF双向对功能的实现基于开放的标准,因此不同厂商生产的摄像机和监控系统通常都遵循相同的协议和规范,从而实现相互兼容。用户可以通过监控中心的界面选择某个摄像机进行双向对,然后打开对按钮,并通过麦克风和扬声器进行音频通信。 双向对功能在视频监控场景中具有广泛的应用。例如,在一个需要保安人员与访客进行对话的门禁系统中,用户可以利用ONVIF双向对功能,通过摄像机与访客进行实时的沟通,从而提高安全性和便利性。此外,在监控中心需要对现场发出警告或指令时,可以通过双向对功能直接与现场的执行人员进行沟通,减少误解和延迟。 总之,ONVIF双向对功能为视频监控系统提供了更方便和高效的音频通信方式。通过遵循开放的标准,不同厂商生产的摄像机和监控系统可以实现互操作性,从而为用户提供更多的选择和灵活性。这一功能广泛应用于门禁系统、安防系统以及其他需要实时音频通信的监控场景中。 ### 回答2: ONVIF (开放网络视频接口)是一个全球化技术标准,致力于提供可互操作性的网络视频产品。它定义了各种网络视频设备(例如摄像头、视频交换器、录像机等)之间的通信方法和数据格式,使各种品牌和型号的设备能够互相连接和共同工作。 双向对ONVIF标准的一项重要功能,它允许用户通过网络视频设备进行双向的实时语音通讯。在支持双向对的设备中,一般会内置或连接麦克风和扬声器,用户可以通过软件或客户端发起对请求并与远程设备进行实时通话。 ONVIF双向对功能的实现过程如下: 1. 设备连接:用户通过ONVIF标准连接到支持双向对的网络视频设备,该设备应该具备音频输入输出接口,如麦克风和扬声器。 2. 设备发现:通过ONVIF或相关软件,用户可以发现设备并获取设备的IP地址和端口号等相关信息,以便进行连接和配置。 3. 对设置:用户在软件或客户端中配置双向对功能的参数,如音频编解码格式、音频输入输出设备等。 4. 发起对:用户可以通过软件或客户端发起对请求,与远程设备建立音频通道,并将自己的语音数据传输给远程设备。 5. 实时通话:一旦建立了音频通道,用户和远程设备可以进行实时的双向通话,彼此之间可以交流和对话。 6. 结束对:用户可以通过软件或客户端结束对请求,关闭音频通道,结束语音传输。 通过ONVIF双向对功能,用户可以轻松实现与远程设备的实时语音通讯,方便用户进行远程监控、安防等应用场景。同时,ONVIF标准的全球化支持,保证了不同品牌和型号的设备之间的兼容性,使得双向对功能可以广泛应用于各种不同的网络视频设备中。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值