實現如題的目標,要做的有兩件事,先編譯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。