在linux上爲瑞芯微Rockchip 3288交叉編譯x264和ffmpeg

  • 交叉編譯的目標平臺是linux不是android。從這裏將3288工具鏈clone下來。我clone到了**/home/yourname/arm-linux-gnueabihf**下面。
  • 先編譯x264。由於設置了**–prefix=./libs所以要先在當前目錄下創建一個目錄libs**。make install後頭文件和庫文件會出現在該文件夾下。
./configure --prefix=./libs --enable-shared --enable-static --host=arm-linux --cross-prefix=/home/yourname/arm-linux-gnueabihf/bin/arm-linux-gnueabihf- --disable-opencl --enable-pic
make
make install
  • 將x264源代碼目錄下的libs目錄拷貝到ffmpeg源代碼目錄下。再編譯ffmpeg。
./configure --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --prefix=/home/yourname/ffmpeg/source/ffmpeg/libs --enable-cross-compile --cross-prefix=/home/yourname/arm-linux-gnueabihf/bin/arm-linux-gnueabihf- --target-os=linux --arch=arm --enable-shared  --disable-static --enable-gpl --enable-pthreads  --disable-vdpau --disable-vaapi --disable-vda --enable-libx264 --extra-cflags="-I/home/yourname/ffmpeg/source/x264/libs/include -fPIC -DPIC" --extra-ldflags=-L/home/yourname/ffmpeg/source/x264/libs/lib 
make
make install

注意:由於配置時設置了**–enable-gpl**,所以用了這個庫的代碼是要開源的。不想開源,不要加這個選項。更多的配置信息請查看官方文檔。

  • 然後寫一個小程序測試一下。
#include<libavutil/opt.h>
#include<libavcodec/avcodec.h>
#include<libavutil/common.h>
#include<libavutil/imgutils.h>
#include<libavutil/mathematics.h>
#include <libavutil/samplefmt.h>

void main()
{
avcodec_register_all();
}
~/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc test.c -I/home/yourname/ffmpeg/source/ffmpeg/libs/include -L/home/yourname/ffmpeg/source/ffmpeg/libs/lib -lavformat -lavutil -lavcodec -lx264 -lswresample
  • 如果能編過就可以把庫文件和在上一步編出來的可執行文件都拷貝到3288上進行測試。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章