天生我才必有用

ffmpeg的安装及使用

分类: 技术, 网站设计    作者:Ray    2008年10月21日

ffmpeg是一个类似Imagemagick的工具,两者最大的区别在于:ImageMagick是转换图片,而ffmpeg主要提供视频的转换。同时两者也有一个非常相似的优点就是支持的格式很多,基本涵盖了所有流行的图片和视频格式。

不过ffmpeg有一个非常不方便之处,就是安装比较麻烦,在Linux系统中并非默认安装,特别是想在一些共享空间(Virtual Host)里使用可能非常的困难。

那 我们首先来讲如何在Windows系统里安装它,网上很多文章都洋洋洒洒写了很多,教你怎么编译这样ffmpeg。其实在Windows系统中进行 ffmpeg的编译是难得最高的,毕竟它是Linux的产物,在Windows下编译难度不言而喻。其实有很多替代方案可以使用,毕竟Internet是 个热心人的时间,通过Internet可以减少很多重复的工作。

  1. 你可以从http://sourceforge.net/project/showfiles.php?group_id=205275&package_id=248632下载已经编译好的版本。
  2. 你也可以安装ImageMagick,其中也包含了一个ffmpeg的binary执行文件。

如果想在Linux中编译,可以参考官方的说明。我们这里再介绍如何在虚拟空间(Virtual Host)中进行编译,其实编译的过程也非常的简单。可以参考DreamHost的Wiki中的一篇文章的介绍,http://wiki.dreamhost.com/index.php/FFmpeg ,按照步骤如果编译无错应该就没问题,不过国外的虚拟空间技术都比较成熟,不清楚国内的虚拟空间支持了如何。

最后讲2个ffmpeg的视频转换命令:

1.把视频转换成flv文件(这个用得最多,现在Flv基本上已经成了网络视频的标准了)

ffmpeg -i source -s 320×240 -b 700k -aspect 4:3 -y -f flv dest.flv 。

其中:

  • source:是原始文件的名字,可以是mov,mpeg,avi,wmv各类格式,ffmpeg基本都支持。
  • -s wxh: 指定视频的宽和高
  • -b : 设定视频的比特率
  • -aspect: 保持视频的比率。如4:3或者16:9
  • -y : 如果目标文件存在时,直接覆盖原有的目标文件。
  • -f : 指定转换的文件格式,这里是flv格式。(其实如果不指定文件格式,ffmpeg也会按文件的后缀名来进行转换)。
  • dest: 转换的目标文件名字,并不一定需要是flv,可以是mov,mpeg以及其他的常用格式。

2. 截取视频的某一帧保存为图片。

ffmpeg -i source -ss 00:00:06 -t 00:00:01 -r 1 -s 320×240 -f image2 -y dst.jpg

网上也提到了很多保存视频,但很难找到如何从指定的位置开始保存,很多视频的第一帧都是黑屏,所以如不指定起始位置容易造成保存了一副黑的图片。

  • -ss : 指定其实视频的时间: hh:mm:ss.xxx 其实还可以指定到毫秒级,不过看了下手册没找到怎么从指定的帧开始,不过这个可以通过换算实现。
  • -t: 指定保持时间长度,因为是图片,所以固定设为00:00:01。如需保持为gif动画,可以设定为其他值,具体实现官方文档有说明。
  • -r: 指定帧,这里指定为第一帧。
  • -s: 图片的宽和高
  • -f: 指定为图片格式
  • dst: 图片的名字。

先分享到这里,如有问题大家可以一起讨论。

标签:

Leave a Reply