网上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.参考
Ubuntu 16.04简易安装Nginx-rtmp-module