最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用nginx搭建RTMP視頻點播、直播、HLS服務器

 更新時間:2022年05月24日 10:29:42   作者:王小鵬鵬  
本文主要介紹了利用nginx搭建RTMP視頻點播、直播、HLS服務器,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

開發(fā)環(huán)境

nginx的服務器的搭建

安裝nginx的依賴庫

sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install openssl libssl-dev

配置并編譯nginx
使用nginx的默認配置,添加nginx的rtmp模塊。

./configure --add-module=../nginx-rtmp-module-master
make
sudo make install

運行測試nginx
進入安裝目錄/usr/local/nginx,運行命令./sbin/nginx

注意:以后所有的命令都在/usr/local/nginx目錄運行,也nginx配置文件的相對目錄。

打開瀏覽器在地址欄輸入:localhost。如果,如下圖顯示那樣就證明您的nginx服務器搭建成功了。

點播視頻服務器的配置

通過上一步nginx服務器已經搭建完成,然后我們就可以開啟一個視頻點播的服務了。打開配置文件nginx.conf,添加RTMP的配置。

worker_processes  1;

events {
    worker_connections  1024;
}
rtmp {                #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       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

配置目錄*/opt/video/vod*為存放視頻文件的位置了,那我們就往里面放一個文件吧。我放了一個qq.mp4文件。


文件放好之后,那就讓我們重新啟動一下nginx

sudo ./sbin/nginx -s reload

打開視頻播放軟件選用的是VLC media-> open network stream…
如圖填寫我們要點播的節(jié)目地址rtmp://localhost/vod/qq.mp4 如圖:

點擊play就可以播放了。
當然點播不使用RTMP插件nginx自身也是可以實現點播服務的。那就是配置location部分,由于下面我們要配置直播和回看功能所以選用了RTMP服務。

直播視頻服務器的配置

接著我們就在點播服務器配置文件的基礎之上添加直播服務器的配置。一共2個位置,第一處就是給RTMP服務添加一個application這個名字可以任意起,也可以起多個名字,由于是直播我就叫做它live吧,如果打算弄多個頻道的直播就可以live_cctv1、live_cctv2名字任意。第二處就是添加兩個location字段,字段的內容請直接看文件吧。

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       80;
        server_name  localhost;
	
	location /stat {     #第二處添加的location字段。
            rtmp_stat all;
	    rtmp_stat_stylesheet stat.xsl;
	}

	location /stat.xsl { #第二處添加的location字段。
		root /usr/local/nginx/nginx-rtmp-module/;
	}

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

添加完這兩處之后,重新啟動nginx打開瀏覽器看看,是否有如下圖顯示:

有沒有看到紅框框的live字樣呢?如果可以顯示出來,證明你的配置生效了。

還等什么讓我們推送一個節(jié)目看看(其實專業(yè)詞叫錄制,后面將會使用錄制這個詞。)吧。

這次推送我使用的是OBS(Open Broadcaster Software)會給大家介紹如何使用手機采集視頻并且推送到服務器上。

首先安裝FFmpeg

添加源:

sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next

更新源:

sudo apt-get update

安裝:

sudo apt-get install ffmpeg

如果是Ubuntu 15.04可以直接使用

sudo apt-get install ffmpeg

安裝obs-studio

添加源:

sudo add-apt-repository ppa:obsproject/obs-studio

更新源:

sudo apt-get update

安裝:

sudo apt-get install obs-studio

配置OBS如圖:

點擊紅圈添加“Media Source”,會彈出一個框框,里面的內容就按照圖片顯示配置就可以了。點擊“OK”就能在你的屏幕上播放了。

配置節(jié)目的輸出流如圖所示:

首先點擊紅圈“setting”進入設置界面。記得要正確填寫要錄制的服務器路徑啊。配置好就可以點擊OK了。退出后點擊藍圈,就開始錄制節(jié)目了。

查看我們的了錄制的節(jié)目,服務器有沒有接收到呢?打開我的服務器地址“http://localhost/stat”查看一下 ,你的顯示是否和我的相同呢?如果相同證明服務器已經接收到了錄制的節(jié)目,客戶端可以進行播放了。

播放的地址就是“rtmp://localhost/live/test”,如果您本地有支持rtmp協(xié)議的播放器就可以試試了。最后奉上一張觀看直播的屏幕截圖。

實時回看視頻服務器的配置

我們想一想如果直播服務能夠把節(jié)目錄制在本地,我們不就可以直接進行回看先前的節(jié)目了嗎?回看一分鐘、一小時甚至一天的。想想就興奮不用寫代碼有現成的可以使用。怎么用呢?繼續(xù)看nginx的配置吧。

worker_processes  1;

events {
    worker_connections  1024;
}

rtmp {
    server {
        listen 1935;
	chunk_size 4096;
        
	application vod {
		play /opt/video/vod;
	}

        application live {
        live on;
	    hls on; #這個參數把直播服務器改造成實時回放服務器。
	    wait_key on; #對視頻切片進行保護,這樣就不會產生馬賽克了。
	    hls_path /opt/video/hls; #切片視頻文件存放位置。
	    hls_fragment 10s;     #每個視頻切片的時長。
	    hls_playlist_length 60s;  #總共可以回看的事件,這里設置的是1分鐘。
	    hls_continuous on; #連續(xù)模式。
	    hls_cleanup on;    #對多余的切片進行刪除。
	    hls_nested on;     #嵌套模式。
        }
    }
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
	location /stat {
            rtmp_stat all;
	    rtmp_stat_stylesheet stat.xsl;
	}

	location /stat.xsl {
		root /usr/local/nginx/nginx-rtmp-module/;
	}
	
	location /live {  #這里也是需要添加的字段。
		types {  
			application/vnd.apple.mpegurl m3u8;  
			video/mp2t ts;  
		}
		alias /opt/video/hls;   
		expires -1;
		add_header Cache-Control no-cache;  
	}  

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

1.添加完成后需要重新啟動nginx,由于這次nginx需要向服務器寫切片視頻文件,但nginx我又沒有給nginx指定用戶名只能走默認的nobody用戶和nogroup用戶組,其實就是沒有組。所以我對需要寫入的目錄做了增大權限的修改。

如下圖,這樣做就是為了避免由于權限問題而無法寫文件。

2.如何給服務器錄制視頻,在上一節(jié)已經說過,這里就不再說了。

3.查看視頻文件是否真的錄制上沒有,繼續(xù)看圖:

已經產生切片視頻文件了。其中還有一個index.m3u8。

4.播放視頻,這次可是http開頭的了,“http://localhost/live/test/index.m3u8”。

5.已經可以播放了,如何回看呢?其實這個index.m3u8文件僅僅是目錄。想回看那個就播放那個.ts文件就可以了。

到此這篇關于利用nginx搭建RTMP視頻點播、直播、HLS服務器的文章就介紹到這了,更多相關nginx搭建RTMP視頻點播內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Nginx-rewrite模塊概述

    Nginx-rewrite模塊概述

    從功能上看 rewrite 和 location 似乎有點像,都能實現跳轉,主要區(qū)別在于 rewrite 是在同一域名內更改獲取資源的路徑,這篇文章主要介紹了Nginx-rewrite模塊詳細介紹,需要的朋友可以參考下
    2023-06-06
  • 對Nginx支持SSL的性能進行優(yōu)化的方法

    對Nginx支持SSL的性能進行優(yōu)化的方法

    這篇文章主要介紹了對Nginx支持SSL的性能進行優(yōu)化的方法,作者分別以不同方法進行了8個優(yōu)化實驗,需要的朋友可以參考下
    2015-06-06
  • nginx安裝(1) ttlsa教程系列之nginx

    nginx安裝(1) ttlsa教程系列之nginx

    今年抽出時間完成平時工作上用到的nginx的一些小結這里先介紹下nginx的安裝方法,需要的朋友可以參考下
    2014-03-03
  • 手把手教你利用Nginx搭建屬于自己的服務器

    手把手教你利用Nginx搭建屬于自己的服務器

    最近總是想搭建自己的網站,奈何皮夾里空空如也,服務器也租不起,更別說域名了,于是我就尋思能否自己搭建個服務器,還不要錢呢,本文就來手把手教你如何實現吧
    2023-08-08
  • Nginx進程調度問題詳解

    Nginx進程調度問題詳解

    Nginx采用的是固定數量的多進程模型,由一個主進程(MasterProcess)和數量與主機CPU核數相同的工作進程協(xié)同處理各種事件。這篇文章主要介紹了Nginx進程調度問題,需要的朋友可以參考下
    2021-09-09
  • Nginx將http轉換成https的詳細過程

    Nginx將http轉換成https的詳細過程

    相信大家在現有項目里都會通過https訪問,這篇文章主要給大家介紹了關于Nginx將http轉換成https的詳細過程,文中將實現的方法介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • nginx如何限制訪問某些url

    nginx如何限制訪問某些url

    這篇文章主要關于介紹了nginx如何限制訪問某些url的相關資料,nginx是非常出色web服務器,對于靜態(tài)文件的處理非常高效,同時它的代理轉發(fā)功能和其它后臺服務器搭配起來也非常的簡單高效,需要的朋友可以參考下
    2023-08-08
  • Nginx報錯host not found in upstream的解決辦法

    Nginx報錯host not found in upstream的解決辦法

    本文主要介紹了Nginx報錯host not found in upstream的解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-08-08
  • Nginx更改conf配置文件的代碼詳解

    Nginx更改conf配置文件的代碼詳解

    本文主要介紹了Nginx如何更改conf配置文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作有一定的參考學習價值,需要的朋友們下面跟著小編來一起來學習吧
    2024-02-02
  • nginx配置虛擬主機vhost的方法詳解

    nginx配置虛擬主機vhost的方法詳解

    Nginx vhost配置,可實現基于ip、端口號、servername的虛擬主機,同時可避免直接修改主配置文件。在nginx下配置虛擬主機vhost非常方便。這篇文章主要介紹了nginx配置虛擬主機vhost的方法,需要的朋友可以參考下
    2017-03-03

最新評論

合川市| 枣庄市| 永新县| 根河市| 甘德县| 大宁县| 辽宁省| 甘孜县| 淮北市| 太谷县| 仪陇县| 平定县| 陆丰市| 长泰县| 长葛市| 鄂托克前旗| 迁西县| 都昌县| 泸州市| 莱阳市| 淮阳县| 含山县| 五莲县| 信宜市| 蓝田县| 营口市| 鲜城| 屯留县| 淮安市| 陈巴尔虎旗| 通道| 库尔勒市| 彩票| 罗田县| 满城县| 调兵山市| 漳平市| 文化| 林周县| 密云县| 临漳县|