上文说到, 使用 WebRTC + 浏览器 实现的 简单 局域网 投屏, 画面糊, 延迟高, 体验很不好. 无法实现 高帧率, 高码率, 低延迟.
咦, 怎么不试试 游戏级 局域网 串流 (投屏) 呢 ? 好像刚好符合这个需求呀 ~~
本文使用 sunshine + moonlight 开源软件 (组合) 实现 PC (ArchLinux) -> 平板 (Android) 的投屏.
这里是 (希望消除 稀缺 的) 穷人小水滴, 专注于 穷人友好型 低成本技术. (本文为 90 号作品. )
相关文章:
- Android 禁止侧载将正式实施,需要等待 24 小时冷静期
- 《使用 WebRTC 实现局域网投屏: PC (GNOME ArchLinux) -> 平板 (Android)》 juejin.cn/post/761935…
- 《在 Android 设备上写代码 (Termux, code-server)》 juejin.cn/post/751018…
- 《低功耗低成本 PC (可更换内存条) 推荐 (笔记本, 小主机)》 juejin.cn/post/747924…
参考资料:
- moonlight-stream.org/
- app.lizardbyte.dev/Sunshine/?l…
- docs.lizardbyte.dev/projects/su…
- github.com/moonlight-s…
- github.com/LizardByte/…
- github.com/moonlight-s…
- aur.archlinux.org/packages/su…
- wiki.archlinux.org/title/Arch_…
目录
- 1 安装软件
- 2 连接配置
- 2.1 Sunshine 配置
- 2.2 Moonlight 配置
- 3 串流测试
- 4 总结与展望
- 附录 1 软硬件配置
- 附录 2 推荐 AccuBattery (免费软件): Android 设备电池容量测量
1 安装软件
首先在 PC (台式机/笔记本/小主机) 上安装 Sunshine, 参考官方文档: docs.lizardbyte.dev/projects/su…
ArchLinux 用户建议从 AUR 安装: aur.archlinux.org/packages/su…
(0) 如果没用过 AUR, 首先安装软件:
sudo pacman -S base-devel
(1) 在 sunshine-beta-bin 的 AUR 页面, 点击 Download snapshot 下载快照.
(2) 解压快照:
> tar -xvf sunshine-beta-bin.tar.gz
sunshine-beta-bin/
sunshine-beta-bin/.SRCINFO
sunshine-beta-bin/PKGBUILD
sunshine-beta-bin/sunshine-capabilities.hook
(3) 编译软件包:
cd sunshine-beta-bin
makepkg
(4) 安装软件包:
sudo pacman -U sunshine-beta-bin-2026.423.21833.pkg.tar.zst
(可选) 然后根据 GPU 安装所需的硬件编码驱动:
sunshine 的可选依赖
cuda: Nvidia GPU encoding support
libva-mesa-driver: AMD GPU encoding support [已安装]
xorg-server-xvfb: Virtual X server for headless testing
至此, Sunshine 的安装就完成了.
然后在 Android 设备上 (比如 平板) 安装 Moonlight.
可以从 fdroid 安装, 详见文章: 《在 Android 设备上写代码 (Termux, code-server)》
2 连接配置
2.1 Sunshine 配置
(1) 先手动启动 sunshine 进行配置:
sunshine
然后在浏览器打开初始化配置界面: https://localhost:47990
设置登录密码.
登录之后:
配置界面:
通常默认配置即可.
(2) 设置自动启动:
systemctl --user enable app-dev.lizardbyte.app.Sunshine
2.2 Moonlight 配置
将平板连接到 wifi (局域网), 然后打开 Moonlight:
点击右上角的加号:
输入 PC (sunshine) 的 IP 地址:
此时会出现一个 带锁 的图标.
配置界面:
设置分辨率 (此处为 1920x1080):
设置帧率 (此处为 90fps):
设置码率 (此处为 50Mbps):
点击图标进行连接:
需要在 PC 的 sunshine 界面中输入 PIN (配对码):
其中 设备名称 就是给这个设备起一个名字 (随便输入).
配对成功, 显示的 DESKTOP 就可以用来串流整个屏幕了.
配对后图标就没有 锁 了.
3 串流测试
点击上面 moonlight 中的 DESKTOP 图标, 开始串流:
成功 !
从 moonlight 左上角的详情可以看出: 1920x1080 分辨率, 90fps 帧率, HEVC 硬件编码/解码. 网络延迟 2ms, 总延迟约 10ms.
主观感受: 延迟很低, 画面清晰.
撒花 !~~
4 总结与展望
如果同时追求 高画质 (高帧率, 高码率), 低延迟, 那么使用 游戏 级串流技术, 就是正解 !
俗话说, 好的名称就是成功的一半 (狗头). Moonlight (月光) / Sunshine (阳光) 软件 (组合) 的名称就很有意境: PC 主机通常具有 高算力, 就像 太阳 具有大质量. PC 输出的 显示画面, 就像太阳输出的辐射功率. 平板 算力更低, 就像月亮质量更小. 月光 是月球反射的阳光, 就像 平板 显示 PC 输出的画面.
这也证明了, 局域网投屏同时实现 高帧率, 高码率, 低延迟, 不是硬件的问题 (可以实现), 之前纯粹是软件问题 (WebRTC 协议, 或者 chromium 浏览器实现).
电子游戏 是促进人类发展的重要力量, 很多游戏相关的技术, 源于游戏, 但在更多非游戏领域有重要应用. 就说最近几年火的不行的 AI 吧, 没有 GPU 就没有如今的 AI, 而没有游戏就没有 GPU. 做人不能吃饭砸锅.
附录 1 软硬件配置
软件版本:
> uname -a
Linux S2L 6.19.14-zen1-1-zen #1 ZEN SMP PREEMPT_DYNAMIC Thu, 23 Apr 2026 06:56:44 +0000 x86_64 GNU/Linux
> gnome-shell --version
GNOME Shell 50.1
> sunshine --version
[2026-04-26 19:03:58.985]: Info: Sunshine version: 2026.423.21833 commit: 5cf5e8c1ceb0a0d3630851a09b19577a96bbe9b8
[2026-04-26 19:03:58.985]: Info: Package Publisher: LizardByte
[2026-04-26 19:03:58.985]: Info: Publisher Website: https://app.lizardbyte.dev
[2026-04-26 19:03:58.985]: Info: Get support: https://app.lizardbyte.dev/support
Moonlight (apk) 版本: 12.1
硬件配置:
PC: 处理器 r7-5825u (8 核 16 线程), 内存 64GB (DDR4-3200 双通道).
PC 显示器: LCD 分辨率 1920x1080, 刷新率 100Hz.
平板: 处理器 骁龙 870 (6G+128G), Android 13.
平板屏幕: OLED 刷新率 90Hz.
网络: PC 有线以太网 1Gbps, 平板 wifi 6 (5GHz, 链路速率 1200Mbps, WPA3), 红米路由器 ax5400.
附录 2 推荐 AccuBattery (免费软件): Android 设备电池容量测量
可以从这里下载: download.cnet.com/accubattery…
安装后界面如图.
窝觉的, 这个软件最重要的功能, 就是通过完整充电来检测设备电池的实际容量.
这个可以看出电池的损耗 (虽然测量精度不一定高), 特别是对于老设备, 方便换电池, 做到心中有数.
本文使用 CC-BY-SA 4.0 许可发布.