<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
開發環境
安裝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…
如圖填寫我們要點播的節目地址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字樣呢?如果可以顯示出來,證明你的設定生效了。
還等什麼讓我們推播一個節目看看(其實專業詞叫錄製,後面將會使用錄製這個詞。)吧。
這次推播我使用的是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
點選紅圈新增“Media Source”,會彈出一個框框,裡面的內容就按照圖片顯示設定就可以了。點選“OK”就能在你的螢幕上播放了。
設定節目的輸出流如圖所示:
首先點選紅圈“setting”進入設定介面。記得要正確填寫要錄製的伺服器路徑啊。設定好就可以點選OK了。退出後點選藍圈,就開始錄製節目了。
檢視我們的了錄製的節目,伺服器有沒有接收到呢?開啟我的伺服器地址“http://localhost/stat”檢視一下 ,你的顯示是否和我的相同呢?如果相同證明伺服器已經接收到了錄製的節目,使用者端可以進行播放了。
播放的地址就是“rtmp://localhost/live/test”,如果您本地有支援rtmp協定的播放器就可以試試了。最後奉上一張觀看直播的螢幕截圖。
我們想一想如果直播服務能夠把節目錄制在本地,我們不就可以直接進行回看先前的節目了嗎?回看一分鐘、一小時甚至一天的。想想就興奮不用寫程式碼有現成的可以使用。怎麼用呢?繼續看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; #連續模式。 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.如何給伺服器錄製視訊,在上一節已經說過,這裡就不再說了。
3.檢視視訊檔是否真的錄製上沒有,繼續看圖:
已經產生切片視訊檔了。其中還有一個index.m3u8。
4.播放視訊,這次可是http開頭的了,“http://localhost/live/test/index.m3u8”。
5.已經可以播放了,如何回看呢?其實這個index.m3u8檔案僅僅是目錄。想回看那個就播放那個.ts檔案就可以了。
到此這篇關於利用nginx搭建RTMP視訊點播、直播、HLS伺服器的文章就介紹到這了,更多相關nginx搭建RTMP視訊點播內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45