安裝nginx的依賴庫
sudo apt-get updatesudo apt-get install libpcre3 libpcre3-devsudo apt-get install openssl libssl-dev
配置并編譯nginx
使用nginx的默認(rèn)配置,添加nginx的rtmp模塊。
./configure --add-module=../nginx-rtmp-module-mastermakesudo make install
運(yùn)行測試nginx
進(jìn)入安裝目錄/usr/local/nginx,運(yùn)行命令./sbin/nginx
注意:以后所有的命令都在/usr/local/nginx目錄運(yùn)行,也nginx配置文件的相對(duì)目錄。
打開瀏覽器在地址欄輸入:localhost。如果,如下圖顯示那樣就證明您的nginx服務(wù)器搭建成功了。
通過上一步nginx服務(wù)器已經(jīng)搭建完成,然后我們就可以開啟一個(gè)視頻點(diǎn)播的服務(wù)了。打開配置文件nginx.conf,添加RTMP的配置。
worker_processes 1;events { worker_connections 1024;}rtmp { #RTMP服務(wù) server { listen 1935; #//服務(wù)端口 chunk_size 4096; #//數(shù)據(jù)傳輸塊的大小 application vod { play /opt/vide/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為存放視頻文件的位置了,那我們就往里面放一個(gè)文件吧。我放了一個(gè)qq.mp4文件。
sudo ./sbin/nginx -s reload
打開視頻播放軟件選用的是VLC media-> open network stream….
如圖填寫我們要點(diǎn)播的節(jié)目地址rtmp://localhost/vod/qq.mp4 如圖:
接著我們就在點(diǎn)播服務(wù)器配置文件的基礎(chǔ)之上添加直播服務(wù)器的配置。一共2個(gè)位置,第一處就是給RTMP服務(wù)添加一個(gè)application這個(gè)名字可以任意起,也可以起多個(gè)名字,由于是直播我就叫做它live吧,如果打算弄多個(gè)頻道的直播就可以live_cctv1、live_cctv2名字任意。第二處就是添加兩個(gè)location字段,字段的內(nèi)容請直接看文件吧。
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; } }}
添加完這兩處之后,重新啟動(dòng)nginx打開瀏覽器看看,是否有如下圖顯示:
還等什么讓我們推送一個(gè)節(jié)目看看(其實(shí)專業(yè)詞叫錄制,后面將會(huì)使用錄制這個(gè)詞。)吧。
這次推送我使用的是OBS(Open Broadcaster Software)有關(guān)它的安裝請參考先前我寫的Ubuntu安裝OBS(Open Broadcaster Software)后面的博客里我會(huì)給大家介紹如何使用手機(jī)采集視頻并且推送到服務(wù)器上。
我們想一想如果直播服務(wù)能夠把節(jié)目錄制在本地,我們不就可以直接進(jìn)行回看先前的節(jié)目了嗎?回看一分鐘、一小時(shí)甚至一天的。想想就興奮不用寫代碼有現(xiàn)成的可以使用。怎么用呢?繼續(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; #這個(gè)參數(shù)把直播服務(wù)器改造成實(shí)時(shí)回放服務(wù)器。 wait_key on; #對(duì)視頻切片進(jìn)行保護(hù),這樣就不會(huì)產(chǎn)生馬賽克了。 hls_path /opt/video/hls; #切片視頻文件存放位置。 hls_fragment 10s; #每個(gè)視頻切片的時(shí)長。 hls_playlist_length 60s; #總共可以回看的事件,這里設(shè)置的是1分鐘。 hls_continuous on; #連續(xù)模式。 hls_cleanup on; #對(duì)多余的切片進(jìn)行刪除。 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.添加完成后需要重新啟動(dòng)nginx,由于這次nginx需要向服務(wù)器寫切片視頻文件,但nginx我又沒有給nginx指定用戶名只能走默認(rèn)的nobody用戶和nogroup用戶組,其實(shí)就是沒有組。所以我對(duì)需要寫入的目錄做了增大權(quán)限的修改。
如下圖,這樣做就是為了避免由于權(quán)限問題而無法寫文件。
到此已經(jīng)結(jié)束。如有問題歡迎留言。
聯(lián)系客服