nginx-rtmp-module實現(xiàn)多人推流至自己的服務(wù)器,再由一人直播到直播網(wǎng)站
簡要說一下需求:
有飛友打算直播機炮戰(zhàn)比賽,想做多視角在同一直播間解說。因為是網(wǎng)絡(luò)遠程比賽所以采集卡等本地手段不能用。暫時群里沒找到懂這個的專業(yè)人士,所以只能自行想辦法,拼湊一個解決方案。
方案主要分四步:
1、在某某某服務(wù)器上運行nginx + nginx-rtmp-module
2、參賽選手用obs直播到某某某服務(wù)器
3、解說員在OBS里從某某某服務(wù)器獲取每位選手的推流
4、解說員把各推流安排到各場景里準備好,開直播間。
這樣對公眾開放的就只有4的直播間,其他間接推流都走自己的服務(wù)器。
簡要說一下1的設(shè)置過程:
-租了一臺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
配置文件里添加以下一段內(nèi)容:
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
記得在服務(wù)器上開放TCP端口1935。
作為參賽選手,在obs里推流到:
rtmp://某某某/live
推流碼例如cansaixuanshou01
作為導(dǎo)播/解說員:
在obs里添加VLC視頻源(或者媒體源源),URL(或者關(guān)掉“本地文件”選項),添加的URL就對應(yīng):
rtmp://某某某/live/cansaixuanshou01
然后導(dǎo)播/解說員正常使用OBS推流到直播網(wǎng)站即可。
成果測試: