【发布时间】:2021-10-22 00:37:15
【问题描述】:
我正在开发一个 android 应用程序,我必须将 webm 文件转换为 mp3。
我真的很想制作一个自定义的 ffmpeg 构建,因为它将 ffmpeg 可执行文件的大小减少到只有 2MB。
我的库工作绝对没问题在我的 PC 上运行时,但我正在努力为 android 构建它......似乎 NDK 架构已经改变和教程已经过时了,我找不到合适的和最新的 android 编译指南...
我还想针对所有架构(aarch64、armv7、i686 和 x86_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