实现如题的目标,要做的有两件事,先编译x264,将编译的x264静态库编译进ffmpeg中,生成具有libx264编码功能的ffmpeg可执行文件。
1. 环境准备
ffmpeg下载:http://www.ffmpeg.org/download.html
x264下载:http://download.videolan.org/x264/snapshots/
2. 解压编译x264
在x264文件目录上打开terminal,先configure,
在终端内输入如下命令:
./configure --prefix=xxx/code/extern-lib --enable-shared --enable-static --enable-yasm
–enable-shared:生成动态库
–enable-static:生成静态库
再执行
接下来执行make
操作,这样就生成了可执行程序,静态库,动态库。
再执行make install
执行完make install之后,在xxx/code/extern-lib
目录下有三个文件夹"./bin" ,"./include","./lib",这三个文件夹下分别放着make install后,x264生成的可执行文件、头文件、库文件(静态库、动态库)。
3. 编译ffmpeg
解压ffmpeg文件,在ffmpeg文件夹目录上打开terminal,输入:
./configure --prefix=xxx/code/ffmpeg_bin --enable-shared --enable-yasm --enable-libx264 --enable-gpl --enable-pthreads --extra-cflags=-Ixxx/code/extern-lib/include --extra-ldflags=-Lxxx/code/extern-lib/lib
接下来执行make -j 8
,再执行make install
这样在"xxx/code/ffmpeg_bin"目录下就安装了ffmpeg的可执行文件,库文件等
同时ffmpeg支持libx264编码,可以在生成的ffmpeg可执行文件下执行命令行操作:
./ffmpeg -i input.mp4 -vcodec libx264 -acodec copy rec.mp4
如果成功执行,并且显示使用libx264编码器编码,说明已经成功编译具有libx264编码器的ffmpeg工程
解释一下configure命令的参数含有:
–prefix=xxx/code/ffmpeg_bin: 第三步make install将安装在xxx/code/ffmpeg_bin目录下
–extra-cflags=-I xxx/code/extern-libinclude --extra-ldflags=-L xxx/code/extern-liblib:表示在编译ffmpeg的过程中包含的include文件地址和库文件的地址,在这两个地址中存放着x264生成的静态库文件和头文件,这些静态库和头文件将用于编译ffmpeg。