nginx使用nginx-rtmp-module模塊實現(xiàn)直播間功能
系統(tǒng)環(huán)境
wujianjun@wujianjun-work ~ $ uname -a Linux wujianjun-work 4.10.0-37-generic #41~16.04.1-Ubuntu SMP Fri Oct 6 22:42:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
軟件環(huán)境
OBS(Open Broadcaster Software) v20.0.1 (Linux)
nginx version: nginx/1.13.6
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)
built with OpenSSL 1.0.2g 1 Mar 2016
TLS SNI support enabled
configure arguments: –with-pcre=pcre-8.38 –add-module=nginx-rtmp-module-1.1.11
Nginx+obs安裝及配置 安裝obs
wujianjun@wujianjun-work ~ $ sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next wujianjun@wujianjun-work ~ $ sudo apt-get update && sudo apt-get install ffmpeg wujianjun@wujianjun-work ~ $ sudo apt-get install obs-studio wujianjun@wujianjun-work ~ $ sudo add-apt-repository ppa:obsproject/obs-studio wujianjun@wujianjun-work ~ $ sudo apt-get update && sudo apt-get install obs-studio
nginx加裝rtmp模塊
nginx-rtmp-module ( https://github.com/arut/nginx-rtmp-module )
wujianjun@wujianjun-work ~ $ sudo apt-get install build-essential wujianjun@wujianjun-work ~ $ wget wget http://nginx.org/download/nginx-1.13.6.tar.gz wujianjun@wujianjun-work ~/nginx-1.13.6 $ wget https://github.com/arut/nginx-rtmp-module/archive/v1.1.11.tar.gz wujianjun@wujianjun-work ~/nginx-1.13.6 $ tar -xvf v1.1.11.tar.gz wujianjun@wujianjun-work ~/nginx-1.13.6 $ wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.tar.gz wujianjun@wujianjun-work ~/nginx-1.13.6 $ tar -xvf pcre-8.38.tar.gz wujianjun@wujianjun-work ~/nginx-1.13.6 $ ls -all 總用量 748 drwxr-xr-x 9 wujianjun wujianjun 4096 10月 15 11:39 . drwxr-xr-x 63 wujianjun wujianjun 4096 10月 15 11:33 .. drwxr-xr-x 6 wujianjun wujianjun 4096 10月 15 11:33 auto -rw-r--r-- 1 wujianjun wujianjun 282456 10月 10 23:22 CHANGES -rw-r--r-- 1 wujianjun wujianjun 430416 10月 10 23:22 CHANGES.ru drwxr-xr-x 2 wujianjun wujianjun 4096 10月 15 11:33 conf -rwxr-xr-x 1 wujianjun wujianjun 2502 10月 10 23:22 configure drwxr-xr-x 4 wujianjun wujianjun 4096 10月 15 11:33 contrib drwxr-xr-x 2 wujianjun wujianjun 4096 10月 15 11:33 html -rw-r--r-- 1 wujianjun wujianjun 1397 10月 10 23:22 LICENSE drwxr-xr-x 2 wujianjun wujianjun 4096 10月 15 11:33 man drwxrwxr-x 6 wujianjun wujianjun 4096 2月 13 2017 nginx-rtmp-module-1.1.11 drwxr-xr-x 7 wujianjun wujianjun 4096 11月 23 2015 pcre-8.38 -rw-r--r-- 1 wujianjun wujianjun 49 10月 10 23:22 README drwxr-xr-x 9 wujianjun wujianjun 4096 10月 15 11:33 src wujianjun@wujianjun-work ~/nginx-1.13.6 $ ./configure --with-pcre=pcre-8.38 --add-module=nginx-rtmp-module-1.1.11 wujianjun@wujianjun-work ~/nginx-1.13.6 $ make && sudo make install wujianjun@wujianjun-work ~/nginx-1.13.6 $ ls -all /usr/local/nginx/ 總用量 24 drwxr-xr-x 6 root root 4096 10月 15 16:11 . drwxr-xr-x 11 root root 4096 10月 15 16:11 .. drwxr-xr-x 2 root root 4096 10月 15 16:11 conf drwxr-xr-x 2 root root 4096 10月 15 16:11 html drwxr-xr-x 2 root root 4096 10月 15 16:11 logs drwxr-xr-x 2 root root 4096 10月 15 16:11 sbin
增加rtmp協(xié)議配置
wujianjun@wujianjun-work ~/nginx-1.13.6 $ sudo vi /usr/local/nginx/conf/nginx.conf
在nginx.conf文件末尾增加以下rtmp協(xié)議的配置
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
}
}
}
啟動&測試
啟動nginx
wujianjun@wujianjun-work ~/nginx-1.13.6 $ sudo /usr/local/nginx/sbin/nginx
啟動OBS
打開剛安裝的OBS軟件,在來源處配置圖像的推送來源(我這里選擇窗口捕獲),點擊右下角”設(shè)置”,進行如下圖配置流推送地址

配置完成后,點擊”開始推流”
啟動支持網(wǎng)絡(luò)流播放的視頻播放器(演示使用vlc播放器)
配置網(wǎng)絡(luò)流播放的地址,如下圖:

當(dāng)點擊”播放”后,稍等幾秒,即可看到播放器顯示了obs捕獲的圖像了。

由于視頻流需要通過網(wǎng)絡(luò)進行傳輸,所以直播圖像會有幾秒的延遲。
http訪問直播視頻
1、更改nginx.conf中配置,增加hls配置(hls是在流媒體服務(wù)器中用來存放流媒體的文件夾),再次hls所在目錄設(shè)置為http協(xié)議訪問目錄即可,更改后的配置如下:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
hls on;
hls_path /usr/share/nginx/html/hls;
hls_fragment 5s;
}
}
}
http {
server {
listen 80;
.....
location / {
#root html;
root /usr/share/nginx/html;
index index.html index.htm;
}
.....
}
}
注意:hls所在目錄nginx的用戶必須有寫入權(quán)限。
2、obs軟件配置錄制流名稱
在配置obs推送流URL的下方有一個設(shè)置”流名稱”的地方,這里可以隨意填寫一個名稱(我這里示例填入”test”)
3、重啟一下nginx與obs軟件,我們即可在手機瀏覽器中輸入 http://ip/hls/test.m3u8 即可通過手機播放直播視頻。(直播延遲有點大,后續(xù)出文章優(yōu)化)

- nginx-rtmp-module構(gòu)建流媒體直播服務(wù)器實戰(zhàn)指南
- Nginx通過nginx-rtmp-module模塊搭建流媒體服務(wù)器實現(xiàn)直播
- 利用nginx搭建RTMP視頻點播、直播、HLS服務(wù)器
- 使用Nginx搭載rtmp直播服務(wù)器的方法
- Nginx搭建rtmp直播服務(wù)器實現(xiàn)代碼
- 詳解Ubuntu18.04下配置Nginx+RTMP+HLS+HTTPFLV服務(wù)器實現(xiàn)點播/直播/錄制功能
- Nginx-rtmp實現(xiàn)直播媒體實時流效果
- Mac上搭建nginx+rtmp直播服務(wù)器的步驟詳解
- nginx+rtmp實現(xiàn)直播完整流程
相關(guān)文章
nginx配置將HTTPS請求轉(zhuǎn)換成HTTP的方法實現(xiàn)
Nginx是一個很流行、很強大的代理軟件,我們可以借助Nginx,設(shè)置 http強轉(zhuǎn)https,本文就來詳細的介紹一下,感興趣的可以了解一下2023-09-09
nginx搭建IPv6 ->IPv4反向代理服務(wù)器的實現(xiàn)
本文主要介紹了nginx搭建IPv6 ->IPv4反向代理服務(wù)器的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-05-05
Nginx geoip模塊實現(xiàn)地區(qū)性負載均衡
相信做過awstats的都用過開源的geoip.dat ip數(shù)據(jù)庫,剛好nginx wiki上有g(shù)eoip 模塊,這樣就可以實現(xiàn)地區(qū)性的負載均衡,但是maxmind 的ip數(shù)據(jù)庫對中國的支持不算太好,不過現(xiàn)在也不錯了~2010-12-12
Nginx location 和 proxy_pass路徑配置問題小結(jié)
本文是基于 location 的匹配末尾是否配置 / 和 proxy_pass 末尾是否配置 / ,進行測試,完全還原了整個測試過程,本文給大家介紹Nginx location 基本配置及相關(guān)配置文件,感興趣的朋友跟隨小編一起看看吧2021-09-09

