Кодировать необработанные 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.
предоставьте журнал здесь.