设备墙的本质是“同时渲染很多路视频”。渲染路数与分辨率、帧率、解码方式直接相乘,所以性能问题的答案通常不是换电脑,而是别让不需要画面的设备继续全量推流。
先算一笔账
假设每台 720p 30 帧,20 台就是 20 路解码 + 20 路渲染。如果把其中 15 台降到保活档(约 144p / 4fps),解码与渲染压力大约只剩原来的四分之一到三分之一。CPU、显存、总线带宽都跟着降。
这就是分档的价值:不是“省一点”,而是数量级差别。
诺程投屏的四档模型
- 焦点档:你正在操作的那台,参数最高,保证跟手。
- 可见档:在屏幕上看得见,但没在操作。按卡片尺寸从 720 逐级降到 540 / 360 / 240 / 180。
- 保活档:不可见但仍需保持连接,约 144p / 4fps / 1Mbps,只维持会话与状态。
- 不推流:明确不需要画面,停止视频流,只保留控制通道。
再叠加 CPU 保护:持续超过 70% 自动降档,低于 60% 后带防抖回升,避免在阈值附近反复横跳。

为什么“按卡片尺寸降分辨率”很重要
设备墙通常一屏放 20–100 张卡片。每张卡片实际显示只有一两百像素宽,给它 720p 的画面完全是浪费——既占解码资源,又在缩放时失真。
按卡片实际显示尺寸选择推流边长,是性价比最高的一步:肉眼几乎看不出差别,资源占用却明显下降。
渲染路径:零拷贝
常规路径是“解码 → 转色彩空间 → 拷到显存 → 显示”,中间有额外拷贝。零拷贝把色彩空间转换放到显卡上,直接显示硬解后的帧。
实测数据:332×720 画面下,开启零拷贝后 CPU 占用从约 22.66% 降到约 13.75%;472×1024 下 YUV→BGRA 帧处理约 0.72 毫秒。设备越多,这个差值越关键。
独立副屏:别让主屏和副屏互相拖累
Android 10 及以上支持独立副屏。副屏有独立会话与显示标识,主屏与副屏可以同时操作。要注意:
- 副屏参数(如显示密度)修改后需要重启副屏才生效;
- 副屏也是真实推流,会占额度与资源,不要以为它“免费”。
卡顿排查清单
- 看分辨率:是不是所有设备都在 720 以上?
- 看可见性:滚出屏幕的设备有没有降到保活档?
- 看 CPU:是不是长期贴着 90% 以上?是的话先降档,而不是加风扇。
- 看显存:几十路 1080p 会吃显存,显存不足会掉帧且不易察觉。
- 看 USB 带宽:同一 HUB 下设备过多,带宽共享导致花屏。
- 看网络:无线设备集中在 2.4GHz,互相干扰。
扩容节奏建议
- 先用 10 台跑满一天,记录 CPU 峰值与掉线次数;
- 再加到 20 台,观察是否需要给设备分组、拆分机器;
- 超过 50 台,按区域或业务拆成多台电脑,每台管一组,比单机硬撑更稳。
硬件的规划可以看跑 20/50/100 台手机怎么配电脑和网络;软件侧的分档参数见功能全景。
常见问题
设备墙最多能放多少台?
软件侧可以渲染上百张卡片,但能不能实时推流取决于分档设置与硬件。建议先用实际设备数的一半做压力测试。
不可见的设备还要保持连接吗?
取决于业务。需要随时接受任务就选保活档;完全不需要就选“不推流”,只留控制通道。
降低分辨率会影响点击准确性吗?
不会。同步控制的坐标换算基于设备真实分辨率与显示区域,不依赖推流边长。