Skip to content

Tilerphy/ps4broadcast

Repository files navigation

Gitter

增加对openwrt中uu插件的支持。

环境:

运行ps4broadcast的机器,

一个openwrt路由器运行了uu插件,

ps4\ps5 的网关设置为openwrt,要求openwrt路由器能通过ip访问到ps4broadcast,方式不限。

设置方法:

  1. 为openwrt安装python3
  2. 将coverUU.py 复制到openwrt的某一个路径下,我们假设为/app/coverUU.py
  3. 修改coverUU.py中的192.168.8.11到你运行ps4broadcast的机器的ip
  4. 修改openwrt的/etc/rc.local ,在exit 0之前增加一行语句: /usr/bin/python /app/coverUU.py &
  5. 别省略上一行的 &
  6. 重启openwrt
  7. 这之后,就可以在uu同时使用ps4broadcast进行直播了。

目前的流程如下:

我们是索狗qq群

如果希望讨论游戏,我们有一个qq群: 855457801 当然,不论xbox、ps、switch、pc或者其他游戏平台,都可以进群聊啊,游戏才是我们共同的、永久的话题。

确切测试

PS5、XBOX Series X依然支持rtmp方式直播,所以ps4broadcast也支持PS5和XBOX Series X(XBOX无弹幕支持)。

PS5上使用ps4broadcast的效果非常好,自带录像功能也支持了1080p@60fps,并且PS5与PS4的弹幕重定向功能是相同协议,所以弹幕也支持。

前言

鉴于PS4暂时没有直播到国内直播平台的功能,所以用了一些手段拦截twitch的RTMP内容与IRC聊天室内容,并且转发到斗鱼(将来可能会增加其他的国内直播平台。) 另外,这只是个折中手段,没准过几天PS4官方支持国内的直播平台推流了,起码国行机器是有这个可能的,这个谁说的准呢?所以这个方案只是个临时的,没有办法的办法。

为什么开源

分享,是网络的基础。

为什么是Linux?

  1. Windows操作系统做网络转发太不直接了,而且要形成脚本还挺不好写。而且作者只会Linux方式的iptables配置。

  2. 再有,作者自己用的是树莓派3(类似单片机的超小型电脑),所以Windows也不好用。

  3. 再再有,如果有大拿愿意移植到openwrt,让路由器实现这个功能,用我这个方案也是可以的。

需要会什么

一些Linux的基础知识,一些shell脚本以及目录知识。

如果不会这些,请直接使用镜像教程: https://www.psnine.com/topic/32642

最新的镜像release: https://github.com/Tilerphy/ps4broadcast/releases

如果Twitch绑定不上需要科学上网,请去qq群383701265找我,我能提供一个临时的代理。

准备工作

Debian 8 或者 Raspbian(树莓派操作系统,debian的ARM编译)的电脑或者树莓派或者虚拟机,这台电脑的ip假设是192.168.0.8 一台其他的电脑或者虚拟机的运行机器

Nodejs 6+ 建议直接到Nodejs v8.7.0

局域网真实IP,网卡设备号

执行ifconfig获取到当前的网卡地址,一般是eth0也有一些是eth1,或者enp0s3什么的, 类似

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.8 netmask 255.255.0.0  broadcast 192.168.255.255
        inet6 fe80::2e0:66ff:fee7:e31b  prefixlen 64  scopeid 0x20<link>
        ether 00:e0:86:f7:e3:1b  txqueuelen 1000  (Ethernet)
        RX packets 20558634  bytes 16007006847 (14.9 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 17867778  bytes 15731185654 (14.6 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0就是网卡的设备号 192.168.0.8 就是这台机器的真实IP

着手准备

  1. 执行apt-get install -y git sudo tar libnet-ifconfig-wrapper-perl xz-utils安装工具,sudo的用处是以管理员身份来执行命令。
  2. 为了方便起见在/目录下创建一个目录 mkdir /ps4broadcast
  3. 进入这个目录cd /ps4broadcast
  4. git clone https://github.com/Tilerphy/ps4broadcast.git
  5. 下载最新的nodejs源代码,并且编译安装
wget https://nodejs.org/dist/v8.7.0/node-v8.7.0.tar.gz
tar -xvf node-v8.7.0.tar.gz
cd node-v8.7.0
sudo ./configure
sudo make && sudo make install

执行 node -v 得到的结果应该是v8.7.0或者其他版本号。

准备完成,检查

此时目录结构应该是

/ps4broadcast
/ps4broadcast/node-v8.7.0
/ps4broadcast/ps4broadcast

继续

更改脚本的执行权限

cd /ps4broadcast/ps4broadcast
sudo chmod 777 install.sh
sudo chmod 777 start-web.sh

执行安装脚本

sudo ./install.sh
sudo npm install

开始直播?

  1. Twitch

在什么都没做的情况下,在PS4上开一个游戏,按手柄的share键,选择“播放游玩画面”,选择twitch,如果之前没有进行过twitch直播,此时会要求你注册一个twitch账号。请根据提示一步步注册一个账号,并且记住你的twitchid

  1. 斗鱼

首先打开要去直播的网站,目前只有斗鱼,进入自己的直播间,在自己的直播屏幕上方有一个“直播开关”,点一下on。 然后界面会刷新,然后再自己的直播间屏幕左上方会找到一个“直播码”的按钮,按一下,会弹出一个框。

其中rtmp地址我们称之为 url

直播码我们称之为 code

  1. 我们的服务器

这里需要用到设备号,假设之前获取到的设备号是eth0

cd /ps4broadcast/ps4broadcast

sudo ./start-web.sh eth0

  1. Control Panel

打开http://192.168.0.8:26666/

填入Twitch ID(Twitch的登录名),与 Douyu Room Id(斗鱼直播间号)

将斗鱼那边得到的 urlcode 填入后,点击reset live

如果得到LIVING STATUS: true说明一切运行正常(更新的版本显示的是n channels.

  1. PS4

设置->网络->LAN或者无线->自定

按照这样设置:

IP: 192.168.200.45
掩码(Netmask): 255.255.255.0
网关(Gateway): 192.168.200.1
Primary DNS: 114.114.114.114

然后一路下一步。

找到个游戏,按手柄的share键,选择“播放游玩画面”,选择twitch,一路下一步。

如果斗鱼那头没有效果,可能是斗鱼的直播码过期,毕竟只有5分钟有效期,过期不用就作废,所以请重新申请urlcode,填入Control Panel,点击reset live,然后重新再PS4上开始直播。


特别鸣谢

PSNID: jwq-1416 感谢其对Bilibili弹幕功能测试做出的杰出贡献。


欢迎发pull request

跪求大神移植到openwrt