相对优雅的PS4直播

网上PS直播有很多文章,但大多需要编译和修改路由表。实际上PS4直播的时候,不一定需要自己编译NGINX,直接改HOSTS也不是不可以。本文就是用了这种方式,相对优雅,当然只是相对而已。

警告,本文并非0基础教程,需要相当多的Linux操作经验,慎入。

0.准备工作

  • 一台支持openwrt的路由器
  • 一个Linux系统,可以是虚拟机也可以是WSL,我推荐用虚拟机装个Debian/Ubuntu,且虚拟机桥接。也可以用树莓派之类的。
  • 需要会在Linux里编辑文件

1.安装NGINX+RTMP模块

现代的Debian/Ubuntu等系统都已经自带了RTMP模块了,所以直接apt-get安装就行了。

sudo apt-get install nginx libnginx-mod-rtmp

2.配置NGINX

先搞定xsl文件

cp /usr/share/doc/libnginx-mod-rtmp/examples/stat.xsl.gz /var/www/html
gzip -d /var/www/html/stat.xsl.gz

然后编辑nginx配置文件,在http之前添加rtmp,在http内部添加一个server。如果有 include /etc/nginx/sites-enabled/*;,就在这行前面加个# 井号注释掉。最终看起来文件是这样的。

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf

events {
    worker_connections  1024;
}

rtmp {
    server {
        listen 1935;
        application app {
            live on;
        }
    }
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile           on;
    keepalive_timeout  65;

    server {
        # 改一下监听端口
        listen       80;
        server_name  localhost;

        location / {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            root /var/www/html;
        }
    }
}

编辑完之后,就重启nginx试试,如果没任何提示就说明成功了。

sudo systemctl restart nginx

3.配置路由器

现在twitch有很多服务器, 根据这份列表,把里边的前三个推荐的加入到路由器里。如果你是用了openwrt,启用了dnsmasq的话,可以直接在 网络-DHCP/DNS 菜单下添加。我直接下了猛药,所有服务器都劫持了。设置了一个额外的HOSTS文件,文件内容如下:

192.168.11.221	live.twitch.tv
192.168.11.221	live-fra02.twitch.tv
192.168.11.221	live-dfw.twitch.tv
192.168.11.221	live-bkk.twitch.tv
192.168.11.221	live-ord02.twitch.tv
192.168.11.221	live-sin.twitch.tv
192.168.11.221	live-qro.twitch.tv
192.168.11.221	live-hel.twitch.tv
192.168.11.221	live-osl.twitch.tv
192.168.11.221	live-sjc.twitch.tv
192.168.11.221	live-slc.twitch.tv
192.168.11.221	live-arn.twitch.tv
192.168.11.221	live-sea.twitch.tv
192.168.11.221	live-ymq.twitch.tv
192.168.11.221	live-tpe01.twitch.tv
192.168.11.221	live-mia.twitch.tv
192.168.11.221	live-sao.twitch.tv
192.168.11.221	live-lhr03.twitch.tv
192.168.11.221	live-lax.twitch.tv
192.168.11.221	live-hkg.twitch.tv
192.168.11.221	live-mrs.twitch.tv
192.168.11.221	live-iad03.twitch.tv
192.168.11.221	live-iad05.twitch.tv
192.168.11.221	live-phx.twitch.tv
192.168.11.221	live-atl.twitch.tv
192.168.11.221	live-sel03.twitch.tv
192.168.11.221	live-sfo.twitch.tv
192.168.11.221	live-tyo.twitch.tv
192.168.11.221	live-prg.twitch.tv
192.168.11.221	live-jfk.twitch.tv
192.168.11.221	live-den.twitch.tv
192.168.11.221	live-mad.twitch.tv
192.168.11.221	live-sel01.twitch.tv
192.168.11.221	live-ams.twitch.tv
192.168.11.221	live-tpe03.twitch.tv
192.168.11.221	live-mil.twitch.tv
192.168.11.221	live-hou.twitch.tv
192.168.11.221	live-cph.twitch.tv
192.168.11.221	live-fra05.twitch.tv
192.168.11.221	live-pdx.twitch.tv
192.168.11.221	live-lhr04.twitch.tv
192.168.11.221	live-yto.twitch.tv
192.168.11.221	live-cdg.twitch.tv
192.168.11.221	live-waw.twitch.tv
192.168.11.221	live-ber.twitch.tv
192.168.11.221	live-syd.twitch.tv
192.168.11.221	live-ord03.twitch.tv
192.168.11.221	live-rio.twitch.tv
192.168.11.221	live-vie.twitch.tv
 

其中,192.168.11.221是我Linux服务器的地址,你可以在Linux系统的终端下输入 ip addr 来找到你的ip

保存后openwrt会自动重启一下dnsmasq服务,这就算完成了。

4.PS4上开始直播

PS4上点击share按键,就可以开始直播了。注意这里有个坑,有可能连不上twitch服务器,这时候需要路由器自带梯子。这里不再具体介绍方法。

5.拿到数据流

访问 http://192.168.11.221/ 也就是Linux主机的ip,默认就可以看到是[EMPTY]的或者是[live_xxxxx]一堆。如果 app 写的是[EMPTY]的话那么 rtmp 地址就是rtmp://192.168.11.221:1935/app/
否则应该是rtmp://192.168.11.221:1935/app/live_xxxxx

然后进obs,把这个作为媒体源添加进来,就可以直播了。

6.参考

如何科学的直播 PS4

Ubuntu 16.04简易安装Nginx-rtmp-module

7.后记

https://github.com/winshining/nginx-http-flv-module

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据