花了我接近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

最新文章

  1. Android—Service与Activity的交互
  2. iOS设置cell选中时文字颜色的变化
  3. 《深入理解bootstrap》读书笔记:第三章 CSS布局
  4. Window中常见的dos命令
  5. Why数学图像生成工具
  6. unicode转码,如:\u6d4b\u8bd5转成中文“测试”
  7. 类的扩展--类目和延展--ios
  8. Swift学习笔记(一)搭配环境以及代码执行成功
  9. network: Android 网络判断(wifi、3G与其他)
  10. Codeforces 245G Suggested Friends - 交集set_intersection()
  11. 使用VC++通过远程进程注入来实现HOOK指定进程的某个API
  12. 如何解决KEIL 5 编KEIL4同RTX系统的project解决方法
  13. hdu 1086(判断线段相交)
  14. matlab 向量法建数组(推荐)
  15. java多线程-消费者和生产者模式
  16. zepto.js 的tap事件中点击一次触发两次事件
  17. OpenCV+OpenCL stereo match 代码
  18. hbase-运维命令
  19. HTTP知识点【总结篇】
  20. io系列之其他类

热门文章

  1. 第二十节:Scrapy爬虫框架之使用Pipeline存储
  2. JQuery Easy UI 简介
  3. jQuery_DOM学习之------clone()
  4. Jackson 字符串转List&lt;Map&gt;
  5. SQL SERVER 自增字段相关问题
  6. [bzoj2946][Poi2000]公共串_后缀数组_二分
  7. JSP点击计数器
  8. Jsp标签字典开发_基于Spring+Hibernate
  9. spark开发环境配置
  10. 经常使用的android设计模式