在日常编码工作中,频繁在多个窗口间切换屏幕令人分神。我手头有一台屏幕素质优异的平板电脑,却一直未被充分利用。于是,我萌生了一个想法:能否将平板变为笔记本的无线副屏?经过一番探索,我成功通过 Sunshine + Moonlight 串流方案实现了这一目标,体验非常流畅。现将具体操作流程整理成文,以供参考。

环境与工具

软件工具:

  • Sunshine: 开源、跨显卡的串流服务端(主机端)
  • Moonlight: 跨平台的串流客户端(客户端)
  • ParsecVDisplay: 虚拟显示器驱动

操作系统:

  • Windows10 专业版

工具简介与协作原理

在开始操作前,了解这三个工具的分工至关重要:

  • Sunshine:这是运行在Windows电脑上的服务端软件。它负责高效捕获系统屏幕画面与音频,进行硬件编码,并通过网络流式传输。其跨显卡兼容性和低延迟特性,是高质量串流的基石。

  • Moonlight:这是安装在平板上的客户端软件。它负责接收来自Sunshine的音视频流,并在平板上进行高清、低延迟的解码与显示。同时,它将平板的触控或外接输入指令回传给电脑,实现交互控制。

  • ParsecVDisplay:这是一个虚拟显示器驱动。它的核心作用是创建一个虚拟的“第二块屏幕”,从而 “欺骗” Windows系统识别到额外的显示输出。我们将此虚拟显示器的内容通过Sunshine串流至平板,即可实现真正的多屏扩展,而非简单的屏幕镜像。

总结:ParsecVDisplay 创建副屏信号 → Sunshine 捕获并串流该信号 → Moonlight 在平板上接收并显示。三者协同,便将平板打造成了一个真正的无线副屏。

操作步骤

部署Sunshine服务端

在电脑上下载并安装 Sunshine。请注意,安装路径中不得包含中文字符,以避免潜在的运行错误。

安装完成后,默认会跳转至其Web配置界面。若未自动打开,您可以在系统任务栏的Sunshine图标上右键,选择 Open Sunshine,或在浏览器中手动输入 https://localhost:47990 进行访问。

进入 Configuration -> General 标签页,将语言切换为中文,记得保存。

再次右键任务栏Sunshine图标,选择 Restart 以重启服务并使配置生效。

配置Moonlight客户端并建立基础串流

在平板电脑上安装 Moonlight。

确保平板与电脑连接至同一局域网(或直接连接至电脑开启的移动热点)。

启动Moonlight,它应能自动发现局域网内的电脑主机。点击连接,即可看到电脑主屏幕的镜像,此时基础串流已建立。

你可以在Moonlight的设置中,根据网络状况调整串流的分辨率、码率、帧率以及音频输出设备,以优化体验。

创建虚拟副屏

仅实现屏幕镜像尚不能满足副屏需求,我们需要创建一个独立的显示空间。

在电脑上下载并运行 ParsecVDisplay

启动软件,点击 Add Display,系统将自动创建一个虚拟显示器。

在该虚拟显示器上右键,可以进行详细配置:

  • Resolution: 设置分辨率。

  • Refresh Rate: 设置刷新率。

  • Orientation: 设置方向(横向、纵向等)。

关键项:记录 \\.\DISPLAYx(x为数字)的值,下一步将用到。

配置Sunshine串流虚拟屏幕

现在,我们需要让Sunshine捕获并串流我们刚创建的虚拟屏幕。

打开Sunshine的Web配置页面,进入 配置 -> 音频/视频 标签页。

输出名称 字段中,填入上一步记录的 \\.\DISPLAYx 值。

(可选)配置音频:若希望电脑扬声器统一输出声音,可进行如下设置:

打开设备管理器 -> 声音、视频和游戏控制器,在您正在使用的扬声器设备上右键,选择 属性 -> 详细信息 -> 属性,在下拉菜单中选择设备id,记录下面属性值。

在Sunshine的 音频输出设备虚拟音频输出设备 字段中,均填入该值。

同时确保 安装Steam音频驱动程序 选项处于禁用状态。

完成所有配置后,务必在任务栏右键Sunshine图标,选择 Restart 以重启服务。

验证与最终设置

从平板端的Moonlight断开连接,然后重新连接。此时,平板应显示为一块空白或带有壁纸的“新屏幕”。

在电脑上打开 设置 -> 系统 -> 显示。你将看到两个屏幕标识,其中一块即为你的虚拟副屏。

你可以在此界面中,通过拖拽屏幕图示来调整物理屏幕与虚拟副屏的相对位置,并可分别为它们设置合适的分辨率与缩放比例。

  • 重要提示:在Sunshine中修改任何配置后,都必须执行 Restart 才能生效。

常见问题与解决方法

  1. 忘记Sunshine的Web界面用户名/密码

解决:卸载Sunshine后重新安装,即可重置凭据。

  1. 启用虚拟显示器后,Sunshine报错:Fatal: Unable to find display or encoder...

解决:

  • 检查Sunshine 配置 -> 音频/视频 -> 输出名称 是否与ParsecVDisplay中显示的 \\.\DISPLAYx 完全一致。
  • 重启Sunshine服务。
  1. Moonlight端提示串流终结,检查防火墙和端口转发规则

解决:

  • 首先,确认Moonlight中输入的电脑IP地址正确无误。

  • 其次,检查虚拟屏幕配置是否正确(参考问题2的解决方案)。

  • 再次,重启Sunshine服务。

  • 最后,对于笔记本电脑,请进入BIOS/UEFI设置或显卡控制面板,关闭“独显直连”模式,切换至“混合图形”模式,然后重启电脑。此举是因为独显直连模式下,核显被屏蔽,可能导致Sunshine无法正常捕获屏幕。混合模式能自动调度核显与独显,在保证性能的同时兼顾兼容性与能效。