[置顶][终极精简版][图解]Nginx搭建flv mp4流媒体服务器
花了我接近3周,历经了重重问题,今日终于把流媒体服务器搞定,赶紧的写个博文以免忘记。。。
起初是跟着网上的一些教程来的,但是说的很不全面,一些东西也过时不用了(比如jwplayer老版本)。我这次是用的最新版jwplayer6.8,在配置上有很多不同的地方,也很坑,值得注意一下!在配置方面,我精简了很多,没有了那么多繁琐的配置项需要修改。
注意:本人是在虚拟机centos6.2系统下搭建的流媒体服务器,在win7主机上做测试。
另,文章最后有下载地址,可下载搭建过程中所有用到的包和其他文件。
废话不说,从搭建服务器的准备工作开始:
一、准备工作,安装依赖包,缺一不可!(推荐先用命令查看自己是否已经安装一下软件,确认没有再安装)
-------------------------------------------------------------------------------------------------------------------------------------------------------
1.安装zlib
tar xzvf zlib-1.2.3.tar.gz #解压
cd zlib-1.2.3 #进入解压目录
./configure #配置
make && make install #编译并安装
2.安装gcc-c++
yum -y install gcc-c++ #会自动安装的,但需联网
4.安装pcre
tar zxvf pcre-7.9.tar.gz
cd pcre-7.9
./configure --prefix=/usr/local/pcre #配置安装路径为/usr/local/pcre
make && make install
5.安装 openssl openssl-devel
yum -y install openssl openssl-devel
二、安装yamdi,给flv添加关键帧用的。(老是想到“亚麻碟”,哈哈。。。)
-------------------------------------------------------------------------------------------------------------------------------------------------------
#先cd到某个目录下,用wget命令下载包 wget http://sourceforge.net/projects/yamdi/files/yamdi/1.4/yamdi-1.4.tar.gz/download #安装yadmi
tar xzvf yamdi-1.4.tar.gz
cd yamdi-1.4
make && make install
三、安装Nginx服务器,并配置
-------------------------------------------------------------------------------------------------------------------------------------------------------
1.安装
groupadd www #添加用户组www
useradd -g www www #向组添加用户www
tar xzvf nginx-0.8.34.tar.gz #解压包
cd nginx-0.8.34
#此步骤重要,--with-http_flv_module和--with-http_ssl_module不可变动,其他自定义吧。
./configure --with-http_ssl_module --with-pcre=/opt/nginx/pcre-7.9 --with-zlib=/opt/nginx/zlib-1.2.3 --user=www --group=www --prefix=/opt/nginx --with-http_flv_module
make && make install
2.配置
vim /opt/nginx/conf/nginx.conf #编辑nginx配置文件
#找到server节点,参照一下代码简单变动一下,so easy!
server {
listen 80;
server_name 192.168.1.105;
root /opt/nginx/html/;
limit_rate_after 5m; #在flv视频文件下载了5M以后开始限速
limit_rate 100k; #速度限制为100K
index index.html;
charset utf-8; #将.flv文件指向flv模块
location ~ \.flv {
flv;
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
四、使用与测试
-------------------------------------------------------------------------------------------------------------------------------------------------------
1.为准备的flv文件添加关键帧
#参数 -i:input文件 -o:out文件
yamdi -i test1.flv -o test2.flv #目录下会生成test2.flv,此时该文件已经生成了关键帧
2.拷贝test2.flv到服务器目录下,我的服务器目录是“/opt/nginx/html/”。
3.拷贝jwplayer.flash.swf到服务器目录下。
4.编辑网页,TestStreaming项目,(我是把网页部署到到win7主机apache服务器下的,用来模拟远程访问流媒体服务器,想在本机弄的,自己倒腾)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title></title>
<script type="text/javascript" src="jwplayer.js"></script>
</head>
<body>
<div id="myElement">Loading the player...</div> <script type="text/javascript">
jwplayer("myElement").setup({
//192.168.164.132是我虚拟机的ip,加载播放器文件
flashplayer: "http://192.168.164.132/player6.swf",
//加载服务器下,/video/test2.flv带关键帧的flv文件
file: "http://192.168.164.132/video/test2.flv",
image: "test.jpg",
width: 800,
height: 500,
screencolor: "#BBBBBB",
autostart: true,
provider: "http",
streamer: "start",
stretching: "fill",
//上面三个参数都不重要,下面两个参数才是最重要的!新版本奇葩之处!
startparam: "start",
primary: "flash"
});
</script>
</body>
</html>
5.测试,win7下打开浏览器,输入:localhost/TestStreaming/index.html
yeah!视频成功播放,并且可随意拖动seek!
若不能成功,请仔细检查jwplayer的配置参数!
附上下载链接:http://download.csdn.NET/detail/cyh970473/7443127
from:http://blog.csdn.net/cyh970473/article/details/50593227
[置顶][终极精简版][图解]Nginx搭建flv mp4流媒体服务器的更多相关文章
- [终极精简版][图解]Nginx搭建flv mp4流媒体服务器
花了我接近3周,历经了重重问题,今日终于把流媒体服务器搞定,赶紧的写个博文以免忘记... 起初是跟着网上的一些教程来的,但是说的很不全面,一些东西也过时不用了(比如jwplayer老版本).我这次是用 ...
- Nginx搭建flv mp4流媒体服务器[转]
Nginx搭建flv mp4流媒体服务器 作者:二蛋 时间:December 1, 2014 分类:Note 环境:Centos 6.4 32bit 一.安装依赖包 1.安装zlib wget htt ...
- nginx搭建rtmp协议流媒体服务器总结
最近在 ubuntu12.04+wdlinux(centos)上搭建了一个rtmp服务器,感觉还挺麻烦的,所以记录下. 大部分都是参考网络上的资料. 前提: 在linux下某个目录中新建一个nginx ...
- Nginx搭建flv视频点播服务器
Nginx搭建flv视频点播服务器 前一段时间使用Nginx搭建的多媒体服务器只能在缓冲过的时间区域内拖放, 而不能拖放到未缓冲的地方. 这就带来了一个问题: 如果视频限速的速率很小, 那么客户端观看 ...
- nginx搭建前端项目web服务器以及利用反向代理调试远程后台接口
前端同学用nginx搭建自己的web服务器,后台程序专门部署在一台服务器上(我们之前公司就有三套环境,开发/测试/生产),这样做的好处是 1.前端代码基本都是静态文件,重启一次很快,也就几秒钟时间. ...
- 用VLC Media Player搭建简单的流媒体服务器
VLC可以作为播放器使用,也可以搭建服务器. 在经历了Helix Server和Darwin Streaming Server+Perl的失败之后,终于找到了一个搭建流媒体简单好用的方法. 这个网址中 ...
- 搭建rtmp直播流服务之1:使用nginx搭建rtmp直播流服务器(nginx-rtmp模块的安装以及rtmp直播流配置)
欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) 一.方案简要 首先通过对开发方案的仔细研究(实时监控.流媒体.直播流方案的数据源-->协议转换-->服务器--&g ...
- 用nginx搭建基于rtmp或者http的flv、mp4流媒体服务器
http://itindex.NET/detail/48702-nginx-rtmp-http 一.流媒体播放方式 1. HTTP方式 这种方式要下载FLV视频文件到本地播放,一旦FLV视频文件下载 ...
- 使用 Nginx 搭建静态资源 web 服务器
在搭建网站的时候,往往会加载很多的图片,如果都从 Tomcat 服务器来获取静态资源,这样会增加服务器的负载,使得服务器运行 速度非常慢,这时可以使用 Nginx 服务器来加载这些静态资源,这样就可以 ...
随机推荐
- Centos下PHP7.1打开Oracle扩展
背景 最近因为项目研究了一下PHP集成Oracle,虽然这个组合很奇葩,但万一用到请勿采坑~ 环境 CentOS Linux release 7.3.1611 (Core) PHP7.1.1 安装or ...
- PHP:验证邮箱合法性
文章来源:http://www.cnblogs.com/hello-tl/p/7592304.html /** * [verifyPhone description] 效验邮箱号合法性 * @para ...
- Python的发展与应用
cpu 内存 硬盘 操作系统 cpu:计算机的运算和计算中心,相当于人类大脑.飞机 内存:暂时存储数据,临时加载数据应用程序,4G,8G,16G,32G 速度快,高铁,断电即消失.造价很高 ...
- 读书笔记:《人有人的用处》------N.维纳. (2016.12.28)
读书笔记:<人有人的用处>------N.维纳 ·某些系统可以依其总能量而和其他系统区别开来. ·在某些情况下,一个系统如果保持足够长时间的运转,那它就会遍历一切与其能量相容的位置和动量的 ...
- 75-ADMI,Average Directional Movement Index,平均方向性运动指标.(2015.7.1)
ADMI,Average Directional Movement Index 平均方向性运动指标 Directional Movement Index,平均方向性运动指标.(2015.7.1)&qu ...
- bzoj1007 [HNOI2008]水平可见直线 - 几何 - hzwer.com
Description Input 第一行为N(0 < N < 50000),接下来的N行输入Ai,Bi Output 从小到大输出可见直线的编号,两两中间用空格隔开,最后一个数字后面也必 ...
- MTK平台如何定位显示花屏和界面错乱等绘制异常的问题?
[DESCRIPTION] 在测试手机各项功能过程中,经常会遇到概率性复现“屏幕画花了,界面画错乱了等绘制异常问题”,而且概率还非常小: 这类问题请不要直接提交eService,而是先请测试人员及工程 ...
- [ 浙江大学 程序设计专题 ] 四个专题代码 报告 PPT共享
[原创]转载请注明出处,请勿用于作弊 专题一: 链接: https://pan.baidu.com/s/11xCwvuPHDkTPeOB_yzJWnw 提取码: prup 专题二: 链接: https ...
- java 判断一个字符串是否为纯数字
if (getUid().matches("[0-9]+")) { Log.v("纯数字");} else { Log.v("非纯数字"); ...
- csu - 1536: Bit String Reordering (模拟)
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1536 不知道为何怎么写都写不对. 这题可以模拟. 虽然题目保证一定可以从原串变成目标串,但是不一定 ...