“编码器‘aac’是实验性的,但实验性编解码器未启用”
Posted
技术标签:
【中文标题】“编码器‘aac’是实验性的,但实验性编解码器未启用”【英文标题】:"The encoder 'aac' is experimental but experimental codecs are not enabled" 【发布时间】:2016-01-01 02:40:01 【问题描述】:使用FFMPEG
将flv
转换为mp4
转换时显示以下错误
[aac @ 0x2b4b640] 编码器'aac'是实验性的,但实验性编解码器未启用,如果你想使用它,添加'-strict -2'。
【问题讨论】:
如果您看到“实验性”消息,那么您的ffmpeg
已旧。 FFmpeg AAC 编码器不再是实验性的,因此您不再需要使用-strict experimental
/-strict -2
。请参阅FFmpeg Download 页面以获取 Linux、macOS 和 Windows 的构建链接。
在此评论中,Ubuntu 16.04 LTS 提供的版本 7:2.8.15-0ubuntu0.16.04.1 仍然会触发“实验性”错误。假设您只是使用 apt 包。
【参考方案1】:
您可以通过在打开编解码器之前将 codec-context 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。
【讨论】:
【参考方案2】:尝试以下命令:
ffmpeg -i Inputfile.flv -vcodec h264 -acodec aac -strict -2 Filename.mp4
您可以使用此命令将任何类型的视频文件转换为 x264 且质量相同的 mp4。
我尝试了很多方法,但这对我来说就像一种魅力。 ;)
【讨论】:
【参考方案3】:实际上在命令行中添加-strict -2
是不够的。添加-strict -2
的位置非常重要,不幸的是,错误消息中没有对此进行解释。应该就在最后一个参数之前,即如下:
ffmpeg -i infile -strict -2 outfile
【讨论】:
非常感谢,这些零字节文件(因为标志顺序不正确)让我感到困惑。 我正在将视频从 mp4 编码到 hls 并不断收到 aac/strict 2 错误消息。 freeseek 的答案是唯一有效的。 你救了我的文件/生命。该死的 ffmpeg 应该修复他们的参数 疯了,他们没有在日志中指出这一点。谢谢@freeseek,真的帮了我大忙。 “应该在最后一个参数之前”不正确。你可以毫无问题地做这样的事情ffmpeg -i infile -c:a aac -strict 2 -ab 192k outfile
。【参考方案4】:
就像消息说的那样,原生 ffmpeg AAC
音频编码器是实验性的,您需要在命令中添加 -strict -2
或 -strict experimental
使用它。但是,此编码器不再标记为实验性,因此最近的 ffmpeg 构建不需要使用此选项。
为了获得最佳效果,请改用libfdk_aac
。你需要用这个lib编译ffmpeg,见compilation guide。
要设置音频编码器,请使用-c:a libfdk_aac
。
【讨论】:
@SandeepNambiar "你需要用这个库编译 ffmpeg,见compilation guide。"此外,您应该接受这些答案之一;Unknown encoder 'libfdk_aac'
与您的问题所问的问题不同。
在提出这样的建议时,最好提一下编解码器不是 GPL(基本上这意味着不付费就不能使用它)。见trac.ffmpeg.org/wiki/Encode/AAC
@Mike Versteeg 在这种情况下,问题中没有任何内容表明提问者想要分发代码并且分发 AAC 内容没有许可费用。另外,这不是建议。见:vialicensing.com/licensing/aac-faq.aspx【参考方案5】:
您的问题会自行回答。
将-strict -2
添加到它。应该够了
【讨论】:
正如@freeseek 提到的那样,这还不够 - 将-strict -2
标志放在哪里非常重要。
我觉得这很明显,就像 freeseek 提到的,在输出文件名之前
如果这么明显,为什么要问原来的问题?以上是关于“编码器‘aac’是实验性的,但实验性编解码器未启用”的主要内容,如果未能解决你的问题,请参考以下文章