lighttpd配置


1.搭建可以拖动的flv播放服务器

最近要搭建一个flv流媒体服务器来播放视频,参考了很多文章,总是不是很成功,非常的郁闷,于是干脆也不google了。

一、废话少说,预备知识:

×互联网上播放视频的两种方式

一种是以http协议方式来访问视频文件,这种方式的缺点是不能从视频特定的帧位置进行播放,必须从头开始。常用的方案是Appache+前端flv播放器。

另外一种方式是搭建专门的复杂的流媒体服务器,优点是视频支持拖拽播放,缺点是这种服务器搭建复杂,配置要求也比较高,而且运行其上的程序必须是某种语言。

常用的免费方案是RED5(使用java语言) 我现在做的这个方案是使用lighttpd自带的flv_streaming模块来实现伪流媒体。

×flv格式以及播放器

FLV 是FLASH VIDEO的简称,FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能。

我们一般看电影用的格式主要是rm,rmvb,mp4,mpg,avi等格式,这些格式都可以用视频转换工具转换成flv格式,比如win平台下的格式工厂、linux下的ffmpeg,但是转换生成的flv往往Meta Data是损坏的,不支持拖拽操作,一拖拽就又从头播放了。

我们使用flv修复工具,如flvtools,yamdi等等。

flv播放器也非常多,但是80%的flv播放器也只是起到flv解码播放的作用,无法向服务器发送帧参数。比如我要拖拽到50秒那个地方播放,而50秒对应的帧假如是第900帧,flv播放器应该向服务器发送一个类似“start=9000”的帧参数请求。

二、我们搭建流媒体服务器要有3大条件:

1是支持伪flv流的web服务器,这里用的是lighttpd

2是Meta Data完好无损的flv文件

3是支持发送帧参数的flv播放器,比如fwplayer和flowplayer

搭建步骤

我们首先搭建一下流媒体服务器

用rpm安装lighttpd,首先添加rpmforge源

[vb] view plaincopy

  1. wget ftp://ftp.univie.ac.at/systems/linux/fedora/epel/5/i386/lighttpd-1.4.26-2.el5.i386.rpm  

  2. rpm -ivh rpmforge-release-0.5.1-1.el5.rf.i386.rpm  

安装lighttpd,目前最新版本是1.4.28

[vb] view plaincopy

  1. yum install lighttpd  

 

 flv如果没有关键帧是不能拖动,加关键帧:

http://www.searu.org/yamdi.html



配置开启lighttpd的flv_streaming模块,网上很多教程都只开启了flv_streaming模块,建议也开启mod_secdownload模块。Lighttpd的配置主文件是/etc/lighttpd/lighttpd.conf,模块配置文件是/etc/lighttpd/modules.conf 

在server.modules 中加入"mod_secdownload","mod_flv_streaming"

[vb] view plaincopy

  1. vi /etc/lighttpd/modules.conf   

  2. server.modules = (  

  3. #"mod_access",  

  4. #  "mod_alias",  

  5. #  "mod_auth",  

  6. #  "mod_evasive",  

  7. "mod_redirect",  

  8. "mod_rewrite",  

  9. "mod_secdownload", #新加行  

  10. "mod_flv_streaming", #新加行  

  11. #  "mod_setenv",  

  12. #  "mod_usertrack",  

  13. )  

  14. flv-streaming.extensions = ( ".flv" ) #新加行,说明所有的Flv文件都由flv模块处理  

 

 server.port = 8080 #设置端口

 

 

我们启动一下lighttpd

[vb] view plaincopy

  1. service lighttpd restart  

 

如果启动成功,我们的流媒体服务器就已经完成了。

在浏览器中访问一下服务器,如果访问不了成功,配置一下防火墙,开放80端口。并且把selinux设置为允许。如果还是不行,你的配置有问题,最好的办法是看一下日志:tail /var/log/lighttpd/error.log

第二步我们制作一个flv视频,用到的工具是centos下的ffmepg+flvtool2 或者 win下的格式工厂+flvmdi,流程就是先把rm,rmvb,mov,mp4等等各类视频匆匆转换成flv格式,再用meteData工具修复一下。

目前作者的做法是这样的,

先下载格式工厂:下载地址http://www.xdowns.com/soft/10/35/2008/Soft_41466.html ,如果这个页面失效了,大家谷歌自己找

通过格式工厂我把一小电影video.rm 转换成了video.flv,具体操作就不详细说了

video.flv的修复工作我是在centos里面进行的,因为flvmdi有时候不起作用,还是flvtool2稳定。我们可以通过samba共享或者用ftp把video.flv传到Centos系统里面。

在Centos上安装flvtool2并修复一下video.flv

[vb] view plaincopy

  1. yum install flvtool2  

  2. flvtool2 -U video.flv  

 

flv文件已经准备好了,再进行最后一步,配置flv播放器,我使用的是jw player

下载地址:http://www.longtailvideo.com/players/jw-flv-player/

另外使用了swfobject.js,下载地址:http://code.google.com/p/swfobject /downloads/list

lighttpd默认的web目录在/srv/www/lighttpd下面,我们放这几个文件

网页文件:index.html

视频文件:video.flv

视频预览图片:perview.jpg

js:swfobject.js

flv播放器:player.swf

---------------------------------------------------------------

附:index.html文件内容:

[xhtml] view plaincopy

  1. <html>  

  2. <mce:script type="text/JavaScript" src="swfobject.js" mce_src="swfobject.js"></mce:script>  

  3. <head>  

  4. <mce:script type="text/JavaScript"><!--  

  5. /* <!--[CDATA[ */  

  6. function createPlayer() {  

  7.     var flashvars = {  

  8.         file:"video.flv",  

  9.         type:"http",  

  10.         image:"preview.jpg",  

  11.         autostart:"false",  

  12.         streamer:"start"  

  13.     }  

  14.     var params = {  

  15.         allowfullscreen:"true",  

  16.         allowscriptaccess:"always"  

  17.     }  

  18.     var attributes = {  

  19.         id:"player1",  

  20.         name:"player1"  

  21.     }  

  22.     swfobject.embedSWF("player.swf", "placeholder1", "320", "196", "9.0.115", false, flashvars, params, attributes);  

  23.         }  

  24. /* ]]--> */  

  25. // --></mce:script>  

  26. </head>  

  27. <body onload="createPlayer();">  

  28.     <div id="placeholder1"></div>  

  29. </body>  

  30. </html>  

 

 

ok!三条件已经完成,访问http://yourserverip/index.html



2.绑定多个端口

    

$SERVER[ "socket" ] ==  "0.0.0.0:82"  {
server.document-root =  "/oldyzzt_s2/webroot/game/"
}
$SERVER[ "socket" ] ==  "0.0.0.0:83"  {
server.document-root =  "/oldyzzt_s3/webroot/game/"
}

3.redirect


$HTTP["host"] == "www.xxx.com" {

url.redirect = ( "^/(.*)" => "http://www.xxx.com:808/$1" )

}

$HTTP["host"] == "xxx.com" {

url.redirect = ( "^/(.*)" => "http://www.xxx.com:808/$1" )

}


4.二级域名反向代理

#打开"mod_proxy",模块

#将xxx.xxx.com代理到127.0.0.1的1377端口

$HTTP["host"] == "xxx.xxx.com" {

proxy.balance = "hash"

proxy.server = (""=>

(

("host" =>"127.0.0.1","port"=>1377)

)

)

}










  

转载于:https://my.oschina.net/yale8848/blog/309759

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值