花了我接近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流媒体服务器的更多相关文章

  1. [终极精简版][图解]Nginx搭建flv mp4流媒体服务器

    花了我接近3周,历经了重重问题,今日终于把流媒体服务器搞定,赶紧的写个博文以免忘记... 起初是跟着网上的一些教程来的,但是说的很不全面,一些东西也过时不用了(比如jwplayer老版本).我这次是用 ...

  2. Nginx搭建flv mp4流媒体服务器[转]

    Nginx搭建flv mp4流媒体服务器 作者:二蛋 时间:December 1, 2014 分类:Note 环境:Centos 6.4 32bit 一.安装依赖包 1.安装zlib wget htt ...

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

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

  4. Nginx搭建flv视频点播服务器

    Nginx搭建flv视频点播服务器 前一段时间使用Nginx搭建的多媒体服务器只能在缓冲过的时间区域内拖放, 而不能拖放到未缓冲的地方. 这就带来了一个问题: 如果视频限速的速率很小, 那么客户端观看 ...

  5. nginx搭建前端项目web服务器以及利用反向代理调试远程后台接口

    前端同学用nginx搭建自己的web服务器,后台程序专门部署在一台服务器上(我们之前公司就有三套环境,开发/测试/生产),这样做的好处是 1.前端代码基本都是静态文件,重启一次很快,也就几秒钟时间. ...

  6. 用VLC Media Player搭建简单的流媒体服务器

    VLC可以作为播放器使用,也可以搭建服务器. 在经历了Helix Server和Darwin Streaming Server+Perl的失败之后,终于找到了一个搭建流媒体简单好用的方法. 这个网址中 ...

  7. 搭建rtmp直播流服务之1:使用nginx搭建rtmp直播流服务器(nginx-rtmp模块的安装以及rtmp直播流配置)

    欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) 一.方案简要 首先通过对开发方案的仔细研究(实时监控.流媒体.直播流方案的数据源-->协议转换-->服务器--&g ...

  8. 用nginx搭建基于rtmp或者http的flv、mp4流媒体服务器

    http://itindex.NET/detail/48702-nginx-rtmp-http 一.流媒体播放方式 1.  HTTP方式 这种方式要下载FLV视频文件到本地播放,一旦FLV视频文件下载 ...

  9. 使用 Nginx 搭建静态资源 web 服务器

    在搭建网站的时候,往往会加载很多的图片,如果都从 Tomcat 服务器来获取静态资源,这样会增加服务器的负载,使得服务器运行 速度非常慢,这时可以使用 Nginx 服务器来加载这些静态资源,这样就可以 ...

随机推荐

  1. 牛客网NOIP赛前集训营 第6场 T1 最长路

    [题解] 先建反向图,然后跑拓扑排序求出最长路. 将所有的点按照最长路从小到大分层,把上一层连向这一层的边按照边权为第一关键字.起点的排名为第二关键字排序. 按照这个顺序更新这一层的答案,按照这一层每 ...

  2. Atcoder regular Contest 073(C - Sentou)

    Atcoder regular Contest 073(C - Sentou) 传送门 每个人对开关的影响区间为a[i]--a[i]+t,因此此题即为将所有区间离散化后求所有独立区间的长度和 #inc ...

  3. 集训第六周 古典概型 期望 D题 Discovering Gold 期望

    Description You are in a cave, a long cave! The cave can be represented by a 1 x N grid. Each cell o ...

  4. 优先队列重载运算符< 以及初始化列表

    优先队列定义 priority_queue<int, vector<int>, greater<int> >pq; 优先队列重载<运算符 在结构体中定义一个 ...

  5. 面试高峰期,如何应对面试官的jvm刁难,特写一篇jvm面经(第一部)

    已经进入三月份,正所谓金三银四,正是一年最好的招聘期,想必我的公号粉丝们一定有不少想要跳槽的吧,哈哈,/**偷偷告诉你们其实小编也准备跳槽*/(我要加个注释,被老板知道可就完蛋了),说到面试,想必大家 ...

  6. Java Class 利用classpath来获取源文件地址

    利用classpath来获取源文件地址 @author ixenos 应用场景 Properties props = new Properties(); /** * . 代表java命令运行的目录 * ...

  7. [luoguP2672] 推销员(贪心 + 树状数组 + 优先队列)

    传送门 贪心...蒟蒻证明不会... 每一次找最大的即可,找出一次最大的,数列会分为左右两边,左边用stl优先队列维护,右边用树状数组维护.. (线段树超时了....) 代码 #include < ...

  8. 如何将一个本来需要发几十条sql语句的需求优化成两条(非sql语句优化,而是解决方法)

    首先声明,本人所有博客均为原创,谢绝转载! 今天接到一个需求,如下 这里解释一下,为什么是几十条,因为这里面每个公式的每个条件都是一个单独的数据如净利润就是一条sql语句,而且分散在不同的表,如果此方 ...

  9. 莫比乌斯反演套路二--(n/d)(m/d)给提出来--BZOJ3529: [Sdoi2014]数表

    一个数表上第i行第j列表示能同时整除i和j的自然数,Q<=2e4个询问,每次问表上1<=x<=n,1<=y<=m区域内所有<=a的数之和.n,m<=1e5,a ...

  10. POJ 3468_A Simple Problem with Integers(线段树)

    题意: 给定序列及操作,求区间和. 分析: 线段树,每个节点维护两个数据: 该区间每个元素所加的值 该区间元素和 可以分为"路过"该区间和"完全覆盖"该区间考虑 ...