“编码器'aac'是实验性的,但实验编解码器未启用”

时间:2015-10-04 08:49:09

标签: ffmpeg

使用flvmp4转换为FFMPEG转换时,显示以下错误

[aac @ 0x2b4b640] The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.

5 个答案:

答案 0 :(得分:142)

实际上,将-strict -2添加到命令行是不够 。添加ffmpeg -i infile -strict -2 outfile 的位置非常重要,遗憾的是,错误消息中未对此进行说明。它应该在最后一个参数之前,即如下:

{{1}}

答案 1 :(得分:8)

与消息中说的一样,原生ffmpeg AAC音频编码器是实验性的,您需要在命令中添加-strict -2-strict experimental才能使用它。但是,此编码器不再标记为实验,因此最近的ffmpeg构建不需要使用此选项。

为获得最佳效果,请改用libfdk_aac。您需要使用此lib编译ffmpeg,请参阅compilation guide

要设置音频编码器,请使用-c:a libfdk_aac

答案 2 :(得分:2)

尝试以下命令:

ffmpeg -i Inputfile.flv -vcodec h264 -acodec aac -strict -2 Filename.mp4

您可以使用此命令将任何类型的视频文件转换为带有x264且质量相同的mp4。

我尝试了很多方法,但这对我来说就像一个魅力。 ;)

答案 3 :(得分:0)

您可以通过在打开编解码器之前将编解码器上下文strict_std_complaince变量设置为-2,在 C ++ 代码中添加-strict实验。

AVCodecContext *c;
c->strict_std_compliance = -2;

/* open it */
ret = avcodec_open2(c, codec, NULL);

请参见original author's explanation here

答案 4 :(得分:-7)

你的问题回答了自己。 添加-strict -2。那应该够了