CentOS配置mencoder和ffmpeg flv视频转码

CentOS配置mencoder和ffmpeg flv视频转码总结

1、安装yum的fpmforge源

rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

2、安装mencoeder、ffmpeg、flvtool2、yamdi等

yum install libgcc gcc gcc-c++ libstdc++ libstdc++-devel compat-glibc compat-libstdc++-33 libevent libevent-devel
yum install ffmpeg ffmpeg-devel mplayer mencoder flvtool2 yamdi


3、执行编码的参数

mencoder /usr/local/src/video/2.rmvb -o /usr/local/src/video/2.flv -of lavf -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:dia=4:cmp=6:vb_strategy=1 -vf scale=480:-3 -ofps 12 -srate 22050

4、为flv增加关键帧

flvtool2 -U 2.flv

yamdi -i 2.flv -o 3.flv

//注意添加了关键帧的视频为3.flv做视频转码就这么简单,结合下一篇《使用Nginx搭建flv流媒体服务器》可以搭建简单的视频服务器。 现在你可以实现:上传任意格式的视频,服务器自动转码为FLV,还能自由拖动播放是不是很酷?!~

使用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 video.uenu.com;
root /www/users/video.uenu.com;
charset utf-8;

gzip on;

gzip_min_length 1100;

gzip_buffers 4 8k;

gzip_types text/plain;

limit_rate_after 10m; # 下载10M 后开始限速
limit_rate 512k; # 将速度限制为5121k/s
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.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视频拖放遇到的问题,都解决了。可以爽爽的拖动了。希望你也一样!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值