前言
PS5吃灰许久,想利用午休时间在公司远程串流,也试了不少方案,分享下目前比较适合的串流方式,方便日后上班摸鱼(bushi)
之前试过使用官方的远程串流软件(PS Remote Play),奈何码率低无法调整,最新的版本只支持win10,连接至少需要NAT2类型等等原因故放弃。
后来发现一款开源免费的串流软件--chiaki,支持MacOS/Windows/Android/Linux/Switch平台,码率可调,还支持远程唤醒,键盘映射,兼容Xbox手柄~个人感觉比官方的好用不少
不过串流软件的连接都需要在同一个网内,如果想在不同的网连接只能靠公网ip,这就需要内网穿透软件来“搭桥”组成虚拟网,让我们的设备都处在同一个网里,这样就能通过内部的ip连接了~
内网穿透
在做内网穿透前网络情况如下:
网络情况
pc、ps5均无公网ip,家里是华数的宽带,NAT类型常年NAT3,网络状况可谓是极差。
下面就准备开始进行内网穿透。
我使用的是Zerotier,有经验的小伙伴也可以使用其他软件,能达到同样的效果即可~
1.Zerotier安装设置
zerotier官网 https://www.zerotier.com/
Zerotier支持Windows/MacOS/Android/iOS/Linux/FreeBSD/NAS平台,免费版本支持50台主机,足够个人用户使用了。
Zerotier的服务器设在国外,不过软件主要起到握手的作用,两台主机在同一子网内实现直连后,数据便是P2P传输,不会再经过Zerotier的服务器。一开始的时候如果连接服务器有困难,有条件的小伙伴可以搭建一个MOON服务器来解决,这里就不赘述了。
- 首先在zerotier官网上注册一个账号。
- 注册完毕后在官网登录。会出现以下界面
创建新的网络
点击Create A Network来创建一个网络
刚创建的网络
点击进入新创建的网络,进入网络设置界面
基础网络配置
主要注意创建网络模式是PRIVATE模式还是PUBLIC模式。PRIVATE模式下,新设备加入网络后需要额外确认,可以长期存在。PUBLIC模式不用额外确认,设备30天未登录后会自动删除。这里我用的是PRIVATE模式,为了安全也建议使用PRIVATE模式。
进阶设置
下面可以设置网络内路由及ip池,ip池根据自己喜好选择即可,但要保证和自己各个路由器下的子网不是同一个网段。
2.路由器设置
2.1插件安装
想要能够通过zerotier访问ps5,需要支持安装zerotier插件的路由器。
如果路由器不支持,那就只能在同一路由器下的PC上用虚拟机装openwrt当软路由,再在openwrt内使用zerotier插件,个人不是很推荐。
我用的是华硕的RT-AX86U,刷了梅林固件后在软件中心下直接安装zerotier插件即可。
路由插件
2.2网络设置
安装好插件后进入插件,打开开关,自动允许客户端NAT的框√上(重要)。
加入网络
在join network栏输入之前在zerotier创建的网络ID,点击+尝试加入网络。
尝试加入网络
第一次加入网络需要在zerotier网页上授权设备。在zerotier网页的Members栏里会出现刚才连接的设备,将设备前面的Auth框√上就授权成功了。
设备授权
设备授权成功后,再次尝试联网应该就能顺利连上zerotier的网络了
连接成功
连接上zerotier网络后,zerotier会给设备分配一个ip地址,我们需要通过这个ip去访问路由器下的ps5设备,需要设置路由
路由设置
在网页上找到Managed Routes,Destination栏填上ps5所在的子网(我这里是192.168.50.x网段,网页上就填写192.168.50.0/24),via栏填刚才zerotier给路由器分配的ip,Submit提交一下就完成路由的配置了~
2.3端口转发设置
为了保证能够顺利串流和远程开机的功能,需要在路由器上设置端口转发。
ps5远程串流的端口为987、1935、3074、3478、3479、3480、9295、9296、9297、9302、9304(网上找的,不一定准确,保险起见就都加上了)。
嫌麻烦也可以直接设置DMZ指向PS5。
3.电脑设置
电脑上下载zerotier客户端,安装好后在菜单栏小图标点击右键,选择join network,输入zerotier的网络id,尝试加入网络。
客户端加入网络
此时电脑上会安装一个虚拟网卡,如果弹出来选项框都点是。第一次连接同样需要网页上授权。授权成功后在网页上查看是否正常分配到了ip。
*Android和IOS操作也是类似,安装好对应的客户端后加入网络即可。
4.检查连接状态
打开电脑的cmd命令,输入zerotier-cli peers可以查看zerotier网络下的设备连接情况。
用zerotier命令查看连接状态
找到ps5所在路由的设备,可以查看连接状态,如果是DIRECT就是设备直连模式,数据直接P2P传输,延迟低,理论上能够跑满上行带宽。如果是RELAY则是转发模式,数据会经过Zerotier的服务器进行转发,延迟高,不适合进行远程串流,可以等待一会,设备之间会自动握手调整至直连模式。
使用ping命令检查和ps5的网络延时,正常直连状态下,同一运营商的延迟在10ms内,不同运营商之间的延迟在30ms左右,4G网络下到电信网络延迟在70ms左右。
家里华数网至ps5的ping值
内网穿透后网络情况
Chiaki串流
chiaki项目地址 https://git.sr.ht/~thestr4ng3r/chiaki
chiaki下载页面 https://git.sr.ht/~thestr4ng3r/chiaki/refs/v2.1.1
chiaki各个版本下载
1.电脑串流
在进行远程串流之前需要获取psn账号的串流id码。
如果电脑上有python环境,可以直接使用作者的脚本原版获取串流id
https://git.sr.ht/~thestr4ng3r/chiaki/tree/master/scripts/psn-account-id.py
没有python环境的小伙伴可以尝试用网页版本的网页版获取串流id
https://trinket.io/python3/85eea04996
使用方法:在sony账号登录页面登录成功后会自动跳转到显示redirect的网页,将这个网页的地址粘贴到网页版本控制台上回车运行即可,最后一行AccountID的内容就是串流id码。
或者使用网上大佬整的exe文件exe获取串流id,提取码:PSNS
https://pan.baidu.com/s/1GtOs4Oq8ar0y56ScX8zlaw
接下来在电脑上下载解压后打开chiaki软件。点击右上角的齿轮进入设置
chiaki设置界面
点击Register New开始注册新串流ps主机。
注册新串流ps5主机
Account-ID输入之前获得的串流id码,PIN填写主机上远程游玩提供的8位数字,注册成功后主界面上就出现刚才注册的新主机了。
ps5注册成功
如果主机处于开机状态,直接双击就能开始远程串流了。如果主机处于待机状态,需要右键选择Send Wakeup Packet发送唤醒操作,然后再双击进行远程串流。主机完全关机的状态下无法使用噢~
电脑串流成功
退出串流可以直接右上角关闭,会弹出提示框询问是否让主机进入待机状态。可以在设置里面Action On Disconnect进行默认项设置来关闭提示框。
可能遇到的情况:
1.画面一下清晰一下模糊,偶尔花屏。
网络不稳定或者网络带宽不足,可以尝试降低码率来获得更流畅的体验,经常花屏可能是两个网络的运营商不同,受运营商影响,限制了UDP上传导致偶尔断流。
2.声音不正常,爆音/卡顿等。
网上看有许多人也有类似情况,我自己也遇到了,可以通过以下方式来尝试解决:
①删除chiaki目录下audio文件夹内的qtaudio_windows.dll文件
②安装win10音频补丁音频补丁地址
https://www.microsoft.com/en-us/download/details.aspx?id=53356
③在设置里调整Audio Buffer Size值
2.手机串流
手机串流操作流程基本相同。手机连接上zerotier后,在chiaki app内注册串流主机成功后连接即可,还有虚拟按键可以使用。
安卓新串流主机注册界面
手机串流成功
※只有第一次注册串流的时候需要输入信息,后面就能直接连接了~enjoy~
总结
这个方案下的远程串流总体体验还是不错的,低延迟+不错的流畅性+多平台加持,但还是牺牲了部分画质,不在同一网络下连接也很难做到非常稳定,更适合玩玩操作不多的游戏,或者用来挂机的游戏~