moonlight串流方案
背景
起因是我坐着打游戏,凳子不舒服,突然想趴着玩游戏,就考虑到了steam link串流,实际使用下来 并不讨喜,经过一番资料的查阅,找到一套成熟方案
方案
moonlight+sunshine+usbmmidd_v2+zeroTier
Host要求:
- 网线直连 或者5G频段WIFI链接
- 英伟达Nvidia用户(以下简称N卡用户)
Client要求:
- 5G频段WIFI链接
- 安装moonlight client端
我的配置清单
- 路由器:华为的WS5200 四核版
- iphone13pro 链接wifi局域网传输约300Mbps 30m/s
- 5G+2.4G
- WIFI5
- 主机配置(HOST):组装机
- i5-13400F
- 3060Ti
- 串流设备(Client):surface
- 分辨率 2736*1824
- 500w像素点,相当于4K,亦有说法为2.5k 单看传输数据量 4k
- 宽带:300M+无公网IP
- 网络环境:光猫+TPLINK的企业级路由+全屋AP+三级NAT华为路由器
- 192.168.1.XX ->
- 192.168.82.XX->
- 192.168.3.XX
moonlight
简介:
N卡之前推出了Shield服务,原理是讲显卡输出画面直接通过网络串流给其他终端
而moonlight是根据Shield衍生出来的一个全平台开源终端(甚至连switch都有),我是用下来小巧轻便,支持最高120hz+自定义分辨率,2023.7.15正常使用过程中未发现bug
Tips:windows端有中文,记得找一下
官网:Moonlight Game Streaming: Play Your PC Games Remotely (moonlight-stream.org)
sunshine
简介
Shield服务据说会停止服务,moonlight开发组提供了新的开源后端服务,目前使用来还是不错的
Tips:记得装ViGEmBus驱动否则手柄不生效
操作:
-
配对:moonlight第一次串流的时候会提供一个pin,进入sunshine的后台配对一下即可
-
添加Application:官方文档里有详细解释这里提供两个示例
-
steam大屏无法打开
-
在Application标签内填写workDir,这个就是steam.exe所在的目录可以在桌面的快捷方式属性中找到地址
-
添加自定义Application
-
workDir:
D:\Game
-
Command:
cmd /c "Animal Crossing New Horizons.xci"
-
name:
集合啦!动物森友会
-
Image:
Animal Crossing New Horizons.png
Tips:图标是我自己截图的,截完图放在C:\Program Files\Sunshine\assets
目录下即可
官网:Releases · LizardByte/Sunshine (github.com)
usbmmidd_v2
简介
sunshine是将显卡输出类容转发到moonlight终端,有些显卡在关闭显示器后,会停止工作,所以即使串联上了,却没有画面(黑屏),网上大部分教程都指向了显卡诱骗器,欺骗显卡让他继续工作,但是我就是头铁不愿意花那10块钱(哈哈哈哈哈)
usbmmidd_v2是一个虚拟显示器驱动,使用之后会生成一个副屏,最高支持添加4个,但是我们不需要,添加一个就够了,可支持自定义分辨率,使用便捷,有开关,在关闭显示器后,他会自动成为主屏幕,继续欺骗显卡工作
操作:
-
更改自带的分辨率以实现自定义分辨率:
-
进入注册表:地址
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WUDF\Services\usbmmIdd\Parameters\Monitors
官网:Activating a Secondary Display on Windows 10 when no Monitor is Connected - Amyuni Technologies
官网下载地址: https://www.amyuni.com/downloads/usbmmidd_v2.zip
提供两个方便的bat:
- 关闭副屏
start cmd /c deviceinstaller64.exe enableidd 0
- 开启副屏
start cmd /c deviceinstaller64.exe enableidd 1
zeroTier
简介
这是一个成熟的异地组网方案,也是moonlight官网推荐,因为我没有公网IP,在者我的TPLINK不支持IPV6,所以没办法使用IPV6
原本想使用frp,但是我的腾讯云服务器也只有8M带宽,并且frp需要指定端口,感觉挺恶心的,所以直接使用异地组网方案,刚好我的室友有一台20M带宽的服务器。并且他已经搭建好了planet节点,我就拿来用了,这里的部署就不详细解释planet节点是啥了了,有需要我帮你们找了帖子
https://post.smzdm.com/p/aoxnp0en/
结语
趴着玩游戏对身体不好,反正我已经难受死了,折腾了两天,最后发现还是坐着玩舒服~
这个方案主要是可以解放更多的使用场景,想躺着就躺着,想坐哪就坐哪里
同样适用于PAD、PHONE,手柄+键盘+鼠标
比较推荐IPAD MINI+YUZU 玩SWITCH游戏(场景很多,就不一一赘述了)