串流是通过显卡捕获显示器画面并将其压缩作为视频流进行网络传输实现远程控制的技术,相比与其他远程控制方式,串流可以拥有更高的画面质量和帧率,是远程游戏的不二选择。
NVIDIA Experience和AMD Link都提供了对串流的支持,但目前两家的串流工具都已停止维护,目前比较主流的方案是sunshine+moonlight,其中sunshine作为串流的服务端,提供画面,moonlight作为串流的客服端,接受画面。
接下来以windows环境为例,介绍sunshine和moonlight的安装过程。
在sunshine的github主页中 LizardByte/Sunshine:Moonlight 的自托管游戏流主机。 — LizardByte/Sunshine: Self-hosted game stream host for Moonlight. 点击Release
,在最新的发布版本中展开Assets
面板,根据系统选择合适的版本,这里我下载了windows下的安装包,双击安装包保持默认配置进行安装即可。
sunshine通过web页面进行管理,运行sunshine后会托管在任务栏,右键sunshine,选择open sunshine
。
如果弹出的网页提示您的连接不是私密连接
,点击高级
,继续前往localhost即可。
进入管理页面后,首先可以在配置栏下将语言设置为简体中文。
在配置栏下的Network中,可以修改sunshine使用的端口族,如果你只在同一网段下串流或者在没有NAT的大局域网下串流,无需修改端口保持默认配置即可使用moonlight客户端进行串流。由于我在校园网环境下部署了私人软路由,并且该路由器下有多台需要使用sunshine串流的电脑,为了避免在路由器上设置端口转发时发生冲突,必须为每台电脑的sunshine设置不同的端口族。这里我将其中一台设备的端口族设置为51233,该端口是通过moonlight连接时使用的端口,web ui的端口则变为51234.
接下来需要在路由器上配置端口转发,以允许我在学校的其他地方通过我的路由器WAN口地址来实现路由器LAN口下设备的串流,路由器的固件为openwrt。进入openwrt管理界面,进入网络->防火墙->端口转发,按照sunshine的端口族添加以下端口转发规则,添加完毕后点击保存并应用
。
然后点击通信规则,开放对应的端口,再次点击保存并应用
。
最后一步,在moonlight官网中下载对应版本的客户端并安装,打开后点击右上角的+,输出openwrt的wan口ip:连接端口,比如10.10.2.2:51233
,在sunshine的管理页面中输入moonlight的PIN码就可以实现串流啦!在moonlight的设置面板中可以设置不同的分辨率和码率等参数。
如果你不在大内网或局域网中进行串流,而是希望在任何一个地方都能串流家里的电脑,那么你的家庭宽带需要拥有公网IP地址,使用端口转发或者UPnP来实现端口的映射,这类教程已经非常完善,大家可自行上网搜索。