1. 程式人生 > >基於nginx-rtmp搭建點播平臺

基於nginx-rtmp搭建點播平臺

序言

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