nginx使用nginx-rtmp-module模塊實(shí)現(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; } } }
啟動(dòng)&測(cè)試
啟動(dòng)nginx
wujianjun@wujianjun-work ~/nginx-1.13.6 $ sudo /usr/local/nginx/sbin/nginx
啟動(dòng)OBS
打開剛安裝的OBS軟件,在來源處配置圖像的推送來源(我這里選擇窗口捕獲),點(diǎn)擊右下角”設(shè)置”,進(jìn)行如下圖配置流推送地址
配置完成后,點(diǎn)擊”開始推流”
啟動(dòng)支持網(wǎng)絡(luò)流播放的視頻播放器(演示使用vlc播放器)
配置網(wǎng)絡(luò)流播放的地址,如下圖:
當(dāng)點(diǎn)擊”播放”后,稍等幾秒,即可看到播放器顯示了obs捕獲的圖像了。
由于視頻流需要通過網(wǎng)絡(luò)進(jìn)行傳輸,所以直播圖像會(huì)有幾秒的延遲。
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的下方有一個(gè)設(shè)置”流名稱”的地方,這里可以隨意填寫一個(gè)名稱(我這里示例填入”test”)
3、重啟一下nginx與obs軟件,我們即可在手機(jī)瀏覽器中輸入 http://ip/hls/test.m3u8 即可通過手機(jī)播放直播視頻。(直播延遲有點(diǎn)大,后續(xù)出文章優(yōu)化)
相關(guān)文章
nginx could not build the server_names_hash 解決方法
服務(wù)器名字的hash表是由指令 server_names_hash_max_size 和 server_names_hash_bucket_size所控制的。2011-03-03linux查找當(dāng)前系統(tǒng)nginx路徑的兩種方法
工作中有很多服務(wù)器, 它們上面裝的 nginx 的路徑也太不相當(dāng), 當(dāng)我們拿到一個(gè)不熟悉的服務(wù)器時(shí), 我們?cè)趺粗? 當(dāng)前運(yùn)行的nginx的目錄是哪一個(gè)呢,本文小編給大家介紹了兩種linux查找當(dāng)前系統(tǒng)nginx的路徑的方法,需要的朋友可以參考下2023-11-11Linux下Tomcat+Nginx服務(wù)器環(huán)境安裝配置的簡(jiǎn)明教程
以Nginx作為反向代理再用Tomcat驅(qū)動(dòng)Java Web程序是當(dāng)今很流行的一種方案,那么這里我們就著眼于最基本的生產(chǎn)環(huán)境搭建,一起來看一下Linux下Tomcat+Nginx服務(wù)器環(huán)境安裝配置的簡(jiǎn)明教程2016-05-05詳解Linux環(huán)境下使Nginx服務(wù)器支持中文url的配置流程
這篇文章主要介紹了Linux環(huán)境下使Nginx服務(wù)器支持中文url的配置流程,文中還介紹了一個(gè)在Linux下將非UTF-8的文件名轉(zhuǎn)換為UTF-8編碼,的方法,需要的朋友可以參考下2016-04-04Nginx出現(xiàn)The plain HTTP request was sent to HTTPS port問題解決方法
這篇文章主要介紹了Nginx出現(xiàn)The plain HTTP request was sent to HTTPS port問題解決方法,需要的朋友可以參考下2015-04-04nginx關(guān)閉favicon.ico、robots.txt日志記錄配置
這篇文章主要介紹了nginx關(guān)閉favicon.ico、robots.txt日志記錄配置,同時(shí)提供了不允許訪問某些隱藏文件的配置方法,需要的朋友可以參考下2014-05-05高并發(fā)nginx服務(wù)器的linux內(nèi)核優(yōu)化配置講解
今天小編就為大家分享一篇關(guān)于高并發(fā)nginx服務(wù)器的linux內(nèi)核優(yōu)化配置講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03