串流方案对比与配置经验

1. 方案对比

对比过多款串流方案,各有优劣

1.1. 远程桌面

微软官方方案,品质保证。缺点是算法缘故,只适合画面变化不太的应用,比如日常办公或者写代码,游戏就别想了。优点是流量消耗较少

1.2. parsec

优秀的串流平台,自带 NAT 打洞和中继,不同设备只要登录同一账号就可以互相搜索到。抓取显示器显示并编码视频流传输,算法优秀,对游戏非常友好,操作延迟相当低。

缺点是账号登陆逻辑有些抽象,一段时间不用就要重新登陆,公网 IP 变动后每次登录都要邮件验证,造成一些麻烦。

1.3. moonlight

同样是优秀的串流工具,和 parsec 一样抓取显示器显示并编码视频流传输,算法优秀,对游戏友好,操作延迟低,体验上和 parsec 区别不大。

最大的优势是项目开源,不需要注册登录,隐私性较好。缺点是不像 parsec 一样自带设备发现和 NAT 打洞,需要自己折腾组网或者端口映射。


最后比较下来还是选择了 moonlight,开源项目隐私性较好,且如果遇到 BUG 很容易快速向开发者反馈。穿透方面,个人使用 Tailscale 虚拟组网,实现远程串流。

2. 控制端配置

直接在网站 / Google Play 下载 moonlight 应用,或者去项目 github 找安装包安装

3. 受控端配置

  • 如果电脑上有英伟达显卡,可以启用其 GameStream 功能,然后 moonlight 就可以直接连接上 PC 进行串流
  • 目前更推荐的是 moonlight+sunshine 方案,在 PC 安装 sunshine 服务端。据说 sunshine 的性能已经优于英伟达自带的 GameStream,而且项目开源,可配置项多,最重要的是非 N 卡电脑同样也可以使用。

4. 远程串流

如上面所说,moonlight 不像 parsec 一样有设备发现和自带 NAT 打洞支持,需要控制端与受控端位于同一局域网中,或者可以通过 IP 地址直连,如果要远程串流得折腾端口映射。

个人建议配合 zerotier/tailscale 虚拟组网使用,组网后不管电脑是否在身边,都可以随时通过固定的内网 IP 串流自己的电脑。虚拟组网方案相比公网端口映射有更高的安全性。

可以参考另一篇《自建 Tailscale 服务并实现多设备组网互联》

5. 息屏串流问题

和 Windows 自带远程桌面不同,moonlight 通过抓取显示器显示内容进行串流传输,因此当电脑显示器关闭或者笔记本合盖时,显卡不会进行视频输出,此时 moonlight 串流也就无法运行了。

解决方案:

  • 一直亮着屏串流
  • 淘宝十几块买个 HDMI 欺骗器插到电脑上。欺骗器可以模拟一个虚假的显示器,使电脑屏幕关闭后显卡仍然会输出视频流,进而可以被英伟达客户端 /sunshine 捕获到
  • 安装虚拟显示器驱动,实现和 HDMI 欺骗器相同的效果。这方面的开源项目不少,推荐一个体验下来较为不错的开源虚拟显示驱动项目:nomi-san/parsec-vdd
  • 使用魔改版内置虚拟显示器的 Sunshine 版本,比如 Sunshine 基地版等

串流方案对比与配置经验
https://blog.openyq.top/posts/11510/
作者
yqs112358
许可协议