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