基于nginx-rtmp搭建点播平台

序言

RTMP(Real Time Message Protocol,实时信息传输协议)协议属于应用层协议,靠底层的 TCP 来保证信息传输的可靠性。它由 Adobe 公司提出,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题。nginx-rtmp 是由俄罗斯人开发的 NGINX 模块,该模块完善了 NGINX 对视频的支持,并且实现了对 HLS 的支持。

本次实验在滴滴云上完成,基于 nginx-rtmp 搭建一个点播平台。

准备

工具名称描述
操作系统CentOS Linux release 7.4.1708
nginxrelease-1.15.0
nginx-rtmp-module1.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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值