developer tip

"인코더 'aac'는 실험적이지만 실험적 코덱은 활성화되지 않았습니다."

optionbox 2020. 12. 3. 07:47
반응형

"인코더 'aac'는 실험적이지만 실험적 코덱은 활성화되지 않았습니다."


그것을 사용하여 변환 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.

실제로 명령 줄 에 추가 하는 것만 으로 충분 하지 않습니다 -strict -2. -strict -2이 추가 되는 위치는 매우 중요 하며 안타깝게도 오류 메시지에 설명되어 있지 않습니다. 다음과 같이 마지막 인수 바로 앞에 있어야합니다.

ffmpeg -i infile -strict -2 outfile

메시지에서 알 수 있듯이 기본 ffmpeg AAC오디오 인코더는 실험적이므로 추가 -strict -2하거나 -strict experimental명령에 사용해야합니다. 그러나이 인코더는 더 이상 실험용으로 표시되지 않으므로 최근 ffmpeg 빌드에서는이 옵션을 사용할 필요가 없습니다.

최상의 결과를 얻으려면 libfdk_aac대신 사용하십시오. 이 lib로 ffmpeg를 컴파일해야합니다 . 컴파일 가이드를 참조하세요 .

오디오 인코더를 설정하려면 -c:a libfdk_aac.


다음 명령을 시도하십시오.

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

이 명령을 사용하여 모든 유형의 비디오 파일을 x264 및 동일한 품질의 mp4로 변환 할 수 있습니다.

나는 많은 방법을 시도했지만 이것은 나를 위해 매력처럼 작동했습니다. ;)


코덱 을 열기 전에 codec-context 변수를 -2 로 설정 하여 C ++ 코드에 -strict 실험을 추가 할 수 있습니다 strict_std_complaince.

AVCodecContext *c;
c->strict_std_compliance = -2;

/* open it */
ret = avcodec_open2(c, codec, NULL);

참고 항목 여기에 원래 저자의 설명 .


귀하의 질문이 저절로 대답합니다. -strict -2그것에 추가 하십시오. 그 정도면 충분합니다

참고 URL : https://stackoverflow.com/questions/32931685/the-encoder-aac-is-experimental-but-experimental-codecs-are-not-enabled

반응형