花了我接近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. Linux 下 Jenkins安装

    Jenkins介绍 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. 安装环境 操作系统:lin ...

  2. span-wise drag/lift forces of cylinder

    span-wise drag/lift forces of cylinder SR Description:   Dear Sir/Madam, I am trying to simulate a 3 ...

  3. jsp学习之如何在web层创建Servlet

    jsp动态网页的文件目录结构如下: 1.src下存放java代码 2.包web_xx为web层 3.webcontent里面是jsp文件 jsp页面中的请求交付给servlet处理,在实际中 jsp的 ...

  4. UVALive 6507 Passwords

    Passwords Time Limit: 3000ms Memory Limit: 131072KB This problem will be judged on UVALive. Original ...

  5. [luoguP2885] [USACO07NOV]电话线Telephone Wire(DP + 贪心)

    传送门 真是诡异. 首先 O(n * 100 * 100) 三重循环 f[i][j] 表示到第 i 个柱子,高度是 j 的最小花费 f[i][j] = min(f[i - 1][k] + abs(k ...

  6. node的express框架,核心第三方模块body-parser 获取我们所有post请求传过来数据

    - 安装 body-parser模块- npm install body-parser -S - 调用- let bodyParser=require('body-parser'); - 设置中间件- ...

  7. git一个本地仓库连接多个远程仓库

    前言:由于公司的GIT是内网服务器,而在家工作访问不了内网服务器,由此想把本地仓库连接一个外网的GIT服务器(码云),方便不在公司时开发. 原文 某些场合,一个git项目需要能同时使用两个甚至多个远程 ...

  8. list循环删除单个元素

    摘自https://www.cnblogs.com/pcheng/p/5336903.html JAVA中循环删除list中元素的方法总结 JAVA中循环遍历list有三种方式for循环.增强for循 ...

  9. mysql导入大型sql文件时注意事项

    原文:http://blog.csdn.net/k21325/article/details/70808563 大型sql文件,需要在my.ini(windows)或者my.cnf(Linux)中设置 ...

  10. sonar做代码检测时如何忽略一些代码文件

    1.管理员登录sonar 2.如图 一条规则配置一个,不要填写逗号或者分号分割的多个规则