vdi-cloud/docs/rdp-vs-moonlight-comparison-20261028.md

4.1 KiB
Raw Blame History

RDP 与 Moonlight 实测对比(2026-10-28)

测试环境

终端:RK3528 PRO DDR4,Armbian 25.05,aarch64,LightDM + Xorg
显示器:1920×1440 @ 75Hz
云桌面:VM 100(win10-test),Proxmox VE 9.2.21,节点 starhe
终端到云桌面:192.168.1.188 -> 192.168.1.70,同一局域网 WiFi

服务端显示环境改造(本次关键前提):

改造前:Microsoft Basic Display Adapter,1920×1080 @ 1Hz
改造后:Virtual Display Driver 8.35.11.365,1920×1080 @ 60Hz

改造前 Sunshine 抓不到稳定帧(1Hz),改造后可正常编码。

对比数据

指标 RDP(当前 kiosk-shell) Moonlight 1080p30 Moonlight 1080p60
协议/编码 RDP GFX,CPU 软解 H.264 / libx264 软编 H.264 / libx264 软编
分辨率 1920×1440 1920×1080 1920×1080
终端 CPU 约 111%(单核近满载) 约 26% 约 26%
终端内存 约 232 MB 约 192 MB 约 165 MB
终端温度 约 58~65℃ 约 56℃ 约 53℃
实际帧率 无可靠统计(观感为低帧+卷帘) 12.83 FPS 22.79 FPS
网络丢包 未测 0.00% 0.00%
网络抖动丢帧 未测 0.08% 15.28%
网络延迟 未测 2 ms 6 ms
主机处理延迟 未测 14.4 / 27.6 / 平均 18.1 ms 18.8 / 78.3 / 平均 38.2 ms
平均渲染耗时 未测 3.34 ms 46.26 ms
画面观感 卷帘、翻页 完整清晰,无撕裂 完整清晰,无撕裂

结论

  1. 卷帘问题不是 RDP 协议的限制,是当前 RDP 客户端实现路径的问题。 Moonlight 在同一台盒子、同一台云桌面、同一网络下画面完整清晰,无卷帘无撕裂, 抓屏确认 1080p 画面文字锐利、任务栏时间正确。

  2. Moonlight 的瓶颈在服务端,不在终端,也不<E4B99F><E4B88D><EFBFBD>网络。 1080p30 时网络丢包 0.00%、延迟 2 ms、渲染 3.34 ms、终端 CPU 26%, 但实际帧率仅 12.83 FPS;1080p60 时主机处理延迟升到平均 38.2 ms、渲染 46.26 ms。 服务端当前使用 libx264 软件编码(VM 内无 NVIDIA 直通,nvidia-smi 不存在), 4 核 CPU 同时承担 1080p 编码与桌面捕获,是帧率上限的真正原因。

  3. RDP 路径的 CPU 代价约为 Moonlight 的 4 倍(111% vs 26%), 因为 RDP 走 FreeRDP GDI -> CPU 内存复制 -> QImage/QPixmap -> QLabel -> Xorg, 而 Moonlight 只做一次解码和一次窗口呈现。

  4. RK3528 VPU 硬解在当前 moonlight-qt 6.2.0 下不可用。 h264_v4l2m2m / hevc_v4l2m2m / hevc_v4l2request 均报 Could not find a valid device,即使盒子存在 /dev/mpp_service、/dev/rga 和 /dev/dri/renderD128。需 Rockchip MPP FFmpeg 补丁或 V4L2 request 驱动。

后续建议

优先级从高到低:

  1. 服务端 GPU 直通:将宿主机 GTX 965M(PCI 01:00.0,IOMMU Group 2 独占) 直通给 VM 100,使 Sunshine 可用 NVENC 硬编码。预期把 1080p 帧率从 13 FPS 提升到 60 FPS,同时释放服务端 CPU。需先确认内核 intel_iommu=on、 vfio-pci 已绑定,以及该笔记本 GPU 的 vBIOS ROM 提取。
  2. 消除帧率随请求升高而抖动(60 FPS 时抖动丢帧 15.28%):服务端稳定后复测。
  3. RK3528 硬解适配:解决 V4L2 request/m2m 设备缺失,这是达成 4K 的前提。
  4. 协议选型建议:
    • 若 GPU 直通可行,Moonlight 在 CAD/3D/视频场景优于 RDP,建议按产品方案采用双协议: 普通办公用 RDP,GPU/CAD/3D 用 Moonlight;
    • 同时保留并优化 RDP 路径的 Weston + MPP/VPU + DMABUF/DRM 零拷贝改造, 使 RDP 在办公场景达到可接受体验。
  5. 当前 Moonlight 未接 VPU,1080p 软件解码仅 26% CPU 但 4K 会超出能力, 需在 4K 目标确定后优先解决硬解。

附:本次变更

  • VM 100:安装 Virtual Display Driver(MttVDD),提供 1920×1080@60Hz 虚拟显示器。
  • VM 100:安装 Sunshine v2026.914.233613,Web UI 账号 admin / vdi12345。
  • 终端:安装 moonlight-qt 6.2.0,已与 Sunshine 完成配对。
  • 终端:kiosk-shell 自启动已恢复(~/.config/autostart/vdi-kiosk.desktop)。