挑战一个人搭建一套完整直播系统3: Nginx-rtmp-module

Nginx-rtmp-module(NRM)的出现使得非专业流媒体开发工程师也可以简单、迅速搭建媒体流服务器,本节将介绍NRM的使用。

NRM模块安装

复制NRM源代码:

git clone https://github.com/arut/nginx-rtmp-module.git

在Nginx文件夹下重新配置NRM模块(注意RNM的相对位置)

./configure --add-module=../../live/nginx-rtmp-module/

重新编译安装

make && make install

重新启动nginx:

/etc/init.d/nginx restart

直播系统搭建

修改启动脚本的Nginx配置文件

worker_processes  1;
events {
    worker_connections  1024;
}
rtmp{
    server{
        listen 1935;
        application mylive{
            live on;#开启直播
            hls on;#开启hls
            hls_path /usr/local/m3u8File; #配置HLS m3u8文件存放地址   
        }
    } 
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        
        location /mylive_hls{
            types {
                #m3u8 type设置
                application/vnd.apple.mpegurl m3u8;
                # ts 分片文件设置
                video/mp2t ts;
            }
        alias /usr/local/m3u8File;
            add_header Cache-Control no-cache; #禁止缓存
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

重新加载配置文件:

nginx -s reload

创建目录

mkdir /usr/local/m3u8File

推流拉流

直播技术中,经常会涉及推流(push)和拉流(pull),将流媒体推送到流媒体服务器的过程被叫做推流,向服务器获取视频数据的过程叫做拉流,我们首先在一台机器上测试推流和拉流的功能。先在ubuntu安装VLC播放器(直接软件商店搜索安装即可):

通过ffmpeg进行推流,指令如下:

ffmpeg -i test1.mp4 -vcodec libx264 -acodec aac -f flv rtmp://127.0.0.1:1935/mylive/1

test1.mp4为要推送的视频文件,libx264为视频编码库,aac为音频编码库,live为配置文件nginx.conf中application后面的参数是串流码(Stream Key),用来区分同一个application的不同直播流,rtmp://127.0.0.1:1935/mylive/1为具体的服务器推流地址。

打开VLC播放器,选择媒体->打开网络串流

 输入对应的直播地址:rtmp://127.0.0.1:1935/mylive/1,点击播放,此时播放器会处于读取直播流的状态,此时执行上面的推流命令,就可以看到VLC播放器播放推过来的直播视频了:

 基本平台搭建和实现先介绍到这里。

  • 16
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值