欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Ubuntu18.04下配置Nginx+RTMP+HLS+HTTPFLV服務(wù)器實(shí)現(xiàn)點(diǎn)播/直播/錄制功能

 更新時間:2020年07月07日 09:49:59   作者:李洛  
這篇文章主要介紹了Ubuntu18.04下配置Nginx+RTMP+HLS+HTTPFLV服務(wù)器實(shí)現(xiàn)點(diǎn)播/直播/錄制功能,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

2019.9.4更新

繼續(xù)玩又發(fā)現(xiàn)個好玩的東西,nginx-http-flv-module模塊,集成了之前的RTMP模塊,又有httpflv模塊,還是咱們國內(nèi)程序員大神開發(fā)維護(hù),真是開心,國內(nèi)的大神如此出色,為他們這些愿意分享技術(shù)的人點(diǎn)32個贊,具體的編譯和安裝方式與RTMP模塊基本一樣,配置readme中也說得很詳細(xì),就不贅述了,需要注意的一點(diǎn)是,httpflv方式客戶端想看也是需要服務(wù)設(shè)置cors的,這點(diǎn)readme中沒有提到好像。

2019.6.27更新

再更新個windows版本的搭建方法,鏈接在這里,附上我上傳的下載包地址,免得有一天把鏈接取消了,最新版本的包含nginx-rtmp-module已經(jīng)開始收費(fèi)了。

2019.6.26更新

雖然叫rtmp-module,但是這個插件也支持hls協(xié)議,在配置文件nginx.conf的rtmp塊中再添加一個配置,如下:

application hls {
  live on;
  hls on;
  hls_path /opt/video/hls;
  hls_fragment 5s;
 }

hls_path表示的是.m3u8文件位置,上面代碼添加后再到server塊中添加一個路由,如下:

location /hls {
  types {
  application/vnd.apple.mpegurl m3u8;
  video/mp2t ts;
  }
  alias /opt/video/hls;
  expires -1;       add_header 'Access-Control-Allow-Origin' '*' always;
 }

注意:因?yàn)槭褂胔ttp協(xié)議,所以請在配置中允許跨域,否則無法拉流。

這時如果路徑下有.m3u8文件就能拉流了,舉例如果上面路徑中有一個index.m3u8的文件,在VLC中輸入http://127.0.0.1/hls/index.m3u8就可以拉流了。

除了能接收hls流之外,在上面的配置該模塊還能將rtmp流轉(zhuǎn)為hls流,這個其實(shí)有點(diǎn)意思的,因?yàn)閞tmp流播放時要用flash的,但是現(xiàn)在的瀏覽器大多已經(jīng)越來越嚴(yán)格的限制flash了,需要手動點(diǎn)擊才能加載flash插件,像chrome是默認(rèn)禁用的且不彈窗提示的,可能會讓你懷疑人生,轉(zhuǎn)成hls流之后就不依賴flash了,用戶體驗(yàn)更好一些。

2019.3.22更新

最新的nginx-1.15.9可與openssl1.1.1兼容了

以下原文:

這個東西我眼饞挺久了,最近終于試玩了一下,感覺很好玩,在搭建的過程在也遇到一些坑,這里總結(jié)一下

安裝配置nginx

在開始配置nginx之前,咱們先把nginx依賴的一些軟件安裝完畢

sudo apt-get install libpcre3 libpcre3-dev libssl-dev zlib1g-dev

接著為本次測試創(chuàng)建個文件夾,在/etc目錄下創(chuàng)建個rtmpserver文件夾,把下載的源碼都放在這里。

然后下載nginx源代碼,建議用最新版本,我這里用的是1.8.1,源碼下載地址在這里,下載后解壓

下載openssl源碼,下載地址在這里,下載后解壓(Ubuntu軟件源中雖然有openssl包,但是版本是1.1,比較坑的是openssl1.1版本與nginx-1.8.1不兼容,編譯會報錯導(dǎo)致無法通過,請使用1.0.x版本,這里用的是1.0.2k)

再下載nginx-rtmp-module源碼,下載地址在這里

下載方法就不贅述了,用wget就行,解壓完成后文件夾內(nèi)文件列表如下:

接下來咱們要編譯nginx了,但是在編譯前做一件事,進(jìn)入nginx-1.8.1文件夾內(nèi)的objs文件夾,編輯Makefile文件,找到第二行

把里面的-Werror去掉,如果不去掉會把warning當(dāng)作error來處理,結(jié)果就是編譯不通過,但是程序員只在意error不在意warning,所以去掉。

然后退到上級目錄nginx-1.8.1目錄下,添加配置并安裝:

./configure --with-openssl=../openssl-1.0.2k --add-module=../nginx-rtmp-module-master

make
sudo make install

nginx1.5之后不需要http-ssl模塊了,這樣就可以了。默認(rèn)安裝在/usr/local/nginx路徑下,進(jìn)入該路徑下,目錄如下:

其中conf文件夾下存放nginx的配置文件,sbin存放nginx的啟動文件,先進(jìn)入sbin文件夾,然后執(zhí)行命令

./nginx -t
./nginx

第一條命令檢查配置文件是否正確,第二條命令啟動nginx,啟動后在瀏覽器中輸入127.0.0.1或localhost或本機(jī)IP,出現(xiàn)歡迎頁面表示啟動成功,沒有請檢查端口號是否已被占用。

配置視頻點(diǎn)播服務(wù)器

進(jìn)入nginx安裝路徑/usr/local/nginx,進(jìn)入conf文件夾,編輯nginx.conf文件,添加一個rtmp節(jié)點(diǎn),并配置監(jiān)聽端口,具體如下:

worker_processes 1;
events {
 worker_connections 1024;
}
rtmp{
 server{
 listen 1935;
 chunk_size 4096;
 application vod{
  play /opt/video/vod;
 }
 }
}
http {
 include mime.types;
 default_type application/octet-stream;
 sendfile on;
 keepalive_timeout 65;
 server {
 listen 8081;
 server_name localhost;
 location / {
  root html;
  index index.html index.htm;
 }
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
  root html;
 }
 }
}

就這么簡單就可以,把一個名為480.mp4的視頻文件放到/opt/video/vod目錄下,打開VLC,選擇媒體-》打開網(wǎng)絡(luò)串流,輸入如下鏈接:rtmp://192.168.1.11/vod/480.mp4

視頻成功出來,表示成功!就這么簡單!

配置視頻直播服務(wù)器

再次編輯nginx.conf文件,在rtmp節(jié)點(diǎn)下添加一個live配置,在http節(jié)點(diǎn)下兩個路由,具體如下:

worker_processes 1;
events {
 worker_connections 1024;
}
rtmp{
 server{
 listen 1935;
 chunk_size 4096;
 application vod{
  play /opt/video/vod;
 }
 #添加直播配置
 application live{
  live on;
 }
 }
}
http {
 include mime.types;
 default_type application/octet-stream;
 sendfile on;
 keepalive_timeout 65;
 server {
 listen 8081;
 server_name localhost;
 #配置查看服務(wù)器狀態(tài)路由
 location /stat{
  rtmp_stat all;
  rtmp_stat_stylesheet stat.xsl;
 }
 #配置狀態(tài)信息來源
 location /stat.xsl{
  root /etc/rtmpserver/nginx-rtmp-module/;
 }
 location / {
  root html;
  index index.html index.htm;
 }
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
  root html;
 }
 }
}

三處加注釋的地方分別是新加的配置,事實(shí)上只需要添加第一個配置就可實(shí)現(xiàn)直播功能了,后面兩個只是用來監(jiān)控服務(wù)器和客戶端情況的。

保存后重啟nginx,在瀏覽器中輸入http://192.168.1.11.8081/stat,可看到下圖

這是服務(wù)器狀態(tài)監(jiān)控頁面,因我目前沒有進(jìn)行任何操作,所以clients數(shù)據(jù)都是0。

我使用VLC播放480.mp4視頻,刷新頁面,頁面數(shù)據(jù)如下

接下來我使用OBS推流,在另一臺windows機(jī)器上安裝OBS,設(shè)置如下:

url輸入nginx服務(wù)器地址,后面的live是咱們的應(yīng)用名字,下面的播放路徑可填可不填,我這里填的是test,然后打開VLC,選擇打開網(wǎng)絡(luò)串流,輸入“rtmp://192.168.1.11:1935/live/test”

注:OBS設(shè)置中的url和VLC拉流時的url中的端口號可不填,rtmp默認(rèn)使用1935端口

開啟視頻錄制功能

我們有時候可能想在直播視頻的同時錄制視頻,以便后面觀看,這個也是可以配置的,在上面的live配置下,添加錄制配置,如下:

application live{
  live on;
  allow play all;
  record all;
  record_path /opt/video/record;
  record_unique on;
 }

其中record_path是錄制視頻的存放路徑(記得開啟寫權(quán)限)。添加后重新啟動nginx后重新推流,查看/opt/video/record路徑下的文件

可以看到多了一個test+時間戳命名的flv文件,這就是錄制的視頻了。

在瀏覽器中播放視頻流

在上面的測試中,都是使用VLC拉的流,但是現(xiàn)在越來越多的是使用web而不是客戶端了,所以咱們還是要想辦法能夠通過瀏覽器觀看直播視頻,前面的nginx-rtmp-module中自帶的就有這個功能,使用jwplayer播放,下面看看怎么使用。

在nginx.conf配置文件中再添加一個應(yīng)用myapp接收視頻流,如下

application myapp{
  live on;
 }

然后在server中添加兩個路由,如下

location /rtmp-publisher {
  root /etc/rtmpserver/nginx-rtmp-module/test;
 }

location / {
  root /etc/rtmpserver/nginx-rtmp-module/test/www;
 }

默認(rèn)路由到nginx-rtmp-module下的test/www下,咱們cd到剛才解壓后的nginx-rtmp-module文件夾中的test/www中,看看有什么

可以看到一個index.html文件,那nginx就會默認(rèn)把這個文件展現(xiàn),咱們再查看下這個文件的內(nèi)容

可以看到有一個眼熟的rtmp鏈接,把其中的localhost改為本機(jī)IP192.168.1.11,后面的mystream是視頻流名稱,然后咱們在OBS中的推流中修改設(shè)置的url和播放路徑(視頻流名稱)

然后打開瀏覽器,輸入192.168.1.11:8081(我修改了配置文件,nginx監(jiān)聽8081端口),可以看到如下畫面

點(diǎn)擊播放按鈕,畫面出來,說明成功!

目前的測試就先到這里,并不是我自己琢磨出來的,而是在學(xué)習(xí)了別人分享的基礎(chǔ)上搞出來的,下面是學(xué)習(xí)來源:

csdn朋友分享

知乎朋友分享

csdnnginx依賴安裝

nginx錯誤匯總

到此這篇關(guān)于Ubuntu18.04下配置Nginx+RTMP+HLS+HTTPFLV服務(wù)器實(shí)現(xiàn)點(diǎn)播/直播/錄制功能的文章就介紹到這了,更多相關(guān)Ubuntu 配置服務(wù)器實(shí)現(xiàn)點(diǎn)播直播錄制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論