您的位置:首页 > 运维架构 > Nginx

使用Nginx搭建flv流媒体服务器

2012-07-03 16:57 681 查看

1、Nginx编译

要使nginx支持flv,在编译时应添加编译参数,启用flv模块
--with-http_flv_module

如果你已经安装了nginx,但又不知道是否启用了flv模块,可以使用如下命令查看:
[root@yufei ~]# /usr/local/nginx/sbin/nginx -V nginx: nginx version: nginx/1.0.4 nginx: built by gcc 4.1.2 20080704 (Red Hat 4.1.2-50) nginx: TLS SNI support disabled nginx: configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_sub_module --with-http_realip_module

可以看到我的nginx版本为 1.0.4,其中已经开启了 http_flv_module

2、Nginx配置

要使nginx可以支持flv拖动还需要在站点配置中开启,如下:
server   {     listen       80;     server_name  media.linux.fei.cn;     root  /www/users/media.linux.fei.cn;     charset utf-8;     limit_rate_after 10m;     limit_rate 512k;     location ~ \.flv     {       flv;     }   }

使用location 将 .flv的文件指向flv模块即可。
以上使用了limit_rate 是为了限速,当 flv视频下载超过10M,则限速到512K,也就是先快速缓存可以播放,后面的慢慢下载。

3、常见问题

经过以上配置之后也许你的FLV视频还不能正常播放,还有几个问题需要注意:

3.1、FLV没有metadata关键帧数据

可以使用yamdi或flvtool2为你的flv视频添加关键帧
yamdi -i source.flv -o dest.flv

flvtool2 -U source.flv

3.2、添加了关键帧却依然不能拖动,播放器设置

此时要看你使用的flv播放器是否支持,你应该选择一个支持拖动的flv播放器,如:jw player,如果你没有也可以从这里下载 jwplayer.zip
在配置播放器时有两个参数比较重要,如果配置不正确,也可能导致不能拖动:
file:"video.flv", // FLV视频地址 type:"http",  // 数据类型,一定要配置正确,否则不能正常拖动,我就是这个参数没设置,郁闷了半天,无法拖动 image:"preview.jpg",// 开始播放之前的预览图 autostart:"false", // 是否自动播放 streamer:"start", // 参数为 “start”,这个参数用于传递给服务器从特定的关键帧开始播放,nginx编译了 flv 模块 所以是支持的。。

至此,我在配置FLV视频拖放遇到的问题,都解决了。可以爽爽的拖动了。希望你也一样!
本文转载自:http://www.yanghengfei.com/archives/nginx-flv/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: