Кодировать необработанные PCM в aac, используя собственный AAC ffmpeg

Я пытаюсь конвертировать сырые PCM в aac . Так что я пытаюсь добиться этого через ffmpeg.

Моя конфигурация ffmepg

--enable-cross-compile --arch=arm --cpu=armv6 --enable-asm --target-os=linux --disable-striping --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-не рекомендуется -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 ответа

Вместо использования встроенного кодировщика aac ffmpeg попробуйте использовать libfaac.

Прежде всего, кросс-компиляция libfaac для Android.

в ffmpeg --extra-cflags укажите путь к каталогу include вашего скомпилированного libfaac.

в --extra-ldflags укажите путь к каталогу lib вашего скомпилированного libfaac.

в ffmpeg config.sh использовать --enable-libfaac

Скомпилируйте ffmpeg снова с помощью libfaac.

Я думаю, что ответ будет в части ffmpeg logcat. Вы должны включить ведение журнала уровня отладки в своих библиотеках ffmpeg и захватить журнал, чтобы выяснить, где ошибка codec_open.

предоставьте журнал здесь.

Другие вопросы по тегам