关于ONVIF Audio BackChannel
功能上其实就是在常用的RTSP上拓展一个backchannel。
一般开发可能就是通过ONVIF Device Test Tool进行:
具体这个功能需要哪些步骤,点一下测试项,在详细步骤里看都去执行了哪些接口,再去实现接口。(简单点就这样搞咯)。
ONVIF Network Interface:https://www.onvif.org/profiles/specifications/
原理和协议描述按文档的来(点网页进入):
详细协议实现(点xx.wsdl 自行查看):
对完ONVIF的几个指令后就到了对讲执行部分,也就是RTSP修改部分。
协议上无非在DESCRIBE时,SDP加上backchannel的部分:
m=audio 0 RTP/AVP 0
a=control:trackID=audioback
a=rtpmap:0 PCMU/8000
a=sendonly
然后客户端会来SETUP这个backchannel通道。
这里当然就分TCP和UDP了。
UDP部分
先说UDP吧比较简单。
直接建立一个UDP连接去收数据就行了,跟做RTSP客户端一样,收到的数据就是RTP包而已,解包再看数据格式进行解码播放就OK。
测试结果:
TCP部分
主要就是TCP部分。
这个测试工具搞的很奇特,我也不是很明白。
TCP直接收554(一般都这个,具体看自己的)的就行。当然要判断下收的数据是RTP还是命令。
但是!
这个工具很神奇,收到一个StartCode+RTP的数据,结果这个数据长度是对的,和payload len一致,但是数据是静音!
然后
会收到另外一些没有StartCode的RTP包,就是和UDP的一样,然后这个数据竟然才是真正的数据!
所以这到底什么鬼东西?工具搞错了?还是我没理解协议?
期待大佬留言指导。