Lors de la conversion de flv
en mp4
à l'aide de FFMPEG
, l'erreur suivante s'affiche
[aac @ 0x2b4b640] The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.
En fait, il ne suffit pas de suffisant pour ajouter -strict -2
à la ligne de commande. Il est très important d’ajouter le -strict -2
et, malheureusement, cela n’est pas expliqué dans le message d’erreur. Ce devrait être juste avant le dernier argument, c'est-à-dire:
ffmpeg -i infile -strict -2 outfile
Comme le message l'indique, l'encodeur audio ffmpeg AAC
natif est expérimental et vous devez ajouter -strict -2
ou -strict experimental
à votre commande pour l'utiliser. Cependant, cet encodeur n'étant plus marqué comme expérimental, les versions récentes de ffmpeg n'ont pas besoin d'utiliser cette option.
Pour de meilleurs résultats, utilisez plutôt libfdk_aac
. Vous devez compiler ffmpeg avec cette bibliothèque, voir le compilation guide .
Pour définir l'encodeur audio, utilisez -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 tout type de fichier vidéo en MP4 avec x264 et avec la même qualité.
J'ai essayé tellement de façons mais cela a fonctionné pour moi comme un charme. ;)
Vous pouvez ajouter le paramètre -strict experimental 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 le l'explication de l'auteur original ici } _.