使用 FFMPEG
将 flv
转换成 mp4
时,出现以下错误:
[aac @ 0x2b4b640] 编码器 'aac' 是实验性的,但未启用实验性编解码器。如果要使用它,请添加 '-strict -2'。
使用 FFMPEG
将 flv
转换成 mp4
时,出现以下错误:
[aac @ 0x2b4b640] 编码器 'aac' 是实验性的,但未启用实验性编解码器。如果要使用它,请添加 '-strict -2'。
实际上,仅仅在命令行中添加-strict -2是不够的。非常重要的是,-strict -2添加的位置,但遗憾的是错误信息没有说明这一点。应该将其放在最后一个参数之前,如下所示:
ffmpeg -i infile -strict -2 outfile
ffmpeg -i infile -c:a aac -strict 2 -ab 192k outfile
,而不会出现任何问题。 - YTZ正如消息所说,本地的FFmpeg AAC
音频编码器是实验性的,你需要在命令中添加-strict -2
或 -strict experimental
来使用它。然而,这个编码器已经不再标记为实验性的,所以最近的FFmpeg构建版本不需要使用此选项。
为了获得最佳结果,请改用libfdk_aac
。您需要使用此库来编译FFmpeg,请参见编译指南。
要设置音频编码器,请使用-c:a libfdk_aac
。
ffmpeg -i Inputfile.flv -vcodec h264 -acodec aac -strict -2 Filename.mp4
在打开编解码器之前,通过将编解码器上下文的 strict_std_complaince
变量设置为 -2,可以在您的C++代码中添加 -strict experimental。
AVCodecContext *c;
c->strict_std_compliance = -2;
/* open it */
ret = avcodec_open2(c, codec, NULL);
请查看原作者的解释。
这篇文章介绍了如何在自己的代码中启用FFmpeg实验性编解码器。你的问题已经自己回答了。
在其中添加-strict -2
。那应该就足够了。
-strict -2
标志的确切位置。 - coderMe
ffmpeg
已过时。FFmpeg AAC编码器不再是实验性的,因此您不需要再使用-strict experimental
/-strict -2
。请参见FFmpeg下载页面,获取Linux、macOS和Windows版本的链接。 - llogan