不知不覺筆者來到流媒體部門已經一年半多了,積攢了很多的流媒體知識,但平時工做也比較忙,不多進行總結性的梳理,最近準備花幾個週末時間寫一個流媒體系列的實踐文章,也算是給本身作總結的同時幫助有須要的開發者;nginx
在這一節中咱們主要是經過nginx
+rtmp
模塊搭建一個點播服務,就是你有不少視頻文件,想讓其餘人觀看就能夠參考這篇文章,和筆者以前的一篇文章 使用PHP結合Ffmpeg快速搭建流媒體服務實踐 ,應用場景基本一致,不過這篇文章當中不涉及任何代碼,相對來講更加簡單。git
在這個流媒體系列文章當中,已實踐爲主,在文章當中的每一條命令都通過筆者親自運行並提供相關截圖,並說明其中參數的來意,但願可以更好的幫助到讀者。github
爲了此服務後期部署到生產環境中,筆者採用docker方式來搭建此服務,而且通常在生產環境中咱們一般使用Linux系統做爲服務器,因此我選擇了Ubuntu這個系統,其餘系統搭建流程基本相似。docker
rtmp服務默認端口是1935,另外安裝nginx後須要進行驗證,須要開放一個http端口,爲了防止和宿主機衝突,這裏咱們使用8081端口;咱們須要將視頻文件拷貝到容器中,所以還須要掛載一個目錄,所以docker容器運行命令以下所示ubuntu
docker run --name video -v /Users/tangqingsong/files:/root/videos -d -i -p 8081:8081 -p 1935:1935 ubuntu:18.04 && docker ps
複製代碼
命令很執行完成以後,docker返回結果以下圖所示 vim
docker exec -it video bash
複製代碼
命令執行完成以後,返回信息以下圖所示 segmentfault
docker的Ubuntu鏡像apt軟件源默認使用官方域名,這個域名在國內訪問很是慢,爲了後續安裝速度可以更快,咱們將apt的軟件源更換成阿里雲源的地址,執行命令以下所示瀏覽器
echo 'deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse ' > /etc/apt/sources.list && cat /etc/apt/sources.list
複製代碼
命令執行以後,返回的信息以下圖所示 bash
接下來咱們更新一下本地的軟件源信息,執行命令以下所示服務器
apt update
複製代碼
命令執行以後,返回的信息以下圖所示
在咱們準備好系統環境以後,咱們就須要開始安裝Nginx了,安裝Nginx咱們須要先把他的依賴給安裝,而後下載相關的源碼進行編譯,最後執行編譯安裝
在咱們更新apt軟件源完成以後,就能夠安裝Nginx等一些軟件的依賴環境,執行的命令以下所示
apt-get install -y libpcre3 libpcre3-dev libssl-dev zlib1g-dev gcc wget unzip vim make curl
複製代碼
安裝的依賴軟件有點多,會根據你的網速安裝速度也不同,命令執行以後,返回的信息以下圖所示
咱們首先將須要的模塊下載下來,這裏我不許備使用nginx-rtmp-module
,而是使用nginx-http-flv-module
來替代,由於後者是基於前者開發的,前者擁有的功能後者都有,後者是國內的開發開發,有中文文檔,因此就採用它了,首先將它下載下來並解壓,執行的命令以下所示
wget https://github.com/winshining/nginx-http-flv-module/archive/master.zip ; unzip master.zip
複製代碼
命令執行以後,返回的信息以下圖所示
wget http://nginx.org/download/nginx-1.17.6.tar.gz && tar -zxvf nginx-1.17.6.tar.gz
複製代碼
命令執行以後,返回的信息以下圖所示
接着咱們進入編譯安裝環節,首先進入剛纔解壓的nginx目錄當中,執行的命令以下所示
cd nginx-1.17.6 && ls
複製代碼
命令執行以後,返回的信息以下圖所示
./configure
即可以配置編譯參數,這個地方咱們須要將剛纔下載的插件
nginx-http-flv-module
加入進來,執行的命令以下所示
./configure --add-module=../nginx-http-flv-module-master
複製代碼
命令執行以後,返回的信息以下圖所示
vim objs/Makefile
複製代碼
在當前文件夾下有一個objs/Makefile
文件,咱們將裏面的-Werror
刪除,用vim打開文件後以下所示
命令執行以後,返回的信息以下圖所示
刪除以後,保存並退出,接着就能夠進行編譯Nginx了,編譯的過程稍微有點長,執行的命令以下所示
make
複製代碼
命令執行以後,返回的信息以下圖所示
make install
複製代碼
安裝命令執行以後,返回的信息以下圖所示
在完成Nginx的安裝以後,咱們須要對Nginx進行一番配置,並啓動Nginx服務
咱們直接使用vim
命令去編輯Nginx的配置文件,執行命令以下所示
vim /usr/local/nginx/conf/nginx.conf
複製代碼
vim命令執行以後,打開的編輯窗口以下所示
rtmp { #RTMP服務
server {
listen 1935; #//服務端口
chunk_size 4096; #//數據傳輸塊的大小
application vod {
play /opt/video/vod; #//視頻文件存放位置。
}
}
}
複製代碼
粘貼完成並保存以後,咱們在終端執行nginx -t
命令,來測試一下配置文件是否有異常,執行命令以下所示
/usr/local/nginx/sbin/nginx -t
複製代碼
命令執行以後,返回的信息以下圖所示
/usr/local/nginx/sbin/nginx && curl http://127.0.0.1
複製代碼
命令執行以後,返回的信息以下圖所示
在上述環節都操做完畢以後,此時基本都處於正常,如今咱們就能夠開始來播放視頻了,不過咱們還須要在視頻目錄下放一個視頻文件,這樣才能播放到這個視頻
接着咱們建立一個存放視頻的文件夾,並將權限設置設置爲777,防止由於權限問題致使沒法播放,執行命令以下所示
mkdir -p /opt/video/vod && chmod -R 777 /opt/video/vod
複製代碼
命令執行以後,返回的信息以下圖所示
cp /root/videos/out.mp4 /opt/video/vod && ls /opt/video/vod
複製代碼
命令執行以後,返回的信息以下圖所示
out.mp4
文件複製到此目錄中,接着咱們就能夠測試播放了;不過在測試播放以前咱們須要安裝一個視頻播放器,由於瀏覽器是不支持
rtmp
協議。
通常用於調試流媒體咱們習慣使用vlc播放器,咱們去官網下載一下他,官網地址以下
https://www.videolan.org/
複製代碼
使用瀏覽器打開官網後,咱們在首頁能看到下載按鈕,同時也能夠看出支持各類平臺,默認下載當前系統的版本,以下圖所示
下載並安裝vlc播放器完成後,咱們須要在菜單中找到File
->Open Network
,以下圖所示
點擊Open Network
選項後,會打開一個新的窗口,在這個窗口中咱們能夠輸入咱們的播放地址,我剛纔複製過去的視頻播放地址對應以下所示
rtmp://localhost/vod/out.mp4
複製代碼
在上圖中能夠看到窗口中有一個輸入框,將播放地址複製進去以後,點擊右下方的open
按鈕,就能夠開始播放了,點擊後成功播放效果下圖所示
做者:湯青松
日期:2019-11-28
微信:songboy8888