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


73

当使用它flv进行mp4转换时FFMPEG,显示以下错误

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

1
如果您看到“实验性”消息,则说明您ffmpeg已经老了。FFmpeg AAC编码器不再是实验性的,因此您不再需要使用-strict experimental/ -strict -2。请参阅FFmpeg下载页面,以获取指向Linux,macOS和Windows的内部版本的链接。
llogan

2
截至本文发表时,Ubuntu 16.04 LTS正在提供版本7:2.8.15-0ubuntu0.16.04.1,该版本仍会触发“实验”错误。假设您只是在使用apt软件包。
塞巴斯蒂安·伊尔加

Answers:


173

实际上,仅添加到命令行是不够的-strict -2-strict -2添加的位置非常重要,很遗憾,错误消息中没有对此进行解释。它应该在最后一个参数之前,即如下所示:

ffmpeg -i infile -strict -2 outfile

9
非常感谢,这些零字节文件(由于错误的标志顺序)使我感到困惑。
Brian FitzGerald

我将视频从mp4编码为hls,并不断收到aac / strict 2错误消息。freeseek的答案是唯一可行的答案。
Kalob Taulien

3
您保存了我的文件/生活。Goddamn ffmpeg应该修正他们的参数
充满活力的

2
疯狂的是他们没有在日志中指出这一点。谢谢@freeseek,真的帮助了我。
Mitya

“应该在最后一个参数之前”不正确。您可以这样做,ffmpeg -i infile -c:a aac -strict 2 -ab 192k outfile而不会出现任何问题。
YTZ

9

就像消息说的那样,本机ffmpegAAC音频编码器是实验性的,您需要添加-strict -2-strict experimental在命令中使用它。但是,此编码器不再标记为实验性的,因此最新的ffmpeg构建不需要使用此选项。

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

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


1
@SandeepNambiar“您需要使用此lib编译ffmpeg,请参见编译指南。” 另外,您应该接受以下答案之一:与Unknown encoder 'libfdk_aac'您的问题所提出的问题不同。
llogan 2015年

提出这样的建议时,最好提一下编解码器不是GPL(基本上,这意味着您必须付出代价才能使用它)。参见trac.ffmpeg.org/wiki/Encode/AAC
Mike Versteeg

2
@Mike Versteeg在这种情况下,问题中没有任何内容表明请求发件人想要分发代码,并且分发AAC内容无需支付许可费用。另外,这不是一个建议。请参阅:vialicensing.com/licensing/aac-faq.aspx
aergistal

5

尝试以下命令:

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

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

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



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.