nginx、apache配置flv流媒体拖动

nginx下配置flv拖动

首先,下载nginx源码包,以0.8.54版本为例

wget http://nginx.org/download/nginx-0.8.54.tar.gz
重编译之前,停掉nginx服务。查看一下nginx原来的编译参数

/usr/local/nginx/sbin/nginx –V
在原来的参数基础上添加flv的支持

--with-http_flv_module
0.8.54版本为例,进行编译

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-http_flv_module

make && make install
编译完成后,在nginx.conf文件里添加flv支持

location ~ \.flv$ {
flv;

}

启动nginx,使用curl –I 来查看是否成功。

主要查看的是 Content-Length的数值。和加上参数start 之后进行对比。

例如:

curl -I http://videozhangyuc.com/flv/110718/video.flv
Content-Length: 1218888

对比

curl -I http://video.zhangyuc.com/flv/110718/video.flv?start=12345
Content-Length: 1206556

以上示例只列出Content-Length的值。

假如加上参数之后,Content-Length值依旧和之前相同,则表示配置没有成功

apache下配置flv拖动

Windows服务器下配置拖动,一共需要两步

第一步,下载mod_flvx.so并放到apache目录下的modules文件夹下

下载地址:

http://www.mosalov.com/files/mod_flvx.so
第二步,在apache的配置文件中,添加以下内容,重启apache服务

LoadModule flvx_module modules/mod_flvx.so
AddHandler flv-stream .flv

linux服务器下配置拖动,需要下载mod_flvx.c文件后进行编译

第一步,下载mod_flvx.c,并进行编译。

wget https://github.com/osantana/mod_flvx/blob/master/mod_flvx.c
或者wget http://people.apache.org/~pquerna/modules/mod_flvx.c
使用apxs进行编译,编译前,请检查apxs版本

apxs -c -i ./mod_flvx.c
第二步,在apache的conf.d目录下创建mod_flvx.conf文件,并写入以下内容

LoadModule flvx_module /usr/lib/apache2/modules/mod_flvx.so
AddHandler flv-stream .flv
配置完成后重启即可

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

3.1、FLV没有metadata关键帧数据
可以使用yamdi或flvtool2为你的flv视频添加关键帧

yamdi -i source.flv -o dest.flv或

flvtool2 -U source.flv3.2、添加了关键帧却依然不能拖动,播放器设置
此时要看你使用的flv播放器是否支持,你应该选择一个支持拖动的flv播放器,如:jw player,如果你没有也可以从这里下载 jwplayer.zip

在配置播放器时有两个参数比较重要,如果配置不正确,也可能导致不能拖动:

file:"video.flv", // FLV视频地址
type:"http", // 数据类型,一定要配置正确,否则不能正常拖动,我就是这个参数没设置,郁闷了半天,无法拖动
image:"preview.jpg",// 开始播放之前的预览图
autostart:"false", // 是否自动播放
streamer:"start", // 参数为 “start”,这个参数用于传递给服务器从特定的关键帧开始播放,nginx编译了 flv 模块 所以是支持的。。至此,我在配置FLV视频拖放遇到的问题,都解决了。可以爽爽的拖动了。希望你也一样!

点赞