ffmpeg移植
·
1. 交叉编译yasm
进入yasm源码目录
make distclean //先把之前的编译,配置文件清除
export CC=arm-linux-gnueabihf-gcc //可通过"./configure --help"查看到用环境变量CC指定交叉编译器
./configure --prefix=/usr/local/ffmpeg_arm/xlibs --host=arm // "--prefix"用于指定安装目录, "--host"用于指定目标平台.
make && make install //完成后, 生成在"/usr/local/ffmpeg_arm/xlibs/"目录里
2. 交叉编译libx264
进入x264源码目录
make distclean
./configure --host=arm-linux --cross-prefix=arm-linux-gnueabihf- --extra-cflags="-I /usr/local/ffmpeg_arm/xlibs/include" --extra-ldflags="-L /usr/local/ffmpeg_arm/xlibs/lib" --prefix=/usr/local/ffmpeg_arm/xlibs --enable-shared
// 相关的配置项可通过"./configure --help"查看
make && make install //完成后, 生成在"/usr/local/ffmpeg_arm/xlibs/"目录里
3. 交叉编译libx265
参考: http://blog.csdn.net/wanglx_/article/details/50786307
进入x265源码目录里的build/linux目录后操作:
mkdir arm-linux //创建子目录
cd arm-linux
vim toolchain.cmake //创建文件,并加入下面内容:
set(CROSS_COMPILE_ARM 1)
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR Arm)
set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
# 交叉编译器的路径
SET(CMAKE_FIND_ROOT_PATH /disk3/myAm4379/arm4.7/bin)
vim make-Makefiles.bash //创建文件并加入下面内容:
#!/bin/bash
# Run this from within a bash shell
cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -G "Unix Makefiles" ../../source && ccmake ../../source
./make-Makefiles.bash
在弹出的界面里修改以下项:
CMAKE_INSTALL_PREFIX /usr/local/ffmpeg_arm/xlibs
YASM_EXECUTABLE /usr/local/ffmpeg_arm/xlibs
修改完成后,按'c'键后再按'g'键保存退出
修改下面三个文件:
vim encoder/CMakeFiles/encoder.dir/flags.make
vim common/CMakeFiles/common.dir/flags.make
vim CMakeFiles/cli.dir/flags.make
都是在"CXX_FLAGS"语句最后加上 -fPIC, 否则会有"can not be used when making a shared object; recompile with -fPIC"的报错
修改完成后,执行make && make install 进行编译
如发生错误:arm-linux-gnueabihf-g++: error: unrecognized argument in option ‘-march=i686
则把arm-linux整个目录删除重新做一次应就可以了。
以上操作完成后,x265的库就生成在/usr/local/ffmpeg_arm/xlibs目录里
4. 交叉编译ffmpeg
进入ffmpeg3.0源码目录里操作:
make distclean
export PKG_CONFIG_PATH=/usr/local/ffmpeg_arm/xlibs/lib/pkgconfig/
./configure --disable-debug --enable-libx264 --enable-libx265 --enable-gpl --enable-shared --enable-cross-compile --arch=armv7a --cross-prefix=arm-linux-gnueabihf- --prefix=/usr/local/ffmpeg_arm/xlibs --extra-cflags="-I /usr/local/ffmpeg_arm/xlibs/include -fPIC" --extra-ldflags="-L /usr/local/ffmpeg_arm/xlibs/lib" --target-os=linux --pkg-config-flags=--static
make && make install
更多推荐


所有评论(0)