首先看一下这个
文档:
杜比数字:ac3
杜比数字+:eac3
MP2: libtolame, mp2
Windows 媒体音频 1:wmav1
Windows 媒体音频 2:wmav2
LC-AAC:libfdk_aac、libfaac、aac、libvo_aacenc
HE-AAC:libfdk_aac、libaacplus
Vorbis: libvorbis, vorbis
MP3:libmp3lame、libshine
作品:libopus
从上面的阅读中你会很清楚,为了在 HE-AAC/HE-AAC-V2 中编码音频,你必须使用 libfdk_aac 或 libaacplus。
我将解释如何使用 libfdk_aac 来做到这一点:
首先确保您配置 ffmpeg 以及以下选项:
--enable-libfdk_aac --enable-nonfree
现在构建 ffmpeg 并尝试运行以下命令,看看它是否有效:
ffmpeg -i <input file> -vcodec copy -acodec libfdk_aac -profile:a aac_he <output file>
如果这可行,则意味着 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 编码器!您可以使用的配置文件在此 来源中给出