まず、次の
ドキュメントをご覧ください。
ドルビーデジタル:ac3
ドルビーデジタルプラス:eac3
MP2: libtwolame、mp2
Windows Media オーディオ 1: wmav1
Windows Media オーディオ 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 エンコーダーが開きました! 使用できるプロファイルは、この ソースに記載されているとおりです