国标对接大华移动设备画面自动翻转码流提取

1、 背景

现场是公安二类区环境,ciot平台,对接大华移动,车载设备。出现的问题是取流画面不会随着设备旋转保持水平向上,不管设备如何翻转画面始终保持一个方向。

首先要判断前端传过来的码流是否会根据设备翻转自动翻转。

2、 获取视频流

2.1、tcp流

Tcp流可以使用dac组件保存码流,然后对码流进行分析。

2.1.1、dac组件获取码流

打开目录

/opt/hikvision/web/components/dac.1/bin/ldm/apps/das_media_linux/stream

修改文件save_stream.data

<device_index_code>500102</device_index_code>这里填入通道的编码,可以在设备管理页面上获取。

 <enable>0</enable>这里改成1.

修改完以后保存退出。

在客户端上进行取流操作。

取流一段时间以后断开,可以看到目录下多了一个SaveStream的目录,进到目录下,可以看到有两个文件。

device和in 表示进入媒体服务层的数据,rtsp和out表示媒体服务层发送出去的数据。

打开码流查看,发现原始码流就是反的,并不会自动就行翻转。

2.2、udp流

如果平台配置了udp取流,也可以在抓包里直接把视频流截取出来。

首先在平台里配置udp取流方式。

      由于现场的设备是移动设备,没有固定的IP,所以抓包之前现在设备上看一下当前的IP。

      在dac服务所在的服务器上抓包,根据IP来抓包,命令如下:

      抓包开始以后,平台开始取流,一段时间以后关闭取流,再关闭抓包。打开抓包的时候要注意,不能使用版本过高的wireshark,实测hilight上下载的2.6.6版本可用。

先根据sip编码来过滤抓包信息,注意这里的编码是编码设备的编码,不是通道的编码。

找到INVITE,打开Message Header,找到Call-ID,右键作为过滤应用,选中,这样可以把这次交互的所有信息筛选出来。

筛选以后点击INVITE那一行,打开下方Message Body,打开Session Description Protocol,就可以找到平台收流的IP和端口。

接着点击设备返回的200ok那一行,在同样的位置就可以找到设备的发流IP和发流端口

根据获取到的发流和取流端口重新写过滤条件,就能获取到具体的码流信息了。tcp.port 16000 || udp.port 16000 || tcp.port 9720 || udp.port 9720(端口换成实际的)。可以看到码流类型是rtp,如果显示的是udp,可以右键将其解码为rtp。右键选择解码为(英文版winshark选项为Decode As),选中+号,选择UDP和RTP,之后OK确认。

点击电话——RTP——流分析进行码流分析

可以看到具体码流的丢包率等信息,这边我们点击save,不同步的正向音频,视频的话将其保存为raw格式。

      接下来就可以用vlc测试播放了,但是在这之前vlc还要先进行一下配置。点击工具-偏好设置-输入/编解码器,把传输流改为rtp。即可用vlc播放码流。

3、参考文档

https://wiki.hikvision.com.cn/pages/viewpage.action?pageId=165454017

https://wiki.hikvision.com.cn/pages/viewpage.action?pageId=152141307