README.md 2.8 KB

rtsp_multi_view

多路 RTSP 视频流多画面合成显示系统,运行于 RK3568 (Rockchip SoC)。

功能

  • 从多个 IP 摄像头通过 RTSP 拉取视频流
  • Rockchip MPP 硬件解码 H.264/H.265(优先零拷贝 DMABuf 直通,不支持时自动回退)
  • Rockchip RGA 硬件加速多画面拼接
  • DRM/KMS 直接输出到 HDMI(双缓冲 VBlank 同步,无撕裂)
  • PLC (S7comm) 位控制布局切换;单画面布局自动切换为对应摄像机的主码流
  • 自动定时重启设备(按日/周周期)

编译

# 快捷编译(推荐)
./build.sh

# 或手动
cmake -B build .
cmake --build build -j$(nproc)

依赖:GStreamer 1.0(含 allocators)、librga、libdrm、rockchip_mpp、 freetype2、libpng、libjpeg、libcurl、pthread。 rknnrt 仅 test_detector_bench 基准测试需要。

运行

# PLC 联调模式(同时启动 plc_server.py + plc_sim + auto_reboot)
sudo ./plc_server.sh

# 仅启动主程序
./start.sh

# 或手动指定
./build/rtsp_multi_view -c channels.conf

Ctrl+C 退出。

配置文件 (channels.conf)

主要配置段:

[output]          # 输出分辨率
[camera_list]     # 海康相机批量配置(自动生成 RTSP URL)
[isapi_write]     # 可选:写回相机编码参数
[layout]          # 默认布局网格
[layoutN]         # 各布局的摄像机排列
[title]           # 标题栏
[plc]             # PLC 连接参数
[plc_rules]       # PLC 位号 -> 布局映射规则
[auto_reboot]     # 自动重启调度

自动重启配置

[auto_reboot]
enable = 0        # 0=禁用(默认) 1=启用
period = daily    # daily=每天  weekly=每周
time = 03:00      # HH:MM 24小时制
weekday = monday  # weekly 时有效: monday~sunday

部署

一键部署到新主机

需要 sshpass(脚本会自动安装)。

# 默认部署到 192.168.1.243(root/123456)
./deploy/deploy.sh

# 指定目标机
./deploy/deploy.sh -i 192.168.1.100 -u root -p mypass

# 编译后部署
./deploy/deploy.sh -c

# 只打包不部署
./deploy/deploy.sh -n

脚本自动完成:编译 → 打包 → scp 传输 → 远程执行 install.sh,无需手动干预。

手动部署

# 1. 本机打包(产物在 deploy/ 目录)
./deploy/pack.sh

# 2. 传到目标机
scp deploy/rtsp_multi_view_aarch64_*.tar.gz root@192.168.1.243:/tmp/

# 3. 远程安装
ssh root@192.168.1.243
cd /tmp && tar xzf rtsp_multi_view_aarch64_*.tar.gz
cd rtsp_multi_view_deploy && ./install.sh

本地安装

sudo ./install.sh     # 安装(开机自启)
sudo ./uninstall.sh   # 卸载

目标机服务管理

systemctl start rtsp_multi_view    # 启动主程序
systemctl start auto-reboot        # 启动自动重启调度
systemctl status rtsp_multi_view   # 查看状态
journalctl -u rtsp_multi_view -f   # 查看日志