2023 年,正确使用 PS5 原生推流到 B 站

9 个月前(已编辑)
折腾 / ,
2274
3
这篇文章上次修改于 8 个月前,可能部分内容已经不适用,如有疑问可询问作者。

昨晚折腾了一晚上,就为了实现 PS 直接推流到 B 站直播。开始之前以为劫持 Twitch 还是挺简单的,实际操作起来还是遇到了不少的问题。记录一下留给有需要的朋友。

准备工作

开始之前,你的 PS5 应该已经登录了 Twitch 服务。

如果你没有软路由设备,可选一台设备能提供旁路网关的功能,因为你需要劫持 DNS 解析,并且能操作 iptables 进行流量转发(必须,仅重写 DNS 现已无法实现)。软路由一般都具备这些功能。

如果你没有软路由设备,可以尝试在虚拟机中安装一个 Linux 作为旁路网关。

如果你使用 macOS,可以使用 Surge 等软件实现网关的功能。

以我的设备为例:

  • OpenWrt 网关: 10.0.0.2
  • Arch IP: 10.0.0.106
  • PS5: 10.0.0.102
  • macOS: 10.0.0.101

上面的地址需要记住前两个即可。Arch 是我用来挂 Docker,Docker 里跑推流服务的。原理就是劫持 PS5 推流的流量转发到 Arch 中的 Docker。macOS 就可以通过 Arch 来获取流再用 OBS 推到 B 站。

部署 Docker 镜像

在我的 Arch (10.0.0.106) 上部署 Docker 容器。

这边我把 Web 端管理映射到了 8888 端口,在内网可以用 10.0.0.106:8888 进行访问。

DNS 重写和流量转发

在网关(10.0.0.2),修改 hosts 文件。增加一行:

或者。使用 ADGuard Home 的 DNS 重写。

然后需要把 live.twitch.tv 的流量转发到 Arch (10.0.0.106)。使用 iptables,用 hosts 和 DNS 重写无效。

首先查询 live.twitch.tv 的 IP 段。

我们可以看到记录有 3 个 IP,都在 45.113.128.0/24 中,所以我们就 DNAT 这个网段的 1935 端口到 Arch(10.0.0.106)的 1935 端口就行。

在网关(10.0.0.2)上执行:

PS5 开启 Twitch 直播

PS5 的网关指向 10.0.0.2,开启直播。没有意外的话,在 mac 打开 10.0.0.106:8888 这个地址就能显示在 app 下面了。

此时,打开 OBS,添加 媒体源,取消本地文件的复选框,填写 rtmp://10.0.0.106:1935/app/live_884958670_oI4yCxIRHzlBJzmxCQ9hNFgo7iIGji。就能显示 PS5 的画面了。live_ 后面的替换成自己的。

如果 PS5 无法开启直播,提示「目前其他设备正向同一个频道进行播放」。可以看看路由器防火墙是不是禁止了 1935,2805-2899,6667 端口。或者是富强插件只做了常用的端口转发都有可能。

参考

如何科学地直播PS4 - 神代綺凛の随波逐流

评论区加载中...