使用ffmpeg原生AAC将原始PCM编码为aac

时间:2012-04-04 10:47:43

标签: android ffmpeg aac

我正在尝试将原始PCM转换为aac。所以我试图通过ffmpeg实现它。

我的ffmepg配置

- enable-cross-compile --arch = arm --cpu = armv6 --enable-asm --target-os = linux --disable-stripping --enable-neon --enable-version3 --disable -shared --enable-static --enable-gpl --enable-memalign-hack --cc = arm-linux-androideabi-gcc --ld = arm-linux-androideabi-ld --extra-cflags =' - fPIC -DANDROID -D_ thumb _ -mthumb -Wfatal-errors -Wno-deprecated -marm -march = armv6'-disable-everything --enable-encoder = aac --enable-decoder = h264 - -enable-hwaccels --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-network --enable-filter = buffer --enable-filter = buffersink --disable-demuxer = v4l --disable-demuxer = v4l2 --disable-indev = v4l --disable-indev = v4l2

avcodec_find_encoder(CODEC_ID_AAC)  find's the AAC encoder succesfully.

audio_context= avcodec_alloc_context()
avcodec_open(audio_context, audio_encoder)  failed to open aac 

任何想法?

2 个答案:

答案 0 :(得分:0)

我认为答案将出现在logcat的ffmpeg部分。您应该在ffmpeg库中启用调试级别日志记录并捕获日志以找出codec_open语句失败的位置。

在这里提供日志。

答案 1 :(得分:0)

尝试使用libfaac而不是使用ffmpeg内置的aac编码器。

首先交叉编译libfaac for android。

在ffmpeg中 - extra-cflags 提供已编译的libfaac include 目录的路径。

中的

- extra-ldflags 提供了已编译的libfaac的 lib 目录的路径。

在ffmpeg config.sh中使用 - enable-libfaac

使用libfaac再次编译ffmpeg。