☰
开源监控墙方案OpenMontage:普通PC如何组建多屏显示系统
2026/10/27 12:43:14 网站建设 项目流程

上个月帮一家集成商朋友收拾旧项目,十二路摄像头、五块显示器,原方案里塞了一台两万多的解码器,外加每年大几千的软件授权费。客户看到报价单直接犹豫了。我告诉他,这种体量的小型监控墙,其实还有另外一条路——开源软件OpenMontage。当天下午我们就在那台普通办公PC上把它装了起来,一个多小时过后,五块显示屏拼成了一面墙,十二路画面按预案轮巡,一直稳定跑到现在。

OpenMontage是什么?一句话讲清楚:它是基于Java的开源多屏监控墙管理软件。再往细了说,它通过服务端统一管理视频源和布局预案,通过客户端把操作系统识别到的多台显示器拼成一块“虚拟大屏”,用窗口的方式自由排布各路监控画面,支持RTSP、ONVIF等通用视频协议。你不用买专用解码器,不用被某个品牌绑死,一台PC加几块显示器就能搭出一个小型监控中心。这篇文章我就把从选型、部署到上线的完整过程写出来,整合一下这段时间用下来的经验,给正打算做监控墙、又不想被商业方案“割一刀”的朋友做个参考。

1. 选型分析:为什么平平无奇的OpenMontage值得单独写一笔

1.1 商业电视墙方案到底贵在哪

监控中心做大屏显示,大多数集成商的第一反应是“解码器+拼接屏+拼控矩阵”。如果项目预算充足,这套方案确实省心——厂家把所有事都封装好了,现场工程师调试一下就能交付。但做小项目的都懂,问题往往出在预算和边界上。

品牌解码器动辄上万,而且一般不是单独卖的。你买A家的解码器,最好连拼控、管理平台一起配,否则摄像头兼容、平台对接、售后扯皮的事能让你怀疑人生。扩容更是“按路数收费”,原来上了16路,想扩到24路,不是装个软件、加个通道就行,而是再掏钱买授权。这类费用对小项目来说非常敏感,客户一算总价,整个项目就黄了。

后来我也试过用NVR自带的HDMI输出直连大屏,或者用普通PC跑客户端软件多开窗口。直连的问题是布局固定,没法灵活拖拽、没法做预案轮巡;客户端多开则是自己骗自己,几个窗口叠在一起,切换点位时手忙脚乱。想找一个“又能自由布局、又不用买高价授权、又能跨品牌兼容摄像头”的方案,市面上确实不多。OpenMontage就是在这样的背景下被我从开源社区里挖出来的。

1.2 OpenMontage的价值点在哪里

这个项目本身不算新,代码托管在GitHub上,来源是欧洲一家金融科技公司内部的工具,后来开源出来。项目虽然低调,但设计思路很清晰:它把自己定位成显示墙的“编排层”,而不是大而全的安防平台。

用下来,OpenMontage有几个实打实的优点:

  • 免授权、成本透明。软件本身免费,除了给一台PC配几块显示器之外没有任何隐藏费用。哪怕以后换客户,也可以重复部署。
  • 硬件选型自由。不用绑定品牌解码器,普通PC加任意支持扩展输出的显卡就行。显示器规格也随意,同一台控制机上混接1080P和2K屏也能排布。
  • 协议通用。摄像头和NVR只要支持RTSP或ONVIF,基本都能接。品牌缠斗在这里不存在的,海康、大华、宇视、天地伟业各家的流都能拉到同一面墙上显示。
  • 预案切换灵活。把某个时间段要看的画面组合存成预案,一键切换;再配一组轮巡,白天看大门出入口,晚上看周界和库房,很适合园区、厂房、仓储这类场景。

对集成商来说,OpenMontage还能帮你在投标时压缩硬件成本。省下来的解码器、拼控机部分预算,可以挪到更好的显示器、更稳的交换机上,客户满意度反而更高。

1.3 同样要知道它不做什么

把OpenMontage夸了半天,也得说清楚它的边界。它不是一个视频管理平台NVR,也不是智能分析系统。具体来说,它不管录像、不做移动侦测、不提供人脸识别,也没有报警联动。你在监控墙里看到一路画面突然卡住或者丢失,OpenMontage能提示流异常,但真正负责“录像别丢、告警别漏”的,还是背后的NVR或综合安防平台。

所以做项目时,正确的姿势是把它当作整个监控体系里的一层“显示组件”:存储、录像、告警走原有NVR/平台,OpenMontage只负责把需要上墙的画面漂亮地、按预案地显示出来。这样分工,每个工具做自己擅长的事,系统才不容易翻车。

2. 先把工作模型弄明白:显示器、虚拟大屏与视频流的关系

2.1 从“一块超宽桌面”说起

OpenMontage上手难点不在软件本身,而在理解它的显示模型。它默认你有一台控制机,这台机器的显卡同时接了好几块显示器。操作系统把显示器设置成“扩展模式”之后,多块屏幕在系统层面就变成了一块超大桌面,整块桌面有总的分辨率,例如四块1080P屏按2×2排列,桌面就是3840×2160。

OpenMontage做的事情,就是在这块“超大桌面”上摆显示窗口。你创建一个窗口,指定它的坐标、宽高,然后把某一路RTSP视频流绑给它。窗口可以任意跨屏——比如你有一路全景枪机画面很重要,想让它在四块屏中最大的那块上单独显示,没问题;想在同一块屏上分出4个区域显示4路画面,也可以。这种“窗口+坐标+视频源”的方式,比传统方案里“硬绑到某个输出口”灵活得多。

对没接触过拼接墙的人,可以把它想成在电脑桌面上调整视频播放器窗口。区别是这里桌面横跨多台显示器,而窗口由服务端统一调度,不是人手去拖。

2.2 服务端、客户端与控制端的分工

OpenMontage部署形态一般分为两部分:

  • 服务端:负责保存所有配置,包括显示器布局、视频源列表、预案信息、轮巡计划。它就像一个“大脑”,集中管理所有状态。
  • 客户端:运行在连接显示器的控制机上,负责把服务端下发的预案变成实际画面。视频解压和渲染都在客户端完成,窗口大小调整也在这里实时生效。

日常操作大多通过Web管理界面完成:新增一个摄像头、改一版布局、保存一个新的预案,这些变更会即时同步到客户端。我刚接触时犯过一个错误,以为客户端也要一台台去装去配置,其实只要服务端把配置改好,客户端拉到任务就会自动执行。理解了这个分工,后面排查问题会轻松很多——画面异常先看客户端日志,预案没生效先看服务端配置。

2.3 视频流从哪里来

OpenMontage本身不生产视频流,它消费的是标准RTSP流。常见的来源有三种:

  1. 摄像头直连:直接把摄像头主码流或子码流的RTSP地址填进去。适合点位少、连接数够用的小系统。
  2. NVR转发:摄像头先接入NVR,OpenMontage再从NVR拉流。这种方式对摄像头本身压力小,也方便NVR统一做录像和流媒体转发。
  3. 流媒体服务转推:用ffmpeg、ZLMediaKit这类工具做音视频流转发,把不兼容的编码格式统一转成RTSP再给OpenMontage。场景比较少见,但真遇到老摄像头搞不定时很管用。

协议层面有一点要提前注意:RTSP只是信令,真正决定兼容性的还是视频编码格式。大多数IPC默认走H.264,兼容性极佳;现在很多新摄像头主推H.265,省带宽是真省,但老版本OpenMontage或者底层Java媒体库对H.265的支持不一定到位。遇到花屏、黑屏、无法解码,第一步就检查编码格式,把摄像头临时切成H.264子码流试试,问题大概率能解决一半。

3. 一步一步部署:一台普通PC怎么变成拼接墙控制机

3.1 硬件准备与运行环境

OpenMontage对硬件的要求不夸张,但也不是随便一台电脑就能完美带起来。我这台测试机是i5-8500处理器、16GB内存、GTX 1050显卡,接4块24寸1080P屏,同时解码显示8路主码流画面,CPU占用率大概在三成到五成之间浮动。如果你要带更多路数,建议把内存加到32GB,显卡选带硬件解码单元的型号。

操作系统方面,官方支持Linux和Windows。我主力环境是Ubuntu 22.04 LTS,Windows也跑过,稳定性略差点,主要差在显卡驱动和显示器排列不稳定。运行环境必须有Java,我用的是OpenJDK 17,具体版本要求看发行包说明,装好后命令行验证一下:

java -version

版本号正常输出就可以继续了。

3.2 安装OpenMontage第一步:拿到发行包

由于项目本身迭代节奏不快,安装非常简单。从GitHub仓库的Releases页面下载对应平台的压缩包,解压到固定目录,比如:

unzip openmontage-xxx.zip -d /opt/openmontage cd /opt/openmontage/bin ./openmontage.sh start

启动后,服务端默认会占用一个HTTP端口,具体端口以发行包文档为准。如果服务端和客户端分离部署,记得在防火墙里放行相应端口。我第一次部署时就是忘了开端口,客户端一直连不上服务端,控制台报连接超时,白白排查了一个多小时。

想确认服务端是否起来,最简单的方法是用curl访问管理界面地址,返回页面代码就说明进程活着:

curl -I http://127.0.0.1:端口

3.3 多屏桌面设置:最容易翻车的一步

这步才是整个部署过程的重头戏。OpenMontage能不能按预期显示,取决于操作系统把多块显示器识别成了什么状态。如果驱动没装好、扩展模式没开启,后面怎么配置窗口都是白搭。

Linux下推荐用xrandr检查:

xrandr --listmonitors

正常会列出每块显示器的名称和分辨率,例如:

Monitors: 4 0: +*HDMI-1 1920/527x1080/296+0+0 HDMI-1 1: +HDMI-2 1920/527x1080/296+1920+0 HDMI-2 2: +DP-1 1920/527x1080/296+0+1080 DP-1 3: +DP-2 1920/527x1080/296+1920+1080 DP-2

如果只识别出一两块屏,多半是显卡驱动问题。NVIDIA显卡记得安装官方闭源驱动,不要用系统自带的nouveau,那个驱动在扩展多屏上经常闹脾气。Windows下则要注意显示设置为“扩展这些显示器”,不是“复制”。复制模式下所有屏显示相同内容,OpenMontage的窗口布局就会全部挤在一块屏里。

还有一个小坑:显示器排列要让物理位置和系统坐标一致。比如左侧物理摆放的那块屏,在系统里必须是坐标0的那块,右侧的是x轴递增的那块。OpenMontage并没有单独处理显示器的物理排列,全靠系统桌面坐标。设置完可以在桌面环境里把壁纸设成一张大图,拖动鼠标看光标能否顺滑跨越四块屏,能跨就说明桌面整体正常。

3.4 让OpenMontage开机自启

监控墙这种应用一开就是几个月,不可能每次重启都手动敲命令。生产环境务必做成系统服务。Linux下写一个systemd unit文件,注意启动用户和执行路径:

[Unit] Description=OpenMontage Server After=network.target [Service] Type=simple User=montage ExecStart=/opt/openmontage/bin/openmontage.sh start Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target

保存到/etc/systemd/system/openmontage.service,然后:

systemctl daemon-reload systemctl enable --now openmontage

Windows下则用“任务计划程序”创建一个开机启动项,或者直接放到启动文件夹里。总之原则是一条:部署完成后重启一遍机器,确认客户端能自动恢复画面,再交付给客户。

4. 把摄像头接上大屏:接入、布局与预案编排

4.1 先验证RTSP地址,别直接灌进去

很多朋友接到项目后,第一件事就是把摄像头IP地址、账号密码填进OpenMontage,结果发现画面没出来,回头还怪软件不好用。其实90%的问题出在RTSP地址本身就错了,或者摄像头编码格式与软件不兼容。

我自己习惯先用ffmpeg自带的ffprobe验证一遍:

ffprobe -rtsp_transport tcp -i "rtsp://username:password@ip:554/stream1" -show_streams -v error

能正常输出Video: h264等信息,说明这个地址可用。如果提示超时或者401认证失败,就先解决摄像头的RTSP配置问题,再进OpenMontage配置。务必确认流里包含的是H.264编码,H.265的话建议先去摄像头后台把主码流或子码流切成H.264,老版本OpenMontage对265的支持没你想的那么完美。

4.2 在OpenMontage里添加视频源

打开Web管理界面,找到设备管理或者视频源列表,点新增,填入三样东西:

  • 名称(比如“大门入口”“1号仓库”)
  • RTSP地址(就是上一步验证过的那一串)
  • 用户名和密码(如果地址里已经带了,可以留空)

保存之后,理论上视频源就进入可用状态了。建议每次只加三五个就回客户端看一次,确保能出画面再继续加下一个。批量添加一时爽,出问题排查那就是火葬场。

4.3 设计你的第一个布局预案

布局是OpenMontage的核心概念。一个布局描述的是“在超大桌面上的哪些区域,显示哪些画面”。比如说4块屏,你希望墙面上显示一个“田”字形的2×2网格:

  1. 左侧屏上半:大门入口
  2. 左侧屏下半:地磅通道
  3. 右侧屏上半:1号仓库
  4. 右侧屏下半:2号仓库

在布局编辑界面里,把整块桌面按坐标切分成4个窗口,给每个窗口绑定一个视频源,保存为预案。以后想切换成“8个窗格轮巡”,就新建另一个布局,绑定不同窗口数量和视频源。

这里有个经验:给关键点位设置固定窗口。重要画面永远在固定位置,让值班人员形成肌肉记忆,扫一眼就知道这是哪里。非关键画面放在轮巡窗口里,几十秒切换一次,既不漏看又省资源。

4.4 轮巡配置:让一块屏干多块屏的活

轮巡的意思是在一个窗口里循环播放多个视频源,间隔可以设置成10秒、30秒、1分钟。最常见的搭配是:重点点位用固定窗口显示主码流,次要点位用轮巡窗口显示子码流。

比如这轮巡窗口里放12路画面,间隔20秒,一个循环240秒,值班人员看完一圈大概4分钟,这个节奏对大多数园区场景来说刚刚好。间隔太短看不清细节,间隔太长容易漏掉关键事件。

轮巡功能上线前一定要现场观察一段时间,确认切换过程不黑屏、不花屏。如果切换时客户端卡顿厉害,多半是解码能力不够,把轮巡里的视频源都切到子码流,或者减少这一页轮巡的路数即可。

5. 上线之后遇到的那些坑:延迟、带宽与长期维护

5.1 画面延迟偏高,怎么压下去

监控墙最怕的画面问题就是延迟。要分清楚“网络延迟”“解码延迟”和“显示延迟”三件事。局域网摄像头到控制机的网络延迟通常只有几毫秒,客户感受到的卡顿主要来自解码缓冲和显示端缓冲。

在OpenMontage里,有几个方向可以调:

  • 传输模式选TCP:RTSP默认UDP时,丢包会导致画面马赛克和抖动;TCP虽然没有UDP那么轻盈,但稳定度好得多,尤其适合局域网这种拥塞可控的场景。
  • 减小解码缓冲:有的版本有缓冲帧数或延迟参数,默认可能偏大,调整到较小值后,画面延迟能明显下降。
  • 主码流/子码流策略:固定大屏上的重点画面用主码流保证清晰度;轮巡画面用子码流降低压力。

我自己实测,在千兆局域网、H.264子码流、TCP模式下,画面延迟能控制在300毫秒以内,对监控墙来说完全可接受。如果客户说“视频卡了几秒”,优先怀疑网络而非软件——比如交换机端口协商失败、网线质量差、摄像头码率超了上行带宽。

5.2 带宽与摄像头连接数估算

这是做监控墙项目最容易翻车的地方。OpenMontage的工作方式是每一个显示窗口都从源端拉一路流。同一个摄像头画面,同时出现在固定窗口和轮巡窗口里,那摄像头就要同时输出两路以上的流,NVR或摄像头的最大并发连接数是有限的。

做项目时一定要心里有数,给个简单的估算公式:

单路码率 × 并发路数 = 总带宽

比如1080P主码流按4Mbps算,墙面上同时显示16路,总带宽就是64Mbps,千兆交换机完全够用。但如果摄像头把码率飙到了8Mbps,同时显示32路,那就是256Mbps,加上录像、平台、其他业务流量,千兆交换机已经开始紧张了。建议上墙视频走独立VLAN,录像流量和上墙流量尽量分开,避免互相干扰。

连接数问题也要提前规划。一个摄像头最多支持几个RTSP并发连接,不同品牌差异很大。如果墙上有多个窗口同时拉同一路流,建议先接入NVR或流媒体服务,由它们做转发,摄像头只跟一个源对接,压力会小很多。

5.3 长期维护建议:锁版本、备份配置、保供电

OpenMontage毕竟是开源项目,维护节奏不像商业软件那样跟上,别指望“一键升级”“在线更新”。我的建议是:

  • 锁定一个稳定版本,在生产环境跑熟之后就冻结版本,不要为了新功能贸然升级。改动前先在测试环境完整验证一遍。
  • 定期备份服务端配置。OpenMontage的配置以文件形式存在服务端目录下,整个目录打包备份就行。我一般每次改完预案就手动备份一次,出问题十分钟内恢复。
  • 控制机接UPS。监控墙最怕断电后配置损坏,一块靠谱的UPS能解决很多莫名其妙的故障。
  • 定期重启客户端。长期运行的Java进程偶尔会有内存占用逐渐升高的问题,计划任务里每周凌晨自动重启一次客户端,画面会在几十秒内自动恢复,对业务影响极小。

其实OpenMontage后面完全可以继续扩展:比如用ffmpeg在前端做统一转码,把各种非标流整理成标准的RTSP再交给它显示;或者配合第三方平台开放API,实现报警弹窗自动切换预案。想要真正稳定的监控中心,不是靠某一样东西,而是显示调度、存储录像、网络链路、供电保障每个环节都站好自己的位置。

最后说点实在的。如果你手里就是这么个小项目——三五块屏、十几路摄像头、预算有限——那OpenMontage确实是值得放入备选清单的方案。它不花哨,但胜在免费、可控、协议开放,能帮你从“一套解码器吃掉整个项目利润”的困境里跳出来。当然,前提是你愿意花一个下午研究配置,并且把它当成一个需要维护的技术组件,而不是买回家就不用管的电器。下载安装包时认准官方仓库的Release文件,先在测试机上拿默认配置跑通Demo,再逐步接真实摄像头,这套流程走顺了,项目交付就稳了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询