投屏延迟从哪来:
编码、传输、解码、渲染四段拆解

“投屏延迟高”是个笼统描述。先用四段拆解定位瓶颈,再决定是换线、换网络,还是调参数。

投屏延迟投屏卡顿手机投屏流畅度
投屏延迟从哪来:编码、传输、解码、渲染四段拆解
诺程投屏 · 连接与投屏NUOCHENGCAST

从手机屏幕亮起,到你电脑上看到这一帧,中间至少经过四段:手机编码 → 链路传输 → 电脑解码 → 渲染上屏。任何一段拖后腿,整体都会感觉“慢半拍”。

第一段:手机编码

手机要把画面压成视频流,这一步在手机侧完成,受三件事影响:

  • 分辨率与帧率: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 秒,取决于机型、分辨率与网络。这个数字比“平均延迟”更贴近实际体验——你点开一台设备,多久能看到画面。

定位顺序

遇到“卡”,按这个顺序排查:

  1. 单台 USB 是否流畅?卡 → 线材 / 供电 / 机型编码。
  2. 单台无线是否流畅?卡 → Wi-Fi 信号 / 频段 / 路由器。
  3. 多台才卡?→ 看 CPU 占用、分辨率是否全开、有没有分档。
  4. 操作跟手但画面糊?→ 降分辨率或提高码率,属于参数取舍。
  5. 延迟随时间累积?→ 编码排队或解码队列积压,降帧率。

更多参数与实测说明见功能全景的投屏引擎章节。

常见问题

投屏延迟多少算正常?

USB 直连下通常感觉不到明显延迟;无线同局域网会略高。首帧 0.7–1.5 秒属于常见范围,具体随机型与网络变化。

提高码率能降低延迟吗?

不能。码率影响画质,延迟主要取决于分辨率、帧率、编码排队与解码队列。高码率在带宽不足时反而增加延迟。

为什么多台一起投屏就卡?

常见原因是所有设备都按高分辨率推流、解码与渲染没做分档,CPU 与显存被吃满。按可见性降档通常能立刻改善。

公测进行中 · 前 500 位终身免费

一台电脑,先管住 2 台手机。

下载后插上设备即可体验;未授权也能同时投屏 2 台。现在领取激活码,后续升级与技术支持同样免费。

下载 v1.0.5

Windows 10 / 11 x64 · 安装包约 140 MB