交叉编译器版本:version 4.5.1
Libx264版本:x264-snapshot-20121020-2245
FFMPEG版本:ffmpeg-1.0
这里我只是移植了ffmpeg支持了h264,音频的未移植。
一、X264移植
1、先执行配置文件
./configure --prefix=/home/linux/workspace/x264-build/x264-arm--enable-shared --disable-asm
--prefix 指定最后使用make install输出头文件、库文件等的路径
2、修改生成的config.mak文件
2.1 ARCH=X86 修改为ARCH=ARM
2.2 CC=gcc修改为CC=arm-linux-gcc
2.3去掉-m32 (这行中CFLAGS=-Wshadow -O3-ffast-math -Wall -I. -I$(SRCPATH)-std=gnu99 -fomit-frame-pointer -fno-tree-vectorize)
2.4 修改LD=gcc –o为LD=arm-linux-gcc –o
3、编译和安装
make
make install
这样就安装在了前面—prefix指定的路径下
二、ffmpeg移植
1、先执行配置文件
./configure --disable-ffmpeg --disable-ffplay--disable-ffprobe --disable-ffserver--prefix=/home/linux/workspace/ffmpeg-build/ffmpeg1.0-arm--enable-cross-compile --cross-prefix=arm-linux- --target-os=linux --arch=arm--enable-shared --enable-nonfree --enable-gpl --enable-version3--extra-cflags=-I/home/linux/workspace/x264-build/x264-arm/include--extra-ldflags=-L/home/linux/workspace/x264-build/x264-arm/lib--enable-libx264
配置选项说明
--cross-prefix在所有编译工具前加上前缀arm-linux-
--disable-stripping不使用strip去掉库信息
--extra-cflags:第三方库头文件声明(这个路径要指向x264的安装路径,对比看看我的ffmpeg配置就明白了)
--extra-ldflags:第三方库库文件路径(同上)
2、编译和安装
make
make install
如果在make install过程中出现类似上图所示的错误,参考如下链接:
http://blog.csdn.net/yming0221/article/details/6705418
三、使用
1、先将x264的安装路径下的lib和include目录下的所有文件拷贝到ffmpeg安装目录下的lib和include目录下
2、写个简单的测试程序
#include
#include
#include
#include
#include
#include
#include
void main()
{
avcodec_register_all();
}
编译命令:
arm-linux-gcc test.c-I /home/linux/workspace/ffmpeg-build/ffmpeg1.0-arm/include -L/home/linux/workspace/ffmpeg-build/ffmpeg1.0-arm/lib/ -lavformat -lavutil-lavcodec -lx264
-I(注意是大写的i)指定头文件路径,为安装的ffmpeg目录下的include目录
-L:指定库文件路径,为安装的ffmpeg目录下的lib目录
-l(注意是大写L的小写)指定库