基於nginx-rtmp搭建點播平臺
阿新 • • 發佈:2018-11-29
序言
RTMP(Real Time Message Protocol,實時資訊傳輸協議)協議屬於應用層協議,靠底層的 TCP 來保證資訊傳輸的可靠性。它由 Adobe 公司提出,用來解決多媒體資料傳輸流的多路複用(Multiplexing)和分包(packetizing)的問題。nginx-rtmp 是由俄羅斯人開發的 NGINX 模組,該模組完善了 NGINX 對視訊的支援,並且實現了對 HLS 的支援。
本次實驗在滴滴雲上完成,基於 nginx-rtmp 搭建一個點播平臺。
準備
工具名稱 | 描述 |
---|---|
作業系統 | CentOS Linux release 7.4.1708 |
nginx | release-1.15.0 |
nginx-rtmp-module | 1.2.1 |
VLC | 播放器 |
搭建流程
- 安裝依賴庫
sudo yum install git gcc make pcre-devel openssl-devel
- Build nginx with nginx-rtmp
sudo ./auto/configure --with-http_ssl_module --add-module=../nginx-rtmp-module-1.2.1 sudo make sudo make install
- Start nginx Server
sudo /usr/local/nginx/sbin/nginx
- 新建放置視訊檔案的目錄
sudo mkdir /nginxData/mp4
sudo chmod -R 777 /nginxData/mp4
由於 NGINX 的子程序屬於 nobody(許可權極低),所以本次實驗將視訊檔案的所有許可權都放開。
- 移動 stat.xsl 檔案
將 nginx-rtmp 原始碼中的 stat.xsl 檔案複製到 nginxData 目錄中,並將其許可權改為 664。
sudo cp /home/dc2-user/nginx-rtmp-module-1.2.1/stat.xsl /nginxData/stat.xsl sudo chmod 644 /nginxData/stat.xsl
配置詳解
NGINX 的所有配置都在其 conf 目錄下(也就是安裝完成後的 /usr/local/nginx/conf 中),最主要的配置檔案 nginx.conf 檔案具體配置樣本檔案見 nginx.conf.md 檔案。
配置檔案
#user nobody;
worker_processes 1;
error_log logs/error.log debug;
events {
worker_connections 1024;
}
http {
...
server {
listen 80;
server_name localhost;
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
# you can move stat.xsl to a different location
root /nginxData/;
}
location /control {
rtmp_control all;
}
...
}
}
rtmp {
server {
listen 1935;
ping 30s;
application vod {
play /nginxData/mp4;
}
}
}
使用
檢視狀態
通過訪問 http:///stat,可以檢視點播平臺的狀態。
訪問視訊
- 在 /nginxData/mp4 目錄下放置一個名為 test.mp4 的視訊檔案
- 在本地通過 VLC 播放該視訊, 點選 VLC 播放器 file -> open network, 填寫地址 rtmp://:/vod/test.mp4