首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

Nginx上搭建flv视频服务器且支持视频拖动进度条播放

2013-01-02 
Nginx下搭建flv视频服务器且支持视频拖动进度条播放目前,由于Flash的流行,网络上绝大多数的微视频网站都采

Nginx下搭建flv视频服务器且支持视频拖动进度条播放

目前,由于Flash的流行,网络上绝大多数的微视频网站都采用了Flv格式来播放视频。

在互联网上播放视频,有两种方式,一种是文件方式,即通过HTTP协议访问视频文件,这种方式的缺点是不能从特定的帧开始播放;另外一种就是采用专门的流媒体服务器,这种方式的缺点是要搭建复杂的流媒体服务器。不过,现在有了一种集合了以上两种方式优点的一种解决方案,即通过HTTP来实现伪流媒体。本文描述的就是这样的一种解决方案。

首先配置nginx服务支持flv模块功能

⑴查看你的nginx是否已支持flv功能模块

[root@localhost?~]#?/usr/local/nginx/sbin/nginx?-V??//查看nginx服务支持

结果:

nginx?version:?nginx/0.8.24

built?by?gcc?4.4.4?20100726?(Red?Hat?4.4.4-13)?(GCC)?

configure?arguments:?--prefix=/usr/local/nginx?--with-http_flv_module?--with-http_gzip_static_module?--with-http_stub_status_module

分析:我的nginx版本0.8.24,http_flv_module已经开启,支持flv服务

⑵安装支持flv模块的nginx服务器:

#tar?zxvf?nginx-0.8.24.tar.gz

#cd?nginx-0.8.24

#./configure?--prefix=/usr/local/nginx??--with-http_flv_module?--with-http_gzip_static_module?--with-http_stub_status_module?//开启flv模块

#make?&&?make?install

#/usr/local/nginx/sbin/nginx???????//启Nginx

⑶nginx服务器配置(nginx.conf文件)

server

??{

listen???????80;

server_name??localhost;???

charset?utf-8;

?location?/?{

????????????root???html;

????????????index??index.php?index.html?index.htm;

????????}

??location?~?\.flv?{

????????????flv;

???limit_rate_after?10m;

???limit_conn?one?1;???

???limit_rate?85k;

????????}

??}

使用location?将?.flv的文件指向flv模块即可。

以上使用了limit_rate?是为了限速,当?flv视频下载超过10M,则限速到85K,只允许用户开1个进程,也就是先快速缓存可以播放,后面的慢慢下载。

⑷安装支持flv拖放进度条的播放器

上面三步都是安装支持nginx服务支持flv功能的,现在需要支持flv拖放进度条的播放器.

你需要有一个能够播放Flv视频的播放器,很显然,它还需要能够嵌入到网页中。目前比较流行的,功能上也还比较完善的一个Flv播放器就是?JW?FLV?Media?Player(也称为?jwplayer)。它的网址是:

http://www.longtailvideo.com/players/jw-flv-player/

这个播放器支持视频加入广告和视频节目单功能,

下载包里面有很全的实例和使用方式,

将包中的player.swf(如果是带有Viral插件的,就是player-viral.swf)放到你的网站内,这就是用来提供视频播放的播放器。至于包中其它的文件,都可以不要。

接下来,将播放器嵌入到你的视频播放网页中:

直接嵌入,使用Object/Embed代码嵌入:

<embed??

????????type="application/x-shockwave-flash"??

????????id="player2"??

????????name="player2"??

????????src="player.swf"???

????????width="328"???

????????height="200"??

????????allowscriptaccess="always"???

????????allowfullscreen="true"??

????????flashvars="file=http://192.168.40.135/test.flv&image=http://192.168.40.135/preview.jpg&autostart=false&type=http&streamer=start"???

????>??</embed>

file:"video.flv",?//?FLV视频地址

type:"http",????????//?数据类型,本文是基于http模式的,这个必须写滴

image:"preview.jpg",//?开始播放之前的预览图

autostart:"false",??//?是否自动播放

streamer:"start",???//?参数为?“start”,这个参数用于传递给服务器从特定的关键帧开始播放,nginx编译了?flv?模块?所以是支持的。。

⑸添加关键帧

如果一个Flv视频要能够被拖到特定点播放,该Flv需要在其metadata中有关键帧的信息。如果你的Flv视频制作的时候没有这些信息,也是不能拖放播放的。可以使用yamdi来为你的视频加上关键帧信息?:

安装:

1 [root@localhost?~]#wget?http://sourceforge.net/projects/yamdi/files/yamdi/1.4/yamdi-1.4.tar.gz/download

2 [root@localhost?~]#tar?zxvf?yamdi-1.4.tar.gz

3 [root@localhost?~]#cd?yamdi-1.4/

4 [root@localhost?yamdi-1.4]#make?&&?make?install

使用方法:

yamdi?-i?source.flv?-o?dest.flv?//原视频?输出视频

热点排行