"L'encodeur 'aac' est expérimental mais les codecs expérimentaux ne sont pas activés"
Lors de la conversion de flv
en mp4
conversion en utilisant {[3] }Il affiche l'erreur suivante
[aac @ 0x2b4b640] The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.
5 réponses
Réalité il n'est pas suffisamment de pour ajouter -strict -2
à la ligne de commande. Il est très important où le -strict -2
est ajouté et malheureusement cela n'est pas expliqué dans le message d'erreur. Il devrait être juste avant le dernier argument, c'est-à-dire comme suit:
ffmpeg -i infile -strict -2 outfile
Comme le dit le message, l'encodeur audio ffmpeg AAC
natif est expérimental et vous devez ajouter -strict -2
ou -strict experimental
à votre commande l'utiliser. Cependant, cet encodeur n'est plus marqué comme expérimental, donc les versions ffmpeg récentes n'ont pas besoin d'utiliser cette option.
Pour les meilleurs résultats, utilisez - libfdk_aac
à la place. Vous devez compiler ffmpeg avec cette lib, voir le guide de compilation .
Pour définir l'encodeur audio utiliser -c:a libfdk_aac
.
Essayez la commande suivante :
ffmpeg -i Inputfile.flv -vcodec h264 -acodec aac -strict -2 Filename.mp4
Vous pouvez utiliser cette commande pour convertir n'importe quel type de fichier vidéo en mp4 avec x264 et avec la même qualité.
J'ai essayé tant de façons, mais cela a fonctionné pour moi comme un charme. ;)
Vous pouvez ajouter l'expérimental-strict dans votre code C++ en définissant la variable codec-context strict_std_complaince
sur -2 avant d'ouvrir le codec.
AVCodecContext *c;
c->strict_std_compliance = -2;
/* open it */
ret = avcodec_open2(c, codec, NULL);
Voir l'explication de l'auteur original ici .
Votre question répond elle-même.
Ajoutez-y -strict -2
. Cela devrait suffire