While converting flv
to mp4
conversion using FFMPEG
it's showing following error
[aac @ 0x2b4b640] The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.
While converting flv
to mp4
conversion using FFMPEG
it's showing following error
[aac @ 0x2b4b640] The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.
Actually it is not enough to add -strict -2
to the command line. It is very important where the -strict -2
is added and unfortunately this is not explained in the error message. It should be just before the last argument, that is, as follows:
ffmpeg -i infile -strict -2 outfile
Like the message says, the native ffmpeg AAC
audio encoder is experimental and you need to add -strict -2
or -strict experimental
to your command use it. However, this encoder is no longer marked as experimental, so recent ffmpeg builds do not need to use this option.
For the best results use libfdk_aac
instead. You need to compile ffmpeg with this lib, see the compilation guide.
To set the audio encoder use -c:a libfdk_aac
.
Try following command :
ffmpeg -i Inputfile.flv -vcodec h264 -acodec aac -strict -2 Filename.mp4
You can use this command to convert any type of video file into mp4 with x264 and with same quality.
I have tried so many ways but this worked for me like a charm. ;)
You can add the -strict experimental in your C++ code by setting the codec-context strict_std_complaince
variable to -2 before opening the codec.
AVCodecContext *c;
c->strict_std_compliance = -2;
/* open it */
ret = avcodec_open2(c, codec, NULL);
See the original author's explanation here.
Your question answers itself.
Add -strict -2
to it. That should be enough