公司动态
Rpisurv画中画实现:showontop与force_coordinates高级布局教程
Rpisurv画中画实现showontop与force_coordinates高级布局教程【免费下载链接】rpisurvRaspberry Pi surveillance项目地址: https://gitcode.com/gh_mirrors/rp/rpisurv想用树莓派打造专业监控墙又不想所有画面都千篇一律地平均分割RpisurvRaspberry Pi surveillance这款开源监控软件通过showontop与force_coordinates两个高级参数就能轻松实现画中画效果主画面全屏显示、次要画面悬浮叠加像电视台导播台一样自由掌控每一路摄像头画面。本文将带你快速上手 Rpisurv 画中画布局配置。什么是 Rpisurv 画中画布局Rpisurv 默认会根据nr_of_columns自动计算每个摄像头画面的位置把屏幕平均切成 2x2、2x3 等网格。但监控场景往往需要重点突出主入口要全屏看得清收银台、仓库角落只要一个小窗口即可。此时就需要用到两个高级参数force_coordinates手动指定某一路流的屏幕位置左上角坐标 右下角坐标完全接管布局控制权showontop让该路流绘制在其它画面的上一层实现画面叠加两者组合使用就是 Rpisurv 画中画的核心玩法官方配置说明中明确写道showontop可与force_coordinates组合创建一个视频叠在另一个上面的画中画视图。Rpisurv监控配置文件在哪里安装 Rpisurv 后配置存放在/etc/rpisurv/目录/etc/rpisurv/display1.yml第一块显示器HDMI 1的屏幕与流配置/etc/rpisurv/display2.yml第二块显示器HDMI 2的屏幕与流配置/etc/rpisurv/general.yml通用配置一般无需改动双 HDMI 模式下两块显示器可分别配置不同的布局。项目源码中的示例配置文件为 display1.yml里面包含了完整的画中画演示用例是学习配置的最佳教材。最快配置方法手把手实现画中画下面是一个完整的画中画配置示例效果是主画面占满全屏另一个小窗口悬浮在左上角- camera_streams: - url: rtsp://user:pass192.168.1.100:554/videoMain force_coordinates: [0, 0, 1920, 1080] - url: rtsp://user:pass192.168.1.101:554/videoMain force_coordinates: [100, 100, 700, 500] showontop: True duration: 20坐标格式详解force_coordinates接收四个数字含义为第1个数字窗口左上角的x坐标从左往右第2个数字窗口左上角的y坐标从上往下第3个数字窗口右下角的x坐标第4个数字窗口右下角的y坐标以 1920x1080 分辨率为例[0, 0, 1920, 1080]就是全屏[100, 100, 700, 500]则是一个位于左上角的 600x400 小窗口。深入理解坐标计算与图层机制自动布局是如何工作的Rpisurv 在 Screen.py 中根据屏幕分辨率和nr_of_columns自动计算每个窗口的位置先算出列数再用math.ceil计算所需行数最后逐行分配坐标。这是默认的自动布局逻辑。force_coordinates 如何覆盖自动布局当某一路流配置了force_coordinates后在 CameraStream.py 的start_stream方法中强制坐标会直接覆盖自动计算的结果而其它未配置的流仍按原自动布局绘制——这就是混合布局的基础你可以只微调某一路画面其它画面保持不变。showontop 的图层原理Rpisurv 使用 dispmanx 图层机制渲染画面。配置了showontop的流其图层号会在基础图层上1从而绘制在其它视频之上。注意以下几点showontop仅对视频流有效imageurl图片流不支持配置了会直接报错使用showontop时请务必同时配置force_coordinates否则自动布局可能与你预想的位置冲突一旦开始使用force_coordinates该屏幕的布局责任就转移到你手上需要手动算好每个窗口的坐标避免互相遮挡官方演示配置拆解在 display1.yml 中内置了一个经典画中画演示第一路视频全屏播放第二路视频以force_coordinates: [100, 100, 700, 500]加showontop: True悬浮在左上角。启动 Rpisurv 后即可直接看到画中画效果非常适合验证你的树莓派环境。画中画实战技巧与注意事项如何计算悬浮窗位置小窗口通常放在屏幕四角避开主画面中心区域左上角[100, 100, 700, 500]右上角[1220, 100, 1820, 500]左下角[100, 680, 700, 980]右下角[1220, 680, 1820, 980]多屏轮播中的画中画Rpisurv 支持配置多个 screen 轮播force_coordinates与showontop对轮播完全透明——每个 screen 可以拥有完全不同的布局包括各自的画中画组合互不干扰。画面无法连接时怎么办当一路流不可连接时Rpisurv 会显示占位图并自动重新排列剩余画面。若所有画面都不可连接则显示全屏提示图 noconnectable.png画面正在建立连接时会显示 connecting.png。这些占位图均位于images/目录可自由替换为你自己的图片。常见问题与排错现象原因解决办法小窗口被主画面遮挡未设置showontop: True给悬浮流加上showontop: True画面重叠混乱坐标互相冲突重新计算各流坐标确保不重叠imageurl 报错图片流不支持 showontop移除 imageurl 流的 showontop修改配置不生效未重启服务执行sudo systemctl restart rpisurv完成配置后记得重启服务让修改生效。通过force_coordinates与showontop的组合你可以把 Rpisurv 从简单的网格监控升级为专业级画中画监控墙——主画面掌控全局关键区域随时悬浮可见真正发挥树莓派监控系统的全部潜力。【免费下载链接】rpisurvRaspberry Pi surveillance项目地址: https://gitcode.com/gh_mirrors/rp/rpisurv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考