Why write this article?
网上关于如何编译的文章很多,但有2个很明显的趋势
1. 国内的大多东抄点西抄点,时间滞后不说,当你google的结果大部分都大同小异后就会有抓狂的感觉,究其原因还是国内站长们‘爬虫’太多.
2. 国外优秀文章不错,很多,比如这篇 因此本文的目的主要是为了国内阅读英文较困难的同学服务,务必做到阅读完本文后,能自行编译ffmpeg.并简单操作.
Audience
ffmpeg初学者,并对linux相关命令不了解
What is ffmpeg?
简单来说就是一个跨平台、开源的流媒体处理工具.几乎集成了流媒体处理的所有功能,几乎’无所不能’.著名的’暴风影音’,’QQ影音’…都有’幸’加入了ffmpeg耻辱柱.
How to use?
ffmpeg主要2种使用方式 1、命令行 2、使用lib库
前者最方便,几乎不需要编程方面的知识,参考具体文档即可.
Compile
因为ffmpeg是主要几乎linux开发且官方不提供现成的二进制文件,需要用户自行编译,这就大大增加了初学者入门的难度
windows下有现成的编译库SDK,可以直接下载. 这里将如何在linux(debian)下编译ffmpeg.
网上可以找到很多教程,在正式安装ffmpeg需要安装许多东西,其实那些都并不是必须的.比如lame…
Debian的确很强大,强大到不需要本文,只需要几个apt-get 命令即可实现整个过程.当然这里不是本文的重点,懒人可以直接用下面的代码直接安装二进制包,有兴趣的朋友继续看下文,我们来手动编译
懒人方法::
apt-get install ffmpeg 如果提示不完整 继续输入 apt-get –f install
手动编译:
1. 安装gcc编译器. gcc是linux下一个c的编译器,用来对c源码进行编译.使用 apt-get install gcc 下载
2. 下载ffmpeg源码包 wget http://www.ffmpeg.org/releases/ffmpeg-0.6.tar.gz wget是linux下比较方便的下载命令
3. 解压ffmpeg, tar zxvf ffmpeg-0.6.tar.gz 即可
4. cd ffmpeg-0.6 进入ffmpeg目录
5. 运行./configure –help 可以查看编译参数. 看看就可以了,具体详细参考这份文档.
6. 这里我们运行 ./configure --prefix=/home/fred/ffmpeg --enable-gpl --enable-shared 简单说下
--prefix指定编译后的路径,默认是编译到/usr /opt 等目录中去,个人不是很喜欢这种方式,初学者建议不启用该项.
--enable-gpl 启用gpl编码
--enable-shared 允许共享lib包
7. make 开始编译,看电脑情况,一般几分钟时间是要的.耐心等待吧
8. make install 把编译后的so,co这些二进制文件都转移到prefix指定的目录中去
如果前面设置过prefix的朋友看这里,使用默认的可以忽略,这段作用是把ffmpeg执行命令加入到环境变量中去
$ cd /home/fred
$ vi .bashrc
插入 export ffmpeg=/home/fred/ffmpeg
export PATH = $ffmpeg/bin;$PATH
到了这里,如果一切顺利的话,可以运行下面命令测试下
ffmpeg –-help
如果打印出大量字符提示信息,那就说明安装正确了.
Example
如果前面都没有问题,运行下面命令,这条命令作用是把flv转成mpg格式
ffmpeg -i kitty.flv -target ntsc-dvd -aspect 4:3 kitty.mpg
评论关闭。