超低成本PS5远程串流
超低成本PS5远程串流!
思路:网络部分使用zerotier创建虚拟局域网,让PS5在虚拟局域网内,从而被其它设备访问;控制部分使用开源的软件chiaki(pxplay也行,但它收费)注意,chiaki有多版本,目前使用chiaki-ng
开源项目:chiaki-ng
特性:
- 支持Windows/MacOS/Android/Linux…
- 可以调整码率,支持远程唤醒、Xbox手柄!
- 支持DS原生震动和线性板机!
chiaki虽好,但需要设备处于同一局域网内
如果只在局域网内使用,请分别下载对应客户端食用即可;后续教程可以跳过~
但,如果想在不同的网连接,要么需要公网,要么可以创建“虚拟局域网”(VLAN),需要软件(zerotier)让设备都处在同一个虚拟局域网内,这样就能使用chiaki啦~
下面的教程分为四大部分:
- 注册zerotier与创建虚拟局域网
- 路由器安装zerotier与配置虚拟局域网
- 客户端加入虚拟局域网
- 开玩!
1.注册zerotier与创建VLAN
在zerotier官网 https://zerotier.com/ 上注册账号
随后,点击"create a network"
然后点击创建出来的网络,Name可以随便起,AccessControl最好使用’Private’
即:所有要加入这个虚拟局域网的设备需要你手动认证审核;
记下这里的Network ID,它就是你的虚拟局域网ID啦,后面需要用上
接下来,可以更换虚拟局域网的ip段,当然,使用系统分配的也可以啦
zerotier官网的所有操作会自动更新,所以不用手动保存
2.路由器安装zerotier与配置VLAN
这一步是比较劝退的,由于ps5无法安装zerotier,所以我们只能曲线救国;
在路由器(刷了openwrt系统或其它系统)上安装zerotier
- 自动:一般在openwrt系统的应用商店可以搜索并下载到(甚至默认安装)
- 半自动:zerotier官方提供了比较方便的安装方式,一条命令即可完成(这里默认您已经会使用ssh工具并连入路由器)
curl -s https://install.zerotier.com/ | sudo bash
加入虚拟局域网
在路由器上加入到创建的虚拟局域网
zerotier-cli join fadxxxxx5eb45a9
随后,在zerotier官网上授权这个设备的接入,将设备前面的Auth同意,此设备就加入虚拟局域网成功了,右侧可以看到这个设备的虚拟ip
配置虚拟局域网
但目前只让路由器加入了这个虚拟局域网,为了让ps也能入网,我们需要先设置NAT
- 在zerotier网页,找到**“Manage Routes”**模块,将ps所在的真实局域网段(如我这里写的是192.168.8.0/24)填写在Destination,将路由器的虚拟ip填写在Via
从而让你真实局域网内的所有设备,都能被虚拟局域网访问,而路由器就充当了”中间人“
点击Submit提交。
最后一步,需要在路由器的zerotier管理页面,自动允许客户端NAT
即完成虚拟局域网的配置;
3.客户端加入虚拟局域网
还是在zerotier官网,下载pc对应的客户端,如果是安卓,建议用安卓zerotier好用版
在pc下载zerotier后,需要加入虚拟局域网,还是使用上面的NetworkID,并且仍然需要手动确认加入。
电脑上会安装一个虚拟网卡,如果弹出来选项框都点是。
其它平台也是类似操作,安装好对应的客户端后加入网络即可。
4.开玩!
为了体现出虚拟局域网的用处,最好让电脑与ps处于不同的真实局域网中,比如让电脑连接手机热点;
电脑端串流
电脑上下载chiaki-ng,链接->chiaki-ng https://github.com/streetpea/chiaki-ng ,找到chiaki-ng-windows-installer.exe(免费)
打开chiaki-ng后,点击右上角”+“号,输入ps5的真实局域网ip(比如192.168.8.5)
记得吗,前面把整个192.168.8.0/24网段都加入到虚拟局域网了
然后需要添加注册用户(其实就是需要登录ps账号),但不要直接填写你PSN的ID,它需要填写base64格式
使用ID转换工具 https://psn.flipscreen.games 得到转码后的ID,记得要复制chiaki这一个,psplay是另一个软件的(psplay收费)
另外,需要在ps的“设置”->“系统”->“远程游玩“开启远程游玩,并且找到PIN码(有时效),将PIN填写在软件上。
随后即添加大成功!!!
- 如果主机处于开机状态(白色),直接双击就能开始远程串流了
- 如果主机处于待机状态(黄色),需要选择”Wakeup“发送唤醒操作,然后再进行远程串流
- 主机完全关机的状态下无法被唤醒,更无法串流;(可以试试手指机器人?)
电脑端演示效果
按ctrl+o可以选择出来串流,其它的设置(包含分辨率、码率请自行调整)
---------------------------------------------
安卓
如果是安卓,可以在google商店下载到chiaki-up(免费)
安卓需要先打开zerotier并加入虚拟网络,并且保持加入网络的状态(会创建一个虚拟网卡)
再打开chiaki-up,点击右下角添加ps5,方法与电脑端相似;
手机端演示效果
可以用蓝牙连接ds,再将屏幕上的虚拟控制关闭
至此,教程应该就结束了;
延迟问题
我与朋友测试过,相隔150公里左右,延迟稳定10ms~15ms;并且串流时可以正常使用线性板机、震动等功能;体验还是不错的。
另外,zerotier默认使用p2p打洞,如果打洞成功,延迟会很低而且稳定;
但如果一直无法的洞成功,其实还可以尝试走中转服务器!
但如何搭建moon中转服务器,可惜这里的空白处太小,写不下~
最后,提前祝大家新年快乐!
原文
这里是最初写的
网络部分
zerotier的安装与使用具体可以查看另一篇文章
- 在zerotier创建一个虚拟局域网fx2811dwx(随便写的)
- 在n1盒子上(刷了openwrt系统,并安装了zerotier插件)启动zerotier,并加入到虚拟局域网fx2811dwx,需要在zerotier控制台同意设备加入
- 为了让PS5也加入到这个网络,需要在n1盒子上,允许 Zerotier 的拨入客户端访问路由器 LAN 资源
- 需要在 Zerotier 管理页面设定到 LAN 网段的路由表
- 比如n1盒子的虚拟ip是10.22.22.15,n1盒子的真实局域网ip是192.168.6.15。需要在zerotier管理页面,将LAN网段192.168.6.0/24 交给10.22.22.15进行转发
- 在PS5上,将网络设置的网关(以及主DNS)设置为n1盒子的真实局域网ip
如果没问题,此时同一个虚拟局域网下的设备,可以ping通PS5(假设它的真实局域网ip是192.168.6.5),也就是说,PS5是不需要安装zerotier或设置虚拟ip的,转发的操作已经交给了n1盒子
如果网络不稳定,zerotier无法创建直连p2p,此时需要中转服务器(也叫moon服务器),具体操作在另一篇zerotier文章有写
注意
除了使用zerotier,也可以使用相似的tailscale、皎月连等虚拟局域网创建工具;
网上也有使用dmz转发的方法(需要有公网),但此方法会暴露端口,不太推荐
操控部分
PC/安卓/苹果 需要安装软件chiaki
假如在PC上下载好chiaki软件,此时假设PC也在n1盒子相同的“真实局域网下”(即PC可以ping通PS5),如果chiaki未发现PS5,可以自选添加
其中选项如下
- ip要设置为PS5的真实局域网ip(192.168.6.5)
- 写真实的PSN的ID,然后点击public lookup,可以自动填写ID对应的base64格式。或者用这个网站可以将PSN的ID转码https://psn.flipscreen.games/
- 以及pair对应的码子,在“系统”->“远程游玩”->"配对"里找,码子有效5分钟
如果没问题,即可添加成功,随后即可开始串流
注意
chiaki是支持ds手柄原生震动的,但需要有线连接到电脑,如果发现有线连接后还没震动,可以下载Playstation accessories(官方软件)并将手柄驱动更新,理论上不需要一直后台打开accessories就可以用原生震动(如果软件关闭原生震动就不能用,就一直打开accessories好了)