【问题标题】:Android NDK Build FFMPEG in 2021Android NDK 2021 年构建 FFMPEG
【发布时间】:2021-10-22 00:37:15
【问题描述】:

我正在开发一个 android 应用程序,我必须将 webm 文件转换为 mp3。 我真的很想制作一个自定义的 ffmpeg 构建,因为它将 ffmpeg 可执行文件的大小减少到只有 2MB。

我的库工作绝对没问题在我的 PC 上运行时,但我正在努力为 android 构建它......似乎 NDK 架构已经改变和教程已经过时了,我找不到合适的和最新的 android 编译指南...

我还想针对所有架构(aarch64armv7i686x86_64)...

我已经研究了几个小时,修复了许多错误,但仍然没有任何效果>

PS。我在 Linux 上编译,这是我的配置脚本:

#!/bin/bash

API=31 # target android api

OUTPUT=/home/romain/dev/android/ffmpeg_build

NDK=/home/romain/android-sdk/ndk/23.0.7599858
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
SYSROOT=$TOOLCHAIN/sysroot

TOOL_PREFIX="$TOOLCHAIN/bin/aarch64-linux-android"

CC="$TOOL_PREFIX$API-clang"
CXX="$TOOL_PREFIX$API-clang++"

./configure \
    --prefix=$OUTPUT \
    --target-os=android \
    --arch=$ARCH \
    --cpu=$CPU \
    --disable-everything \
    --disable-everything \
    --disable-network \
    --disable-autodetect \
    --enable-small \
    --enable-decoder=opus,vorbis \
    --enable-demuxer=matroska \
    --enable-muxer=mp3 \
    --enable-protocol=file \
    --enable-filter=aresample \
    --enable-libshine \
    --enable-encoder=libshine \
    --cc=$CC \
    --cxx=$CXX \
    --sysroot=$SYSROOT \
    --extra-cflags="-0s -fpic"

make
make install

【问题讨论】:

  • 看看github.com/tanersener/mobile-ffmpeg——这个repo为你做了所有艰苦的工作,调整你的参数并运行一个简单的脚本来获得你想要支持的所有架构。

标签: android ffmpeg android-ndk


【解决方案1】:

前缀应该指向$SYSROOT/usr/,而您误解了--prefix 的含义。它不是输出目录。除此之外,我认为没有什么问题(如果仍然发生,请提供ffbuild/config.log

【讨论】:

    猜你喜欢
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 2015-05-01
    • 2017-01-05
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多