ffmpeg编译
** ffmpeg详细说明可以参考:**
https://blog.csdn.net/leixiaohua1020/article/details/44220151
https://www.cnblogs.com/leisure_chn/category/1351812.html
https://zhuanlan.zhihu.com/p/639748679
一.编译
ubuntu x86_64 编译
-
下载最新源码 https://ffmpeg.org/
-
通过源码目录下的
configure
脚本配置编译选项。可以通过指令./configure --help
查看使用方法 -
make
构建ffmpeg,make install
安装ffmpeg到配置的路径(默认为/usr/local/lib)
ndk编译
-
下载ndk21(最新的ndk移除了一些组件,会导致编译失败)
-
执行下面脚本配置编译选项
#!/bin/sh
# NDK 所在的路径
export NDK=/home/a/ndk/android-ndk-r21e
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
# 需要编译出的平台,这里是 arm64-v8a
ARCH=aarch64
# 支持的最低 Android API
API=21
# 编译后输出目录,在 ffmpeg 源码目录下的 /android/arm64-v8a
OUTPUT=$(pwd)/android/arm64-v8a
build() {
./configure \
--target-os=android \
--prefix=$OUTPUT \
--arch=$ARCH \
--sysroot=$TOOLCHAIN/sysroot \
--disable-static \
--disable-ffprobe \
--disable-debug \
--disable-doc \
--disable-avdevice \
--enable-shared \
--enable-cross-compile \
--cross-prefix=$TOOLCHAIN/bin/aarch64-linux-android- \
--cc=$TOOLCHAIN/bin/aarch64-linux-android$API-clang \
--cxx=$TOOLCHAIN/bin/aarch64-linux-android$API-clang++ \
--extra-cflags="-fpic" \
--enable-hwaccels \
--enable-jni \
--enable-mediacodec \
--enable-decoder=h264_mediacodec \
--enable-decoder=hevc_mediacodec \
--enable-decoder=mpeg4_mediacodec \
--enable-hwaccel=h264_mediacodec \
# make clean all
make -j12
# make install
}
build
- 编译完成后生成的文件在OUTPUT目录下