降低屏幕共享延迟需要从采集、编码、传输、解码渲染四个环节入手,以下是一些经过实战验证的有效方法:

降低采集源延迟(最容易被忽略)
- 使用有线网络:Wi-Fi(无线网络)天生存在射频干扰和抖动,特别是在多人共享带宽时,优先使用千兆以太网(有线网络)。
- 刷新率匹配:如果物理屏幕是 60Hz,共享分辨率设为 30fps(每秒传输帧数)即可,过高的帧率会增加采集负担,但不会明显提升观感。
- 关闭屏幕特效:Windows 中关闭透明效果、动画、桌面壁纸幻灯片;macOS 中关闭“动态桌面”,这些特效会消耗 GPU(图形处理器)资源进行合成,增加采集延迟。
- 硬件编码优先:尽量使用 GPU 进行编码(NVIDIA NVENC、AMD AMF、Intel QSV),软件编码(x264)画质虽好,但延迟控制不如硬件编码。
优化编码与传输协议(核心)
- 选择低延迟传输协议:
- WebRTC:目前延迟最低(< 200ms),许多现代工具(Google Meet、Discord 屏幕共享、腾讯会议)底层基于此。
- NVIDIA GameStream / Moonlight:专为低延迟游戏流设计,延迟可 < 10ms,适合局域网内共享。
- RTSP(实时流协议)/ SRT(安全可靠传输协议):专业直播工具,支持 UDP(用户数据报协议)模式,延迟可控。
- 放弃 TCP(传输控制协议):TCP 重传机制会因丢包导致累积延迟,使用 UDP 或 QUIC(基于 UDP 的快速 UDP 互联网连接协议),允许丢包直接跳过,保持流畅。
- 调整编码参数:
- 码率:不是越低越好,码率过低会导致编码器花更多时间处理细节(增加延迟),建议 1080p 下 4-8Mbps(兆比特每秒)。
- 编码预设:NVIDIA NVENC 选
P1(性能优先)或P2;X264 选ultrafast或superfast。 - GOP(关键帧间隔):设为 0 或 1(即所有帧都是关键帧),这会显著增加带宽,但能消除解码等待。
- 关闭 B 帧:B 帧需要参考前后帧,会增加延迟,仅用 P 帧或 I 帧。
网络层面优化
- QoS(服务质量):在路由器上将屏幕共享设备的流量设为高优先级,许多游戏路由器自带此功能。
- MTU(最大传输单元):适当降低 MTU(如从 1500 降到 1400),可减少大帧拆分带来的延迟,不建议无脑降低,需测试。
- 避免带宽争抢:共享时,暂停其他大流量操作(如视频下载、云盘同步、系统更新)。
接收端优化
- 开启硬件解码:接收端 GPU 解码(DXVA、VAAPI、VideoToolbox)比 CPU(中央处理器)软解延迟低且省电。
- 关闭缓冲:播放器或接收软件中,关闭“平滑播放”、“缓冲优化”或“预加载”,这些功能是为网络波动设计的,会增加 1-3 秒延迟。
- 降低分辨率:如果接收端显示器是 1080p,无需强制接收 4K 流,发送端降低分辨率(如 720p@30fps)可大幅降低解码压力。
特定场景工具推荐
| 场景 | 推荐方案 | 预期延迟 |
|---|---|---|
| 局域网游戏 / 极致流畅 | Moonlight + NVIDIA 显卡(使用 NVENC 编码 + UDP 传输) | < 5ms |
| 跨地区远程会议 | Zoom / 腾讯会议(强制开启“性能优先”模式) | 50-150ms |
| 技术演示 / 代码共享 | Discord 屏幕共享(禁用“优化推流”)或 TeamViewer 15(选择“速度优先”) | 100-300ms |
| YouTube/Twitch 直播 | 使用 SRT 协议推流到 OBS Studio(需服务器支持) | 1-3s(软件级低延迟) |
重要提示:上述所有方法中,关闭接收端的缓冲是提升感知流畅度最显著的一步,如果你发现画面虽然延迟低但频繁卡顿,往往是网络抖动导致,此时应优先解决网络质量(更换有线连接),而不是增加缓冲。
最后检查清单:
- 发送端:编码器选 NVENC/AMF,预设选最低延迟。
- 网络:两端均使用有线连接。
- 接收端:关闭缓冲,开启硬件解码。
- 工具:选择基于 WebRTC 或 UDP 的软件。
测试时,可以使用 OBS Studio 的“监控”功能(右键点击“全屏投影”)来观察原生延迟,再对比你通过网络工具看到的延迟,以定位瓶颈是在网络还是本地处理。