,首先下载安装nginx需要依赖的库文件:

1.1,选定源码目录

选定目录 /usr/local/RTMP

cd /usr/local/RTMP

1.2,安装PCRE库

cd /usr/local/RTMP

www.pcre.org 下载pcre-8.37.tar.gz , 然后拷贝到/usr/local/HLS

tar -zxvf pcre-8.37.tar.gz

cd pcre-8.37

./configure

make

make install

1.3,安装zlib库

cd /usr/local/RTMP

www.zlib.net 下载zlib-1.2.8.tar.gz, 然后拷贝到/usr/local/HLS

tar -zxvf zlib-1.2.8.tar.gz cd zlib-1.2.8

./configure

make

make install

1.4,安装SSL

cd /usr/local/RTMP

www.openssl.org下载openssl-1.0.2g.tar.gz, 然后拷贝到/usr/local/HLS

tar -zxvf openssl-1.0.2g.tar.gz

./config

make

make install

二,安装包含  nginx-rtmp-module模块的nginx

2.1,下载并解压nginx

nginx.org 下载稳定版本的nginx-1.8.1.tar.gz, 然后拷贝到/usr/local/RTMP

tar -zxvf nginx-1.8.1.tar.gz

2.2,下载 nginx-rtmp-module

到 https://github.com/arut/nginx-rtmp-module 下载:nginx-rtmp-module.1.1.4.tar.gz 然后拷贝到/usr/local/RTMP

tar -zxvf nginx-rtmp-module.1.1.4.tar.gz

2.3,编译安装包含  nginx-rtmp-module模块的nginx

2.3.1,进入nginx-1.8.1源码目录

依次执行以下命令运行:

./configure --prefix=/usr/local/nginx --add-module=/usr/local/RTMP/nginx-rtmp-module.1.1.4 --with-http_ssl_module

make -f objs/Makefile

make -f objs/Makefile install

三,配置点播RTMP

3.1,打开nginx/conf目录下的nginx.conf配置文件

3.1.1  在http{

    ……

    }  大括号里面的末尾添加以下配置内容:

  #配置rtmp状态页
  server {
  listen 8080;

  location /stat {
    rtmp_stat all;
    rtmp_stat_stylesheet stat.xsl;
    }

  location /stat.xsl {
    root /usr/local/rtmp/nginx-rtmp-module.1.1.4/; #在nginx-rtmp-module源码根目录
    }
  }

 3.1.2, 然后在nginx.conf的末尾加上以下内容:

  #rtmp点播配置
  rtmp {
    server {
    listen 1935;
    chunk_size 4000;
    application vod {
      play /usr/local/nginx/vod/flvs; #点播媒体文件存放目录
      }
    }
  }

3.1.3,保存以上配置信息。

3.2,配置点播环境信息

   3.2.1,建立媒体文件夹

    mkdir  /usr/local/nginx/vod/flvs

    3.2.2, 准备媒体文件

    把媒体文件(如oooo.flv)拷贝到 /usr/local/nginx/vod/flvs目录下

   3.2.3, 准备网页

    下载jwplayer: www.jwplayer.com  需要注册,才能下载并获取相应的license                              key(如:601u+htlhuXp5LQPeZtRlAABKwyX/94L3LRAcg==)

下载jwplayer7.3.6.zip后, 解压到:/usr/local/nginx/html/

建立测试网页test.html,也放到上面的目录下:

<html>
<head>
welcome test rtmp <br>
<script src="/jwplayer/jwplayer.js"></script>
</head>
<body>
<script type="text/javascript">
jwplayer.key="601u+htlhuXp5LQPeZtRlAABKwyX/94L3LRAcg==";
</script>
<div id='my-video'></div>
<script type='text/javascript'>
jwplayer('my-video').setup({
file:'rtmp://192.168.1.104/vod/oooo.flv',
width:'50%',
aspectratio:'3:2',
fallback:'false',
primary:'flash'
});
</script>
<script type="text/javascript">
jwplayer.key="601u+htlhuXp5LQPeZtRlAABKwyX/94L3LRAcg==";
</script>
</body>
</html>

  

3.3,启动nginx

3.3.1 执行  /usr/local/nginx/sbin/nginx

3.3.2,从客户端网页输入 http://192.168.1.104:8080/stat   得到如图结果:

3.3.3,从客户端网页输入:http://192.168.1.104/test.html  得到如下如图结果:

四,配置直播RTMP

4.1,打开nginx/conf目录下的nginx.conf配置文件

4.1.1 在配置文件里面加入如下配置信息:

#rtmp直播配置

  rtmp {

   server {

   listen 1935;

   chunk_size 4000;

  application  live {

  live on;

    }

  }

  }

4.1.2,如3.1.1相同加入rtmp的状态配置信息

  #配置rtmp状态页
  server {
      listen 8080;

      location /stat {
          rtmp_stat all;
          rtmp_stat_stylesheet stat.xsl;
        }

      location /stat.xsl {
        root /usr/local/hls/nginx-rtmp-module-master/; #在nginx-rtmp-module源码根目录
        }
    }

4.1.3,保存配置信息。

4.2配置资源信息

    

4.2.1, 准备网页

    下载jwplayer: www.jwplayer.com  需要注册,才能下载并获取相应的license                                key(如:601u+htlhuXp5LQPeZtRlAABKwyX/94L3LRAcg==)

下载jwplayer7.3.6.zip后, 解压到:/usr/local/nginx/html/

建立测试网页test.html,也放到上面的目录下:

<html>
<head>
welcom to test rtml <br>
<script src="/jwplayer/jwplayer.js"></script>
</head>
<body>
<script type="text/javascript">
jwplayer.key="601u+htlhuXp5LQPeZtRlAABKwyX/94L3LRAcg==";
</script>
<div id='my-video'></div>
<script type='text/javascript'>
jwplayer('my-video').setup({
file:'rtmp://192.168.0.128/live/test', #live是applicatioin,test是直播缓存流文件
width:'50%',
aspectratio:'3:2',
fallback:'false',
primary:'flash'
});
</script>
<script type="text/javascript">
jwplayer.key="601u+htlhuXp5LQPeZtRlAABKwyX/94L3LRAcg==";
</script>
</body>
</html>

4.3,启动nginx, 如3.3中的启动

  4.4,模拟推流

安装ffmpeg    ,请参考网上其他网文,在linux系统上安装ffmpeg。

用ffmpeg模拟产生一个直播源,向配置的rtmp服务器推送

ffmpeg –i /usr/local/nginx/vod/flvs/oooo.flv -strict -2 -c:v libx264 -c:a aac -f flv rtmp://192.168.1.104/live/test

注意:源文件必须是H.264+AAC的编码格式

其中,live是application; test是直播缓存流文件,需要与配置文件中的直播缓存文件名一致。(关于rtmp的URL格式请自行查阅相关资料)

4.5,从客户端网页输入:http://192.168.1.104/test.html  得到类似3.3的效果图:

基于nginx的rtmp的服务器(nginx-rtmp-module)的更多相关文章

  1. Windows10环境下 Nginx+ffmpeg自搭服务器制作RTMP直播流

    Windows10环境下 Nginx+ffmpeg自搭服务器制作RTMP直播流学习笔记 所需条件: nginx-rtmp-module(带rtmp模块) ,链接:https://link.jiansh ...

  2. session服务器Nginx+Tomcat+Memcached集群Session共享

    cookie是怎样工作的? 例如,我们创立了一个名字为login的Cookie来包含访问者的信息,创立Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名是“Michael Jor ...

  3. web服务器nginx和apache的对比分析

         今天准备较详细的对比一下apache httpd与nginx两个web服务器的异同点.优缺点.由于我并不是做web开发的,所以有什么理解错误还请指出,想要了解它们是因为工作中有时候会用到它, ...

  4. EasyDSS RTMP流媒体服务器是怎样炼成的:Easy而且更加互联网!

    开发EasyDSS的初衷 自从12年开始做EasyDarwin的时候,当时眼光一直都仅仅局限在安防监控视频这一块,对RTMP没有太大的重视,对于后起之秀HLS更是没有太多关注,然而经历了15直播火热的 ...

  5. EasyDSS RTMP流媒体服务器web前端:vue组件之间的传值,父组件向子组件传值

    之前接触最多的都是EasyNVR,主要针对的都是前端的一些问题.也有接触到一些easydss流媒体服务器. 前端方面的,EasyDSS流媒体服务器与EasyNVR有着根本的不同.EasyNVR使用的是 ...

  6. 编译EasyDSS rtmp流媒体服务器遇到stray '_239' inprogram,stray '_187' inprogram,stray '_191' inprogram的解决办法

    使用用户提供的交叉编译工具链编译easydss时遇到一个编译错误 stray '\239' inprogram stray '\187' inprogram stray '\191' inprogra ...

  7. EasyDSS RTMP流媒体服务器的HTTP接口query url的C++实现方法

    EasyDSS支持HTTP GET接口访问,我们需要获取url的各种参数信息 比如http://ip:port/action?a=1&b=2&c=3 我们需要知道对应的a.b.c的值 ...

  8. 基于nginx的rtmp直播服务器(nginx-rtmp-module实现)

    首先,在搭建服务之前先了解下目前主流的几个直播协议: 1.RTMP: 实时消息传输协议,Real Time Messaging Protocol,是 Adobe Systems 公司为 Flash 播 ...

  9. iOS 直播推流 - 搭建基于RTMP的本地Nginx服务器

    前端时间,公司要调研直播相关的内容,特地花时间进行了一番调研. 本篇将记录其中的推流篇-本地推理播放测试. 关于Nginx: 配置Nginx以支持HLS.RTMP的推流与拉流,iOS系统使用LFLiv ...

随机推荐

  1. J2EE学习记录,EJB,JNDI,RMI

    Java EE 是java平台企业版(Java Platform Enterprise Edition)缩写,是Sum公司为企业级应用推出的标准平台. 随着Java技术的发展,J2EE平台得到了迅速的 ...

  2. Altium Designer极坐标布局方法

    1.键盘快捷组合 O+G,打开栅格管理器,点击左下角的“菜单”,在对话框中的选择“添加极坐标栅格”. 2.双击新添加的优先等级为1的栅格,在弹出的polar  grid editor 对话框中,对里边 ...

  3. XP 安装

    提供一下裝系統的詳細步驟,盡量詳細到每一步都有,希望能對樓主有所幫助,不盡之處還請樓主不吝指出!謝謝 装XP的步骤如下: 开机时,按del键, 进入bios界面,一般选左侧第二项,(Advanced ...

  4. 实例讲解MySQL联合查询

    好了终于贴完了MySQL联合查询的内容了,加上上一篇一共2篇,都是我转载的,实例讲解MySQL联合查询.那下面就具体讲讲简单的JOIN的用法了.首先我们假设有2个表A和B,他们的表结构和字段分别为: ...

  5. 如何在Ubuntu 14.04中使用Samba共享文件

    Linux 下的文件共享利器 Samba 想必大家已经非常熟悉了,今天我们介绍下如何在Ubuntu 14.04中使用 Samba 共享网络文件.打印机和其它公共资源. 1.安装 Samba 和图形配置 ...

  6. absolute vs fixed

    <!DOCTYPE html> <html> <head> <title>absolute和fixed的区别</title> <sty ...

  7. 不管肉鸡,还是代理,CC识别就封杀!

    这几天的心得,汇成代码. PYTHON版,我编的. #!/usr/bin/env python # -*- coding: utf-8 -*- import os,sys,time import co ...

  8. 如何将Icon转成Bitmap(对ICON的内部格式讲的比较清楚)

    最近工作中有个需求是将Icon转成带Alpha通道的Bitmap, 虽然网上有不少这方面的文章,但很多都是错的, 这里记录下,或许对后来人有用.   要实现这个功能,我们首先需要理解Icon的格式,我 ...

  9. Qt构建工具QBS之零 —— QBS 概览

    本系列文章起因 自己非常喜欢 QT 这个框架, 使用 QT 这几年, IDE 一直是使用的 QT 自带的 Qt Creator, 这个 IDE 本身比较轻巧, 同事相关的语法提示之类的也算够用, 但是 ...

  10. Buffer Cache 原理

    在将数据块读入到SGA中,他们的缓冲区被放置在悬挂散列存储桶的链表中(散列链),这种内存结构由大量 子cache buffers chains锁存器(也称为散列锁存器或CBC锁存器)保护. Buffe ...