基于nginx的rtmp的服务器(nginx-rtmp-module)
一,首先下载安装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)的更多相关文章
- Windows10环境下 Nginx+ffmpeg自搭服务器制作RTMP直播流
Windows10环境下 Nginx+ffmpeg自搭服务器制作RTMP直播流学习笔记 所需条件: nginx-rtmp-module(带rtmp模块) ,链接:https://link.jiansh ...
- session服务器Nginx+Tomcat+Memcached集群Session共享
cookie是怎样工作的? 例如,我们创立了一个名字为login的Cookie来包含访问者的信息,创立Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名是“Michael Jor ...
- web服务器nginx和apache的对比分析
今天准备较详细的对比一下apache httpd与nginx两个web服务器的异同点.优缺点.由于我并不是做web开发的,所以有什么理解错误还请指出,想要了解它们是因为工作中有时候会用到它, ...
- EasyDSS RTMP流媒体服务器是怎样炼成的:Easy而且更加互联网!
开发EasyDSS的初衷 自从12年开始做EasyDarwin的时候,当时眼光一直都仅仅局限在安防监控视频这一块,对RTMP没有太大的重视,对于后起之秀HLS更是没有太多关注,然而经历了15直播火热的 ...
- EasyDSS RTMP流媒体服务器web前端:vue组件之间的传值,父组件向子组件传值
之前接触最多的都是EasyNVR,主要针对的都是前端的一些问题.也有接触到一些easydss流媒体服务器. 前端方面的,EasyDSS流媒体服务器与EasyNVR有着根本的不同.EasyNVR使用的是 ...
- 编译EasyDSS rtmp流媒体服务器遇到stray '_239' inprogram,stray '_187' inprogram,stray '_191' inprogram的解决办法
使用用户提供的交叉编译工具链编译easydss时遇到一个编译错误 stray '\239' inprogram stray '\187' inprogram stray '\191' inprogra ...
- EasyDSS RTMP流媒体服务器的HTTP接口query url的C++实现方法
EasyDSS支持HTTP GET接口访问,我们需要获取url的各种参数信息 比如http://ip:port/action?a=1&b=2&c=3 我们需要知道对应的a.b.c的值 ...
- 基于nginx的rtmp直播服务器(nginx-rtmp-module实现)
首先,在搭建服务之前先了解下目前主流的几个直播协议: 1.RTMP: 实时消息传输协议,Real Time Messaging Protocol,是 Adobe Systems 公司为 Flash 播 ...
- iOS 直播推流 - 搭建基于RTMP的本地Nginx服务器
前端时间,公司要调研直播相关的内容,特地花时间进行了一番调研. 本篇将记录其中的推流篇-本地推理播放测试. 关于Nginx: 配置Nginx以支持HLS.RTMP的推流与拉流,iOS系统使用LFLiv ...
随机推荐
- J2EE学习记录,EJB,JNDI,RMI
Java EE 是java平台企业版(Java Platform Enterprise Edition)缩写,是Sum公司为企业级应用推出的标准平台. 随着Java技术的发展,J2EE平台得到了迅速的 ...
- Altium Designer极坐标布局方法
1.键盘快捷组合 O+G,打开栅格管理器,点击左下角的“菜单”,在对话框中的选择“添加极坐标栅格”. 2.双击新添加的优先等级为1的栅格,在弹出的polar grid editor 对话框中,对里边 ...
- XP 安装
提供一下裝系統的詳細步驟,盡量詳細到每一步都有,希望能對樓主有所幫助,不盡之處還請樓主不吝指出!謝謝 装XP的步骤如下: 开机时,按del键, 进入bios界面,一般选左侧第二项,(Advanced ...
- 实例讲解MySQL联合查询
好了终于贴完了MySQL联合查询的内容了,加上上一篇一共2篇,都是我转载的,实例讲解MySQL联合查询.那下面就具体讲讲简单的JOIN的用法了.首先我们假设有2个表A和B,他们的表结构和字段分别为: ...
- 如何在Ubuntu 14.04中使用Samba共享文件
Linux 下的文件共享利器 Samba 想必大家已经非常熟悉了,今天我们介绍下如何在Ubuntu 14.04中使用 Samba 共享网络文件.打印机和其它公共资源. 1.安装 Samba 和图形配置 ...
- absolute vs fixed
<!DOCTYPE html> <html> <head> <title>absolute和fixed的区别</title> <sty ...
- 不管肉鸡,还是代理,CC识别就封杀!
这几天的心得,汇成代码. PYTHON版,我编的. #!/usr/bin/env python # -*- coding: utf-8 -*- import os,sys,time import co ...
- 如何将Icon转成Bitmap(对ICON的内部格式讲的比较清楚)
最近工作中有个需求是将Icon转成带Alpha通道的Bitmap, 虽然网上有不少这方面的文章,但很多都是错的, 这里记录下,或许对后来人有用. 要实现这个功能,我们首先需要理解Icon的格式,我 ...
- Qt构建工具QBS之零 —— QBS 概览
本系列文章起因 自己非常喜欢 QT 这个框架, 使用 QT 这几年, IDE 一直是使用的 QT 自带的 Qt Creator, 这个 IDE 本身比较轻巧, 同事相关的语法提示之类的也算够用, 但是 ...
- Buffer Cache 原理
在将数据块读入到SGA中,他们的缓冲区被放置在悬挂散列存储桶的链表中(散列链),这种内存结构由大量 子cache buffers chains锁存器(也称为散列锁存器或CBC锁存器)保护. Buffe ...