Ffmpeg Android - 将 WAV 转换为 MP3 的最小二进制大小

Ffmpeg Android - Minimum binary size to convert WAV to MP3

我唯一想做的就是在我的 Android 应用程序中将 wav 文件转换为 mp3。

我目前正在使用 https://github.com/tanersener/mobile-ffmpeg 并且使用 audio-release 一切正常。由于 lib 大小约为 40 MB,我只需要一个命令,我想按照 Wiki 中的描述构建我自己的 .aar 文件以减少应用程序大小。

我编辑了 android-ffmpeh.sh ./configure:

--disable-everything \    
--enable-pthreads \
--enable-avcodec \
--enable-avformat \
--enable-swresample \
--enable-avfilter \
--enable-libmp3lame \
--enable-parser=mpegaudio \
--enable-demuxer=mp3,wav,pcm_s16le \
--enable-muxer=mp3,wav,pcm_s16le \
--enable-decoder=pcm*,mp3*,wav,pcm_s16le \
--enable-encoder=pcm*,pcm_s16le,wav,mp3,libmp3lame \
--enable-filter=aresample \
--enable-protocol=file \

然后是运行./android.sh -l --enable-lame --enable-libiconv

在我的 Android 应用程序中 FFmpeg 加载但转换不成功并出现以下错误:

E/mobile-ffmpeg: [AVFilterGraph @ 0x7209dfec40] No such filter: 'anull'
E/mobile-ffmpeg: Error reinitializing filters!
E/mobile-ffmpeg: Failed to inject frame into filter network: Invalid argument
E/mobile-ffmpeg: Error while processing the decoded data for stream #0:0
I/mobile-ffmpeg: Conversion failed!

有谁知道我遗漏了什么或为此构建最小二进制文件的其他配置。 非常感谢任何帮助!

ffmpeg 工具可以自动调用以下过滤器:aformat anull atrim format hflip null transpose trim vflipconfigure 自动设置为 select 它们,除非被覆盖,您可以通过声明 --disable-everything 来覆盖。因此,需要手动启用这些过滤器。