nginxRTMP协议服务器

by ahuner

通过以下的配置,可以使nginx接收RTMP流,并在web上播放实时视频。

1.openssl安装

nginx需要http_ssl_module模块,需要openssl库。

下载opensll:http://www.openssl.org/

最新稳定版本:openssl-1.0.1e

修改三个文件的代码,openssl-1.0.1e\test中的md2test.c、rc5test.c、jpaketest.c

将dummytest.c修改为#include "dummytest.c"。

编译:

chmod +x config

编译静态库

./config --prefix=/usr/local --openssldir=/usr/local/opensll

make && make install

编译动态库

./config shared --prefix=/usr/local --openssldir=/usr/local/opensll

make clean

make && make install

2.nginx的rtmp模块

下载nginx-rtmp-module

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

3.nginx安装

./configure \

--prefix=/usr/local/nginx \

--sbin-path=/usr/local/nginx/nginx \

--conf-path=/usr/local/nginx/nginx.conf \

--pid-path=/usr/local/nginx/nginx.pid \

--error-log-path=/usr/local/nginx/logs/error.log \

--with-pcre=../pcre-8.31 \

--with-zlib=../zlib-1.2.7 \

--with-http_dav_module \

--with-http_flv_module \

--with-http_stub_status_module \

--without-http_scgi_module \

--without-http_uwsgi_module \

--without-http_gzip_module \

--without-http_ssi_module \

--without-http_proxy_module \

--without-http_memcached_module \

--without-http_empty_gif_module \

--without-mail_pop3_module \

--without-mail_imap_module \

--without-mail_smtp_module \

--with-http_ssl_module \

--with-openssl=/project/openssl-1.0.1e \

--add-module=/project/nginx-rtmp-module-master

注意:/project/openssl-1.0.1e为openssl的源代码目录,编译nginx的时候会自动编译连接openssl.

make && make install

4.nginx.conf

配置文件:

#user  nobody;
worker_processes  1;

error_log  logs/error.log debug;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

rtmp {
    server {
        listen 1935;

chunk_size 4096;

application myapp {
            live on;
        }
    }
}

http {
    server {
        listen      80;

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

location /stat.xsl {
            root /project/nginx-rtmp-module-master/;
        }

location / {
            root /project/nginx-rtmp-module-master/test/rtmp-publisher;
        }
    }
}

5.推流

"rtmp://192.168.1.102/myapp"表示url, "test1"表示stream

推流方式1:ffmpeg -re -i ~/2012.flv -f flv rtmp://192.168.1.102/myapp/test1

推流方式2:Adobe Flash Media Live Encoder设置上述参数

6.直播播放

用nginx-rtmp-module自带的一个例子修改,在test/rtmp-publisher目录下player.html

<!DOCTYPE html>

<html>

<head>

<title>RTMP Player</title>

<script type="text/javascript" src="swfobject.js"></script>

<script type="text/javascript">

var flashVars = {

streamer: 'rtmp://192.168.1.102/myapp',

file:'test1'

};

swfobject.embedSWF("RtmpPlayer.swf", "rtmp-publisher", "500", "400", "9.0.0",

null, flashVars);

</script>

</head>

<body>

<div id="rtmp-publisher">

<p>Flash not installed</p>

</div>

</body>

</html>

访问http://192.168.1.102/player.html

参考

Nginx RTMP 功能研究:

http://blog.csdn.net/cccallen/article/details/8440191

nginx的RTMP协议服务器的更多相关文章

  1. nginx搭建rtmp协议流媒体服务器总结

    最近在 ubuntu12.04+wdlinux(centos)上搭建了一个rtmp服务器,感觉还挺麻烦的,所以记录下. 大部分都是参考网络上的资料. 前提: 在linux下某个目录中新建一个nginx ...

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

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

  3. 基于nginx的rtmp的服务器(nginx-rtmp-module)

    一,首先下载安装nginx需要依赖的库文件: 1.1,选定源码目录 选定目录 /usr/local/RTMP cd /usr/local/RTMP 1.2,安装PCRE库 cd /usr/local/ ...

  4. Nginx 搭建rtmp直播服务器

    1.到nginx源码目录新建个rtmp目录 ,进入  git clone https://github.com/arut/nginx-rtmp-module.git   2.重编译nginx 代码如下 ...

  5. Nginx均衡TCP协议服务器案例

    Nginx在企业运维中通常用来均衡HTTP协议,例如我们熟知的80.8080.8081等服务.因为大部分的服务都是http请求访问协议,那有时候需要用到TCP协议,如果来实现均衡呢? 默认nginx不 ...

  6. ubuntu 上采用nginx做rtmp 直播 服务器

    首先安装必要的依赖库   sudo apt-get install autoconf automake sudo apt-get install libpcre3 libpcre3-dev   安装 ...

  7. 基于Nginx的Rtmp流媒体服务器环境搭建

    一.编译安装 wget http://nginx.org/download/nginx-1.4.2.tar.gz wget https://github.com/arut/nginx-rtmp-mod ...

  8. nginx搭建http和rtmp协议的流媒体服务器

    nginx搭建http和rtmp协议的流媒体服务器 时间:2013-09-23 23:52来源:佚名 作者:本站 举报 点击:232次 实验目的:让Nginx支持flv和mp4格式文件,同时支持Rtm ...

  9. 利用Nginx搭建http和rtmp协议的流媒体服务器[转]

    利用nginx搭建http和rtmp协议的流媒体服务器 实验目的:让Nginx支持flv和mp4格式文件,同时支持Rtmp协议:同时打开rtmp的hls功能资料:HTTPLive Streaming( ...

随机推荐

  1. java IO类图

  2. cmstop传递什么控制器和方法---就实例化该控制器

    object顶级类class object 第一级抽象类controllerabstract class controller extends object 第二级抽象类controller_abst ...

  3. ftp以及smb的配置

    linux下ftp服务的配置1,打开终端,cd /etc/vsftpd2   vi   vsftpd.conf3   相关的都打开说明:    anonymous_enable=YES  //允许匿名 ...

  4. 其它网页可以上网,IE浏览器打不开网页的解决办法

    下面是自己引用别人的,作为自己的备注 昨天由于安装了多款软件,今天开机发现IE浏览器打不开了,废了些周折终于,修复了IE浏览器,现将ie浏览器打不开网页的经验分享给大家,希望此经验对于出现过此类情况的 ...

  5. Apache 与tomcat区别

    Apache与Tomcat有什么关系和区别 经常在用apache和tomcat等这些服务器,可是总感觉还是不清楚他们之间有什么关系,在用tomcat的时候总出现apache,总感到迷惑,到底谁是主谁是 ...

  6. 剑指offer 二进制1中的个数

    算法-求二进制数中1的个数 问题描述 任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4 这也是一道比较经典的题目了, ...

  7. Android ADT安装时卡在Calculating requirements and dependencies

    AndroidSDK及Eclipse安装都很顺利,但是在Eclipse下安装ADT插件时,先采用点击Help->installnew software->Add...,无论输入https: ...

  8. “strcmp()” Anyone?

    “strcmp()” Anyone? strcmp() is a library function in C/C++ which compares two strings. It takes two ...

  9. js获取当前日期与星期

    var currentDate = new Date(); var weekday = ["星期日", "星期一", "星期二", &quo ...

  10. 青蛙的约会<数论,extgcd>

    青蛙的约会 题意: 在一个圆上有一个零刻度点,公青蛙和母青蛙分别在A点和B点<不同的位 置>,他们每秒行走的距离分别是m和n,圆的周长是L.问题是这两个青 蛙能不能相遇,若能在什么时候相遇 ...