nginx-rtmp-module实现多人推流至自己的服务器,再由一人直播到直播网站
简要说一下需求:
有飞友打算直播机炮战比赛,想做多视角在同一直播间解说。因为是网络远程比赛所以采集卡等本地手段不能用。暂时群里没找到懂这个的专业人士,所以只能自行想办法,拼凑一个解决方案。
方案主要分四步:
1、在某某某服务器上运行nginx + nginx-rtmp-module
2、参赛选手用obs直播到某某某服务器
3、解说员在OBS里从某某某服务器获取每位选手的推流
4、解说员把各推流安排到各场景里准备好,开直播间。
这样对公众开放的就只有4的直播间,其他间接推流都走自己的服务器。
简要说一下1的设置过程:
-租了一台Ubuntu 18.04.3 LTS,开着ssh登上去
-装一堆软件
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
sudo apt-get install zlib1g-dev
git clone https://github.com/arut/nginx-rtmp-module.git
wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar xvf nginx-1.16.1.tar.gz
cd nginx-1.16.1/
sudo ./configure --with-http_ssl_module --add-module=../nginx-rtmp-module
sudo make
sudo make install
然后编辑配置文件/usr/local/nginx/conf/nginx.conf
配置文件里添加以下一段内容:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
}
}
}
重启nginx
sudo /usr/local/nginx/sbin/nginx -s stop
sudo /usr/local/nginx/sbin/nginx
记得在服务器上开放TCP端口1935。
作为参赛选手,在obs里推流到:
rtmp://某某某/live
推流码例如cansaixuanshou01
作为导播/解说员:
在obs里添加VLC视频源(或者媒体源源),URL(或者关掉“本地文件”选项),添加的URL就对应:
rtmp://某某某/live/cansaixuanshou01
然后导播/解说员正常使用OBS推流到直播网站即可。
成果测试: