使用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.
答案 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);
答案 4 :(得分:-7)
你的问题回答了自己。
添加-strict -2
。那应该够了