FZ9D多路摄像头接入说明
更新时间:2024-05-16
FZ9D多路摄像头接入说明
FZ9D采用分时复用的方法,支持多路视频同时接入,最多支持16路网络摄像头,接入方法如下图所示。
同时提供了对应的源码fz9d_video_lib方便用户将多路视频的功能集成到系统中。
fz9d_video_lib提供两个功能:
- 配置多路摄像头的rtsp流、Hi3536的网络信息,对应下图中的配置通路
- 使用v4l2接口获取多路分时复用视频流,对应下图中数据通路
库程序
Shell
1fz9d_video_lib
2── src
3 ├── hdmi_capture_util.c
4 ├── hdmi_capture_util.h
5 ├── multi_channel_camera.cpp
6 ├── multi_channel_camera.hpp
7 ├── video_processor.c
8 └── video_processor.h
9
100 directories, 6 files
video_processor : 通过数据通路,控制Hi3536,完成配置多路摄像头的rtsp流和Hi3536的网络信息
hdmi_capture_util : V4L2采集的视频数据处理的工具函数
multi_channel_camera : V4L2 接口封装,启动线程,采集图片 并通过回调函数返回数据
库编译
Shell
1cd fz9d_video_lib
2mkdir build
3cd build
4cmake ..
5make
库安装
库的默认安装到目录:out
Shell
1make install
Demo程序
fz9d_video_ctrl
功能:按照json文件中的配置完成网络 RTSP流、通道占比等信息的配置
对应的配置文件video.json如下:
JSON
1{
2 "frameRate": 24,
3 "netWork": {
4 "ip": "192.168.1.251",
5 "netmask": "255.255.255.0",
6 "gw": "192.168.1.1",
7 "mac": "23:50:95:da:65:fe"
8 },
9 "channelSequence": "<ch0:3,ch1:2,ch2:2>",
10 "videoSource": [
11 {
12 "ch": 0,
13 "rtsp": "rtsp://admin:eb123456@192.168.1.108:554/cam/realmonitor?channel=1&subtype=0"
14 },
15 {
16 "ch": 1,
17 "rtsp": "rtsp://admin:eb123456@192.168.1.67:554/cam/realmonitor?channel=1&subtype=0"
18 },
19 {
20 "ch": 2,
21 "rtsp": "rtsp://admin:admin123456@192.168.1.164:554//Streaming/Channels/1"
22 }
23 ]
24}
配置文件描述:
FrameRate: HDMI 通路的帧率目前支持 : P24 和 P30
netWork: 设置 hi3536 与摄像头通信网口的 网络信息配置
ChannelSequence: 设置 16 个摄像头发送顺序和比例 ,一个通道连续发送图片不能超过4张,举例如下:
videoSource: 设置16 个摄像头对应的 RTSP流的地址
编译
在库程序安装成功后,重新执行cmake
Shell
1cd build
2cmake ..
3make fz9d_video_ctrl
运行
Shell
1./fz9d_video_ctrl ../demo/video.json
fz9d_video_capture
功能:简单的多路视频采集调用demo
编译
在库程序安装成功后,重新执行cmake
Plain Text
1cd build
2cmake ..
3make fz9d_video_capture
运行
- 保证Fz9D 的Hi3536对应的网口与摄像头在同一个 局域网中
- 通过 fz9d_video_ctrl 配置了正确的 rtsp 流
Shell
1./fz9d_video_capture
fz9d_video_capture_display
功能:多路视频采集并通过显示器显示
通过鼠标 左右键或键盘的左右箭头可以切换当前显示的摄像头通道
编译
在库程序安装成功后,重新执行cmake
Plain Text
1cd build
2cmake ..
3make fz9d_video_capture_display
运行
- 保证Fz9D 的Hi3536对应的网口与摄像头在同一个 局域网中
- 通过 fz9d_video_ctrl 配置了正确的 rtsp 流
- 将显示器设置为 1280*720:
xrandr -s 1280x720
Shell
1./fz9d_video_capture_display
