ffmpeg编译和使用NDK交叉编译

2019-07-29  本文已影响0人  SuperTypeMen

参考http://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

去掉了libaom
到ffmpeg目录下执行如下操作:
wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 &&
tar xjvf ffmpeg-snapshot.tar.bz2 &&
cd ffmpeg &&
PATH="HOME/bin:PATH" PKG_CONFIG_PATH="HOME/ffmpeg_build/lib/pkgconfig" ./configure \ --prefix="HOME/ffmpeg_build"
--pkg-config-flags="--static"
--extra-cflags="-IHOME/ffmpeg_build/include" \ --extra-ldflags="-LHOME/ffmpeg_build/lib"
--extra-libs="-lpthread -lm"
--bindir="HOME/bin" \ --enable-gpl \ --enable-libass \ --enable-libfdk-aac \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libopus \ --enable-libvorbis \ --enable-libvpx \ --enable-libx264 \ --enable-libx265 \ --enable-nonfree && \ PATH="HOME/bin:$PATH" make &&
make install &&
hash -r

编译跨平台动态链接库
参考:https://blog.csdn.net/qq_15807167/article/details/79379964

安装ndk,并且设置环境变量
创建FFmpeg-android.sh脚本
添加权限chmod -R 777 FFmpeg-android.sh
执行FFmpeg-android.sh脚本
在/android/arm目录下 so包

ndk交叉编译Android平台动态包
参考:https://blog.csdn.net/qq_34902522/article/details/87879145

!/bin/bash

set -x
API=14
NDK=~/Documents/android-ndk-r17c
SYSROOT=NDK/platforms/android-API/arch-arm/
TOOLCHAIN=NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 function function_one { ./configure \ --prefix=PREFIX
--disable-shared
--enable-static
--disable-doc
--disable-ffplay
--disable-ffprobe
--disable-symver
--disable-ffmpeg
--cc=TOOLCHAIN/bin/arm-linux-androideabi-gcc \ --cross-prefix=TOOLCHAIN/bin/arm-linux-androideabi-
--target-os=linux
--arch=arm
--enable-cross-compile
--sysroot=SYSROOT \ --extra-cflags="-INDK/sysroot/usr/include/arm-linux-androideabi -isysroot $NDK/sysroot -fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -marm -march=armv7-a"
--enable-neon

make clean all
make
make install
}
CPU=armv7-a
PREFIX=(pwd)/android/CPU
function_one

上一篇下一篇

猜你喜欢

热点阅读