从手机屏幕亮起,到你电脑上看到这一帧,中间至少经过四段:手机编码 → 链路传输 → 电脑解码 → 渲染上屏。任何一段拖后腿,整体都会感觉“慢半拍”。
第一段:手机编码
手机要把画面压成视频流,这一步在手机侧完成,受三件事影响:
- 分辨率与帧率:1080p 60 帧的编码压力远高于 720p 30 帧;
- 编码器:硬件编码器通常比软件编码省电、延迟低;
- 机型性能:中低端机在高分辨率下编码会排队,表现为延迟随时间累积。
实践上,卡片墙里不需要每台都 1080p。可见档 720、保活档 144p 是更合理的选择。
第二段:链路传输
- USB:延迟最低,但受线材质量与 USB 带宽影响。劣质线会表现为花屏、掉帧、随机断开。
- Wi-Fi:受信号强度、频段、带机量影响。2.4GHz 在几十台设备下基本不可用。
- 公网 / 云手机:多一层网络抖动,延迟取决于服务商机房与你的出口。
判断方法:同一台手机,USB 流畅、无线卡,瓶颈就在链路。

第三段:电脑解码
解码是把视频流还原成图像。两个关键点:
- 硬解 vs 软解:硬解走显卡,CPU 占用低;软解在设备多时会把 CPU 吃满。
- 单线程低延迟模式:解码不是为了吞吐,而是为了“尽快出这一帧”,队列越短延迟越低。
诺程投屏用 FFmpeg 单线程低延迟模式,并把配置包前置到下一帧,减少解码等待。
第四段:渲染上屏
最后一段最容易被忽略。常见做法是“解码出一张图 → 转成 RGB → 再拷到显存 → 显示”,中间多了一次甚至两次内存拷贝。
优化做法是零拷贝:硬解后的帧直接在显卡上做色彩空间转换并显示。
诺程投屏在 332×720 画面下的实测:开启零拷贝后 CPU 占用从约 22.66% 降到约 13.75%;472×1024 下 YUV→BGRA 的帧处理约 0.72 毫秒。这类优化单看不惊人,但乘以 30 台就是能不能跑满的区别。
参数怎么调
诺程投屏提供三档预设,加上两档自动状态:
- 流畅:480 边长 / 20fps / 4Mbps,资源优先;
- 均衡:720 边长 / 30fps / 8Mbps,默认推荐;
- 清晰:1080 边长 / 60fps / 12Mbps,大屏与精细操作;
- 保活档:约 144p / 4fps / 1Mbps,不可见但仍需保持连接;
- 不推流:停止视频流,只留控制通道。
另外,可见档会按卡片尺寸从 720 逐级降到 540 / 360 / 240 / 180;CPU 持续超过 70% 自动降档,低于 60% 后带防抖回升。
首帧时间
从发起连接到画面出现,实测范围在 0.7–1.5 秒,取决于机型、分辨率与网络。这个数字比“平均延迟”更贴近实际体验——你点开一台设备,多久能看到画面。
定位顺序
遇到“卡”,按这个顺序排查:
- 单台 USB 是否流畅?卡 → 线材 / 供电 / 机型编码。
- 单台无线是否流畅?卡 → Wi-Fi 信号 / 频段 / 路由器。
- 多台才卡?→ 看 CPU 占用、分辨率是否全开、有没有分档。
- 操作跟手但画面糊?→ 降分辨率或提高码率,属于参数取舍。
- 延迟随时间累积?→ 编码排队或解码队列积压,降帧率。
更多参数与实测说明见功能全景的投屏引擎章节。
常见问题
投屏延迟多少算正常?
USB 直连下通常感觉不到明显延迟;无线同局域网会略高。首帧 0.7–1.5 秒属于常见范围,具体随机型与网络变化。
提高码率能降低延迟吗?
不能。码率影响画质,延迟主要取决于分辨率、帧率、编码排队与解码队列。高码率在带宽不足时反而增加延迟。
为什么多台一起投屏就卡?
常见原因是所有设备都按高分辨率推流、解码与渲染没做分档,CPU 与显存被吃满。按可见性降档通常能立刻改善。