PS4/PS5 无采集卡直播推流到 B 站等自定义平台
前提(全部以 PS5 为例,PS4 是一样的)
本教程需要:
- OpenWrt 固件的路由器
- PS5 绑定了 twitch 账号,并且可以推流 twitch (只需要能开播就行,不需要稳定推流)
- 一点基本的 OpenWrt 相关操作常识(比如 ssh 登录,上传文件)
本教程大致分以下步骤:
- 安装 rtmp-forwarder 到路由器
- rtmp-forwarder 的简单配置和使用
- 在 OpenWrt 上配置 1935 端口转发
下载安装 rtmp-forwarder
预编译下载:Releases · nanpuyue/rtmp-forwarder

根据路由器的架构选择下载的文件,目前 GitHub 上为 OpenWrt 预编译了三个版本,可以在路由器执行下面的命令直接判断:
case $(uname -m) in aarch64) echo aarch64;; armv7l) if grep -q 'vfp\|neon' /proc/cpuinfo; then echo armv7hf; else echo armv7; fi;; *) echo unknown; esac
- aarch64:rtmp-forwarder-aarch64-unknown-linux-musl
- armv7hf:rtmp-forwarder-armv7-unknown-linux-musleabihf
- armv7:rtmp-forwarder-armv7-unknown-linux-musleabi
单个文件大约3M+,如果觉得体积太大可以下载经过 upx 压缩后的版本:
https://pan.quark.cn/s/b7e80bd22772?pwd=UbP6
体积只有1M出头。
文件下载下来后重命名为 rtmp-forwarder,然后上传到路由器 /tmp,可以用 winscp 这类图形化工具,也可以直接使用 scp 命令上传(以 192.168.1.1 为例):
scp -O rtmp-forwarder 192.168.1.1:/tmp/然后在路由器上执行下面的命令:
mkdir -p /usr/local/bin
mv /tmp/rtmp-forwarder /usr/local/bin/
chmod +x /usr/local/bin/tmp/rtmp-forwarder
cat > /etc/init.d/rtmp-forwarder <<"EOF"
#!/bin/sh /etc/rc.common
# license: GPLv3 https://www.gnu.org/licenses/gpl-3.0.txt
# author: nanpuyue <[email protected]> https://blog.nanpuyue.com
START=95
USE_PROCD=1
start_service() {
procd_open_instance
procd_set_param command /usr/local/bin/rtmp-forwarder -c /etc/rtmp-forwarder.json
procd_set_param respawn
procd_close_instance
}
EOF
chmod +x /etc/init.d/rtmp-forwarder到这里 rtmp-forwarder 就安装好了。
rtmp-forwarder 的简单配置
rtmp-forwarder 同时接受命令行参数和配置文件,详情可以参考项目文档:中文说明
这里我们先简单设置一下,首先生成一个默认的配置文件(把 192.168.1.1 替换成路由器 lan 口 IP):
/usr/local/bin/rtmp-forwarder -c /etc/rtmp-forwarder.json -w 192.168.1.1:8080启动后直接 Ctrl + C 推出即可,此时已经生成了默认的配置文件 /etc/rtmp-forwarder.json:

其余配置比如 rtmp 监听地址和端口,Web 访问用户名和密码可以自行参考文档修改(也可以不再修改),如果需要使用 OBS 进行推流测试的话,可以把 listen_addr 也改为路由器 lan 口 IP:
vim /etc/rtmp-forwarder.json确定之后启动 rtmp-forwarder:
/etc/init.d/rtmp-forwarder enable
/etc/init.d/rtmp-forwarder start如果需要停止 rmtp-forwarder,执行下面的命令:
/etc/init.d/rtmp-forwarder stop此时就能用浏览器访问 Web 管理界面了 http://192.168.1.1:8080 (注意自己设置的 IP 和端口)

点击“添加推流目标”,填入推流地址和推流码,保存即可:

B 站推流码可以使用第三方工具获取,比如 Rsplwe/bili-live-hime,也可以使用直播姬的“第三方推流模式”。

配置端口转发
登录路由器管理界面,导航到:网络->防火墙->端口转发->添加


名称随意填(我填的 redirect-rtmp)
需要注意的是:
- “协议”选 tcp
- “外部端口”填 1935
- “源区域”选 lan
- “内部 IP 地址”填 127.0.0.1,如果之前把 listen_addr 改为了 lan 口 IP 就填 lan 口 IP
- “高级设置”里“源 IP 地址”选 PS5 的 IP 地址(最好给 PS5 设置静态 IP)
如果 PS5 不设置静态 IP,也可以不设置“源 IP 地址”(选任意),改为设置“源 MAC 地址”为 PS5 的 MAC 地址
设置好后点保存,再点保存并应用就好了:

开启直播
进入游戏后直接选 twitch 开启直播:

右上角提示正在直播就算成功了:

然后登录 rtmp-forwarder Web 管理界面就能看到直播画面预览:

再在 B 站开播(或者使用第三方工具开播,总之保证直播直播间是开播状态),然后点击推流配置下面 B 站对应的推流目标后面的按钮开关就能推流到 B 站了。


最后,我的直播间我叫胡桃,是土御门家的天,欢迎关注。