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

2011年06月18日 Linux服务器 暂无评论 阅读 19,552 views 次

nginx安装的文档网上有很多了,不再重复,这里只说明支持FLV拖动播放时需要的配置。

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/

给我留言

Copyright © 羽飞博客 保留所有权利.   Ality主题 皖ICP备14013844号-1

用户登录