ffmpeg-6.1编译

发布时间 2023-12-15 16:46:27作者: 林西索

ffmpeg编译

** ffmpeg详细说明可以参考:**

https://blog.csdn.net/leixiaohua1020/article/details/44220151
https://www.cnblogs.com/leisure_chn/category/1351812.html

一.编译

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目录下