在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
#include
#include
#include
#include
#include 

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上进行测试。

你可能感兴趣的:(工作日记)