编码器‘ aac’是实验性的,但是实验性的解码器没有启用

在使用 FFMPEGflv转换为 mp4时,出现以下错误

[ aac@0x2b4b640]编码器“ aac”是实验性的,但是实验性的编解码器没有启用,如果你想使用它,可以加上“-strict-2”。

35860 次浏览

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

为了得到最好的结果,您需要使用这个库来编译 ffmpeg,请参阅 编写指南

使用 -c:a libfdk_aac设置音频编码器。

你的问题不言自明。 把 -strict -2加进去,应该够了

实际上,将 -strict -2添加到命令行不是 够了。在哪里添加 -strict -2非常重要,不幸的是,这在错误消息中没有解释。它应该就在最后一个论点之前,也就是说,如下所示:

ffmpeg -i infile -strict -2 outfile

试试以下命令:

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

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

我已经尝试了很多方法,但是这个方法对我来说非常有效

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

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


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

看看 原作者的解释