spacedesk的完美替代方案

spacedesk所解决的需求是将各类闲置设备的屏幕当作PC额外的显示器。这实际上是两个独立功能的组合:

  • 虚拟显示器:一个驱动,欺骗系统有个显示器
  • 串流:捕获虚拟显示器上的画面,串流到别的设备上

谷歌检索后发现,这两样东西对于游戏串流工具(比如Parsec)的用户来说早就熟识了。

前段时间Parsec被墙了,当然这不是什么大障碍,不过如今也有更好的方案了。

虚拟显示器驱动这部分可选项相当多,我选了一个Rust写的:virtual-display-rs,简单易配置,功能完备。

串流这部分,选择Moonlight+Sunshine组合。局域网下延迟低的恐怖,不玩音游的话体感就是0延迟。

由于实际需求是扩展屏幕,而所用的串流工具是为远程游玩游戏设计的,因此需要微调一些设置。

在Moonlight客户端将视频分辨率设置为本地。既然是扩展屏幕,分辨率完全一致才是好的,至少比例得一致(况且我用来扩展屏幕的板子是16:10这种异端比例)。输入设置什么的不管,毕竟我只是扩展屏幕不是想远程串流游戏。

Sunshine默认会捕获主显示器,可以在配置里改成虚拟显示器,Output Name可以用Sunshine安装目录下tools\dxgi-info.exe工具获得。

Sunshine默认会锁定主机的默认音频输出设备,如果有装Steam就是锁定了Steam Streaming Speakers,这会导致主机被静音,只能从客户端接收音频。对于游戏串流来说,这是合理的,对于扩展屏幕的需求来说就是倒反天罡了。在Sunshine配置里把虚拟音频输出设备设置为一个不存在的设备名称即可禁止该行为。(如果不用Sunshine而是GeForce Experience的话,也有这一行为,但是对此无可奈何)