文档章节

nginx rtmp HLS直播

f
 ffredy
发布于 2015/08/08 15:48
字数 588
阅读 334
收藏 17

二、安装Nginx相关模块

1.环境准备

yum install –y pcre pcre-devel

yum install –y zlib zlib-devel

yum -y install openssl openssl-devel

2.下载nginx及rtmp模块

wget http://nginx.org/download/nginx-1.6.2.tar.gz

tar xzvf nginx_1.6.2.tar.gz

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

3.编译nginx-rtmp

./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module --with-http_stub_status_module


如果需要安装pcre,则 yum -y install pcre-devel openssl openssl-devel

make

make install

安装完成后,nginx位于/usr/local/nginx/sbin目录下,配置文件nginx.conf在/usr/local/nginx/conf目录下

++++++++测试nginx是否安装正确+++++++++++

#cd /usr/local/nginx

#./sbin/nginx -c ./conf/nginx.conf

打开网页http://localhost,如果显示Welcome表示安装下正确,如果没有显示,请查看一下nginx的日志。

++++++++测试RTMP+++++++++++

修改/usr/local/nginx/conf/nginx.conf的内容如下:

#debug
daemon off;
master_process off;


error_log ./error.log debug;
events{
    worker_connections 1024;
}


rtmp{
    server {
        listen 1935;
        chunk_size 4000;

        #live
        application myapp {
            live on;
      }

}

从网上下载一款RTMP推流工具,我使用的OBS(Open Broadcaster Software),开始推流rtmp://your_ip/myapp/test,使用播放器(http://www.cutv.com/demo/live_test.swf)查看是否正常。

++++++++测试HLS切片功能+++++++++++

修改/usr/local/nginx/conf/nginx.conf的内容如下:

#debug
daemon off;
master_process off;


error_log ./error.log debug;
events{
    worker_connections 1024;
}


rtmp{
    server {
        listen 1935;
        chunk_size 4000;

        #live
        application myapp {
            live on;
 
            hls on;
            hls_path /tmp/hls;
            hls_fragment 2s;
            hls_playlist_length 6s;

       }
    }
}

#HTTP
http{
    server {
        listen 80;

        #welcome
        location / {
            root   html;
            index  index.html index.htm;
        }

        #hls
        location /hls {
            types {
                application/vnd.apple.mpegusr m3u8;
                video/mp2t ts;
            }
            root /tmp;
            add_header Cache-Control no-cache;
        }  
    }
}

使用VLC或iPAD上的播放器进行查看 http://yourip/hls/test.m3u8


++++++++测试FFMPEG转码功能+++++++++++

修改/usr/local/nginx/conf/nginx.conf的内容如下:

#debug
daemon off;
master_process off;


error_log ./error.log debug;
events{
    worker_connections 1024;
}


rtmp{
    server {
        listen 1935;
        chunk_size 4000;

        #live
        application myapp {
            live on;
 
           exec /opt/ffmpeg/bin/ffmpeg -i rtmp://localhost/myapp/$name
             -c:a copy  -c:v libx264 -b:v 512K -g 30 -f flv rtmp://localhost/hls/$name_low;
        }
      
        application hls {

            live on;

            hls on;
            hls_path /tmp/hls;
            hls_nested on;
            hls_fragment 2s;
            hls_playlist_length 6s;

           hls_variant _hi  BANDWIDTH=640000;

        }
    }
}

#HTTP
http{
    server {
        listen 80;

        #welcome
        location / {
            root   html;
            index  index.html index.htm;
        }

        #hls
        location /hls {
            types {
                application/vnd.apple.mpegusr m3u8;
                video/mp2t ts;
            }
            root /tmp;
            add_header Cache-Control no-cache;
        }  
    }
}

使用ffmpeg转码时,

exec /opt/ffmpeg/bin/ffmpeg -i rtmp://localhost/myapp/$name
             -c:a copy  -c:v libx264 -b:v 512K -g 30 -f flv rtmp://localhost/hls/$name_low;

仅对视频进行转码,音频不做处理,同时向流从myapp转推到hls, hls_variant会生成一个多码率的m3u8文件,同时把切片文件存放到test_low目录下,访问多码率时,直接访问http://yourip/hls/test.m3u8,根据这个m3u8中的实现的内容访问相应的码流,在本例中,实际码流URL为http://yourip/hls/test_low/index.m3u8


© 著作权归作者所有

f
粉丝 6
博文 48
码字总数 37775
作品 0
浦东
私信 提问
流媒体技术学习笔记之(一)nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器

参照网址: 【1】http://blog.csdn.net/redstarofsleep/article/details/45092147 【2】HLS介绍:http://www.cnblogs.com/haibindev/archive/2013/01/30/2880764.html 上面这两个流的地址分别......

tinywan1227
2016/09/27
0
0
在Windows下搭建基于nginx的视频直播和点播系统

一、软件准备 由于nginx原生是为linux服务的,因此官方并没有编译好的windows版本可以下载,要在windows上使用nginx,要么下载源码进行编译,要么使用其他人已经编译好的文件。 而要让nginx...

汉克斯
2015/07/14
0
1
使用nginx-rtmp-module搭建直播流媒体服务器

先下载nginx-rtmp-module nginx-rtmp-module的官方github地址:https://github.com/arut/nginx-rtmp-module 使用的详细wiki https://github.com/arut/nginx-rtmp-module/wiki/Directives 安装......

cp3_1dbc
2018/06/03
0
0
nginx+ ffmpeg 实现 hls直播和点播

一、搭建http服务器: ./configure --add-module=/home/andrew/Work/tools/nginx-rtmp-module --with-httpdavmodule --without-httprewritemodule make && make install /usr/local/nginx/sb......

andrew810810
2016/05/17
639
0
使用HLS做直播,总会延时在1分30秒或以上,有何减少延时的方法吗

使用nginx-rtmp做hls直播的时候,如果是rtmp协议,则延时只在4秒或以内,但如果用hls,就会在1分半以上,但在ios或安卓平台下做直播,我所能用的好像也只有hls可选,但这个延时时间太太太太长...

iPhoneS
2016/06/07
2.7K
2

没有更多内容

加载失败,请刷新页面

加载更多

阿里P8架构师谈:如何打造一份高并发编程知识体系

1.问题 1、什么是线程的交互方式? 2、如何区分线程的同步/异步,阻塞/非阻塞? 3、什么是线程安全,如何做到线程安全? 4、如何区分并发模型? 5、何谓响应式编程? 6、操作系统如何调度多线...

小刀爱编程
26分钟前
1
0
比特币:如何用地址查询交易?

在比特币应用开发中,一个常见的问题就是,在知道比特币地址的情况下,如何查询这个地址上发生的所有交易?或者类似的说法,如何查询一个指定的比特币地址发生的所有交易? 本文将给出这一问...

汇智网教程
29分钟前
1
0
Spring Boot 下,敏感词及特殊字符过滤处理方式

背景: 技术采用的是 Spring Boot ,请求方法主要为 POST, 请求使用较多的注解为 @RequestBody 交付测试人员进行测试,测试人员在对模糊搜索模块进行了各种特殊字符的搜索,以至于敏感词和特...

Ryan-瑞恩
34分钟前
7
0
使用 Jenkins X 渐进式交付

本文首发于:Jenkins 中文社区 这是渐进式交付系列的第二篇文章,第一篇请看:Kubernetes 中的渐进式交付:蓝绿部署和金丝雀部署。 我使用的我的 Croc Hunter 示例项目评估了 Jenkins X 中金...

Jenkins中文社区
41分钟前
2
0
零基础学算法->PI

本文章是介绍几种计算PI的方法 1.概率法计算PI(又称蒙特卡罗法) 1.1 定义,过程 在半径为1的圆1/4的区域,通过随机函数产生横纵坐标值x,y;当x*x+y*y<=1时,满足条件。 1.2 结果: 因为是随机...

tedzheng
44分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部