ffmpeg <The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.> 에러 해결

소은비·2021년 11월 14일
1
post-thumbnail

1. 개요

ffmpeg를 이용하여 원본영상에 로고를 추가하는 command(이전포스팅 참고)를 사용하던 코드에서 아래와 같은 에러가 발생하였습니다.

The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.

이 문제를 해결한 방법을 기록해보려고 합니다.

2. 에러원인

해당 command가 포함된 python 코드가 기존 데스크탑 환경에서는 문제없이 잘 작동하였으나, 또다른 서버에 배포하는 과정에서 위와 같은 에러가 발생하였습니다.

이러한 상황을 보았을 때, 아마도 ffmpeg의 버전 관련 문제가 원인인 것으로 추정됩니다.

3. 문제해결

에러문구에 나와있듯이 ffmpeg command에 아래와 같은 옵션을 추가해주면 간단하게 해결 가능합니다.

-strict -2

이때 주의점은 해당 옵션의 위치입니다. 해당 옵션을 마지막 argument보다 앞에 추가해주어야 합니다.

예를 들어 영상에 로고를 추가하는 아래와 같은 command에서

ffmpeg -y -i video.mp4 -i logo.png -filter_complex "overlay=10:10" OUT_1.mp4

위와 같은 에러가 발생하였을 때, 문제해결을 위한 옵션을 추가한 command는 아래와 같습니다.

ffmpeg -y -i video.mp4 -i logo.png -filter_complex "overlay=10:10" -strict -2 OUT_1.mp4

4. 마치며

다행히 생각보다 간단하게 해결되는 문제였지만, ffmpeg 셋팅환경에 따라 발생할 수 있는 에러라서 배포과정 중에 해당 에러를 마주쳤을때 살짝 당황했습니다.

아무튼 잘 해결되어 다행입니다.

Reference

https://ostack.cn/?qa=788399/

profile
개발자!

2개의 댓글

저도 같은 문제로 고생하고 있었는데,, 감사합니다 덕분에 해결했어요!

1개의 답글