当前位置: 首页 > news >正文

ONVIF对讲功能漫谈

ONVIF对讲功能漫谈

  • 前言
    • 一、onvif对讲功能和onvif协议关系大吗?
    • 二、如何上报设备支持onvif对讲功能呢?
    • 三、onvif协议中哪个接口上报音频解码配置?
    • 四、献上抓包报文:

前言

本篇文章尝试使用提问的方式来分享onvif对讲功能那点事。

一、onvif对讲功能和onvif协议关系大吗?

onvif对讲功能其实和onvif协议关系不大,对讲功能主要使用rtsp协议实现的,通过在DESCRIBE交互请求报文中携带Require: www.onvif.org/ver20/backchannel字段,代表客户端通过rtsp协议尝试请求建立双向连接,或着叫尝试建立具有数据反向通道的rtsp连接。具体报文如下:
在这里插入图片描述
从报文中能看到track4代表着音频,所以后续的请求都是围绕着track4来进行,同时interleaved=2-3;也表示着音频。
如果设备支持对讲功能,在DESCRIBE阶段会返回成功,如果不支持响应错误代码 551 Option not supported。然后,客户端可以尝试建立一个没有反向通道RTSP 连接。

二、如何上报设备支持onvif对讲功能呢?

这的确是一个问题,因为从官方文档中,并没有提及明确的onvif对讲能力集使用哪个接口那个字段进行上报,但在rtsp反向通道连接时,提到了如下描述:
在这里插入图片描述
从红色框出来的描述可以看出,跟音频能力上报有关,什么能力呢,上报的音频解码能力和支持的音频解码参数,就是说,设备支持语言对讲功能,其实是需要播放音频流,如果设备不支持音频输出功能,对讲就不用谈了,肯定支持不了。

三、onvif协议中哪个接口上报音频解码配置?

获取音频解码相关的接口有:GetAudioDecoderConfigurationOptions 、GetAudioDecoderConfigurations;
GetAudioDecoderConfigurationOptions 接口可以获取到设备音频解码支持的格式信息,比如音频格式、比特率、采样频率信息,可以根据这些信息进行判断。示例报文如下:

Request:POST /onvif/media2 HTTP/1.1
Host: 172.16.33.173
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 313<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><GetAudioDecoderConfigurationOptions xmlns="http://www.onvif.org/ver20/media/wsdl" /></s:Body>
</s:Envelope>Request:POST /onvif/media2 HTTP/1
http://www.lryc.cn/news/119909.html

相关文章:

  • 计算文本相似度
  • oracle 增加控制文件
  • OpenFeign超时时间设置不生效问题排查
  • Go和Java实现原型模式
  • linux I/O性能优化
  • PHP最简单自定义自己的框架model使用(七)
  • 程序猿成长之路之密码学篇-分组密码加密模式及IV(偏移量)的详解
  • Windows下批处理删除文件
  • html中文件上传储存到本地路径
  • 第九章 SpringBoot 自动配置原理 入门
  • String str=new String(“tango“) 创建了几个对象?
  • 引入三阶失真的非线性放大器的模拟输出及使用中值滤波器去除峰值研究(Matlab代码实现)
  • 【观察者设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
  • 精细解析中文公司名称:智能分词工具助力地名、品牌名、行业词和后缀提取
  • 网络编程(JavaEE初阶系列10)
  • Git常用的指令
  • LoadRunner(2)
  • CTF之逆向之阿里巴巴
  • Labview控制APx(Audio Precision)进行测试测量(五)
  • 在单元测试中使用Jest模拟VS Code extension API
  • django boostrap html实现可拖拽的左右布局,鼠标拖动调整左右布局的大小或占比
  • 谈谈闭包和闭包使用场景
  • MATLAB算法实战应用案例精讲-【图像处理】边界框锚框
  • 04什么场景要用到微服务
  • .NET SqlSuger 简单介绍,超快开发数据库
  • SpringBoot复习:(28)【前后端不分离】自定义View
  • springcloud3 springcloud stream的学习以及案例(了解)
  • Kotlin理解内置函数
  • 手机app测试
  • Centos部署Git