Comment encoder audio au format AAC-LC, AAC-HE-V1, AAC-HE-V2 à l'aide de libavcodec?
Je suis en train d'encoder l'audio au format AAC-LC,AAC-HE-V1, AAC-HE-V2 à l'aide de libavcodec/ffmpeg Api.
Mais quand je suis en utilisant la configuration suivante et les appels d'API.Il dit "non valide profil 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(encoder_ctx->codec_id);
avcodec_open2(encoder_ctx, encoder, NULL);
Pourriez-vous nous expliquer quel est le problème avec cela?
Vous devez vous connecter pour publier un commentaire.
Tout d'abord jeter un oeil à ce
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, aac, libvo_aacenc
HE-AAC: libfdk_aac, libaacplus
Vorbis: libvorbis, vorbis
MP3: libmp3lame, libshine
Opus: libopus
de la au-dessus de lecture, il sera clair pour vous que pour l'encodage de l'audio en HE-AAC/HE-AAC V2, vous devez utiliser libfdk_aac ou libaacplus.
Je vais vous expliquer comment vous pouvez le faire en utilisant libfdk_aac:
d'abord assurez-vous de configurer ffmpeg avec des options suivantes:
maintenant construire ffmpeg et essayez d'exécuter la commande suivante et voir si cela fonctionne:
si cela fonctionne, cela signifie libav est lié avec libfdk_aac.
maintenant afin de l'utiliser dans le code:
ouvrir le codeur à l'aide des instructions suivantes:
Ici, nous allons, vous avez libfdk_aac encodeur open !
Les fiches que vous pouvez utiliser sont indiqués dans cette source
Je suppose que le problème est que AAC-IL n'est pas pris en charge sur ce codeur. Vous pouvez vérifier cela dans le code source. Pris en charge sont: la
FF_PROFILE_AAC_MAIN
FF_PROFILE_AAC_LOW
FF_PROFILE_AAC_SSR
FF_PROFILE_AAC_LTP
Vous pourriez avoir besoin d'utiliser
libfdk_aac
codec, qui a AAC-IL.