Прежде всего, посмотрите на эту document:
Dolby Digital: ac3
Dolby Digital Plus: EAC3
MP2: libtwolame, MP2
Windows Media Audio 1: wmav1
Windows Media Audio 2: wmav2
LC-AAC: libfdk_aac, libfaac, ААС, libvo_aacenc
HE-AAC: libfdk_aac, libaacplus
Vorbis: libvorbis, Vorbis
MP3: libmp3lame, libshine
Opus : libopus
Из приведенного выше документа вам будет ясно, что для кодирования звука в HE-AAC/HE-AAC-V2 вам необходимо использовать libfdk_a ac или libaacplus.
я объясню, как вы можете сделать это с помощью libfdk_aac:
первый убедитесь, что вы настроить FFmpeg вместе со следующими опциями:
--enable-libfdk_aac --enable-несвободные
Теперь построить FFmpeg и попробуйте запустить следующую команду и посмотреть, если он работает:
$ FFmpeg -i -vcodec копия -acodec libfdk_aac -profile: а aac_he
Если это работает, значит, libav связан с libfdk_aac.
теперь для того, чтобы использовать его в коде:
открыть кодировщик, используя следующие инструкции:
AVCodecContext *encoder_ctx;
encoder_ctx->codec_id = AV_CODEC_ID_AAC;
encoder_ctx->sample_fmt = AV_SAMPLE_FMT_S16;
encoder_ctx->profile = FF_PROFILE_AAC_HE;
encoder = avcodec_find_encoder_by_name("libfdk_aac");
// if you still try to open it using avcodec_find_encoder it will open libfaac only.
avcodec_open2(encoder_ctx, encoder, NULL);
Здесь мы идем, у вас есть libfdk_aac кодер открыт! Профили, которые вы можете использовать, приведены в этом source