ffmpeg是基于Linux开发的,所以在linux系统(Ubuntu)上编译ffmpeg其实很简单。下面介绍如何在Ubuntu上编译基本的ffmpeg库(不带其他扩展的解码编码库)。
1、下载ffmpeg源代码
ffmpeg官网链接:https://ffmpeg.org/
ffmpeg下载链接:git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg // 利用git分布式版本控制工具下载源码,下载完毕可以在当前目录看到ffmpeg目录。
2、配置ffmpeg
ffmpeg很多的编译选项是通过宏来控制的,我们可以通过ffmpeg提供的configure命令,配置自己需要的编译选项。configure命令实际上是生成config.h这个头文件,这个头文件里面就是一系列宏的定义,用来控制ffmpeg的编译选项。
首先打开终端,然后把当前目录切换到ffmpeg目录,输入配置命令(可根据自己的情况来修改)如下:
trim@trim-VirtualBox:~/Downloads/ffmpeg$
trim@trim-VirtualBox:~/Downloads/ffmpeg$
trim@trim-VirtualBox:~/Downloads/ffmpeg$
trim@trim-VirtualBox:~/Downloads/ffmpeg$ ./configure --prefix=/home/trim/Downloads/ffmpeg/out --enable-shared --disable-yasm --disable-static
回车,如果能看config.h文件生成成功说明配置完成。
常用的配置:
--prefix=/home/xxxx/ffmpeg/out 是指定ffmpeg的输出文件的根目录,如果不指定ffmpeg输出的include/lib/bin这些输出文件将保存在系统目录下。
--enable-static 构建静态库(默认启用)build static libraries [default=yes]
--disable-static 禁止构建静态库(默认关闭)do not build static libraries [default=no]
--enable-shared 构建共享库(默认关闭)build shared libraries [default=no]
--disable-shared 禁止构建共享库(默认启用)do not build shared libraries [default=yes]
--disable-yasm 禁用yasm伤残汇编(默认启用) disable use of yasm assembler
3、编译ffmpeg
继续在终端输入 make -j2(2表示开启两个进程来编译,根据CPU核心数的一半来确定) 命令,就会看到编译信息。大约几分钟之后编译结束,如果没有遇到错误的话。
4、安装(生成)ffmpeg
继续在终端输入 make install 命令, 这样编译的结果就会输出到指定的输出目录下,如下图:
5、将生成的include/lib/bin文件夹拷贝到你需要用ffmpeg的工程里,就可以调用ffmpeg库了。