2-視訊傳輸,監控,直播方案-搭建視訊流伺服器,推送視訊流,拉取視訊流觀看(RTMP,m3u8)
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/video_transmission" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
RTMP和RTSP其實是視訊傳輸協議,咱們在網路上看視訊的時候100%都是用的這兩種.
咱們在觀看視訊的時候應該有個感覺,咱是邊看視訊邊下載, 整個視訊是一點一點的拉取並播放.
拉取視訊資料就是使用的上面的協議.
這節呢咱就安裝並啟動RTMP伺服器,然後呢咱用除錯助手往伺服器上上傳視訊,
然後
安裝RTMP
1.上傳RTMP原始檔(方式1),下面有個方式2可以直接用git拉取,不需要自己上傳
在以下目錄點選上傳
2,解壓檔案
1.上傳RTMP原始檔(方式2)
在opt目錄點選終端,然後輸入一下git地址,然後點選回車
git clone git://github.com/arut/nginx-rtmp-module
下載完成以後, 重新進來這個頁面,或者重新整理一下, 就會看到已經下載好了
2.Nginx配置上RTMP功能
1.Nginx需要編譯安裝,咱上一節不是編譯安裝的,所以先解除安裝掉
2.點選安裝Nginx
3.配置Nginx安裝的時候新增上rtmp模組
--add-module=/opt/nginx-rtmp-module
解釋:--add-module即使新增模組的意思
後面的=/opt/nginx-rtmp-module 是咱這個模組的路徑(咱上面的RTMP檔案就解壓到了這裡)
4.開始安裝
要等好一小會............
5.安裝完成
6.檢測一下是否安裝上了rtmp
在隨意一個目錄點選終端然後輸入命令 nginx -V
在Nginx上配置RTMP伺服器
1,先啟動Nginx的Web伺服器功能
咱現在沒有域名什麼的,就只先配置成IP地址訪問的
2,在瀏覽器上輸入 http://自己的伺服器IP地址
比如我的是: http://116.62.178.48
3,在網站根目錄新建一個hls資料夾
該資料夾用來儲存RTMP處理之後的視訊檔案(這些視訊檔案就是客戶訪問播放的檔案)
點選根目錄
4,修改Nginx的配置檔案
注意!注意! hls_path /www/wwwroot/116.62.178.48/hls; 裡面的IP地址根據自己的修改
rtmp { server { listen 1935; #rtmp監聽的埠(預設1935) chunk_size 4000;#網路資料塊長度 application hls { #rtmp推流請求路徑 live on;#啟動直播功能 hls on;#啟動hls流功能(視訊切片) hls_path /www/wwwroot/116.62.178.48/hls; #就是推流檔案儲存位置 hls_fragment 5s;#視訊切片時間長度 hls_playlist_length 30s;#HLS播放列表長度 } } }
重新載入配置
4.提示
我之所以把視訊儲存到網站根目錄是因為發現放到其它目錄只能拉取到rtmp流,無法播放m3u8.....
先放到網站根目錄訪問,以後水平高了再看看啥問題
使用DBS軟體推送視訊到伺服器(咱先使用現成的軟體助手測試哈)
1,自行安裝(可以百度OBS軟體下載並安裝哈)
2,設定資料來源為電腦錄屏(如果電腦有攝像頭也可以選擇電腦上的攝像頭哈)
2,設定推送的RTMP地址
rtmp://替換自己伺服器的IP地址:1935/hls
祕鑰呢隨意(這個咱用別的客戶端訪問視訊資料的時候需要用到)
3,把視訊推送到RTMP伺服器
使用另外的軟體拉取咱推送的視訊(咱先使用現成的軟體助手測試哈)
1.首先看一下伺服器那個目錄裡面有沒有咱推送的視訊
推送視訊的時候我祕鑰設定的yang,所以視訊是yang命名的
yang.m3u8檔案是視訊索引檔案,
xxxx.ts檔案是視訊檔案,客戶端訪問的時候就是輪訓的挨個下載播放
其實呢這就是視訊切片.
2.自行安裝 VLC軟體
3.先試一試從伺服器拉取rtmp視訊流
rtmp://替換自己伺服器的ip地址/hls/yang
提示:最後那個yang就是咱推送的時候設定的祕鑰哈
4.再試一試從伺服器拉取m3u8視訊流
http://替換自己的ip地址/hls/yang.m3u8