视频分析时边缘侧AI应用的一个常见场景,边缘侧的单个节点能够同时视频流越多,这不仅提高了处理效率,还具有显著的经济性。本文将介绍如何使用QCS6490的VPU(视频处理单元)来支持H264/H265的视频硬件编解码,并展示如何通过命令行在设备上拉取多路视频流并合并显示到屏幕上。
1. 准备工作
- 安防摄像头4个
- 非网管PoE交换机
- 路由器
准备好测试安防摄像头,并且安防摄像头支持RTSP数据拉流,例如我们测试使用了海康的安防摄像头,并且配置好IP地址
整个测试设备的网络拓朴如下图
- 安防摄像头接入到PoE的交换机,本次测试使用是非网管的交换机。
- 交换机再接入到路由器
- QCS6490的设备也接入到路由器,和安防摄像头组成局域网
2. 测试
在QCS6490的盒子上执行下面的命令,显示单路的视频流
export XDG_RUNTIME_DIR=/run/user/root
gst-launch-1.0 -v rtspsrc location="rtsp://admin:test@192.168.4.21:554/ch1/main/av_stream" ! queue max-size-buffers=2 ! rtph264depay ! h264parse ! decodebin ! autovideosink sync=false
显示并合并2路视频
gst-launch-1.0 qtivcomposer name=mix sink_0::position="<0, 0>" sink_0::dimensions="<480,270>"
sink_1::position="<480, 0>" sink_1::dimensions="<480, 270>" mix. ! queue ! waylandsink sync=true fullscreen=false
rtspsrc location="rtsp://admin:admin123@192.168.1.19:554/avstream/channel=1/stream=1.sdp" ! queue !
rtph264depay ! h264parse ! qtic2vdec ! video/x-raw\(memory:GBM\) ! queue ! mix. rtspsrc
location="rtsp://admin:admin123@192.168.1.20:554/avstream/channel=1/stream=1.sdp" ! queue !
rtph264depay ! h264parse ! qtic2vdec ! video/x-raw\(memory:GBM\) ! queue ! mix.
这里使用了qtivcomposer这个插件,其中0::position="<0, 0>" sink_0::dimensions="<480, 270>" 表示第一个视频显示在显示窗口的位置和大小。
作者:戴忠忠,高通工程师