diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c
index ff68f84e7bfe63486e8ff70d8e622c0f456d6ab7..72e93a40c8537924eb33457330eb96339a00bbbb 100644
--- a/libavcodec/aacenc.c
+++ b/libavcodec/aacenc.c
@@ -174,6 +174,10 @@ static av_cold int aac_encode_init(AVCodecContext *avctx)
         av_log(avctx, AV_LOG_ERROR, "Unsupported profile %d\n", avctx->profile);
         return -1;
     }
+    if (1024.0 * avctx->bit_rate / avctx->sample_rate > 6144 * avctx->channels) {
+        av_log(avctx, AV_LOG_ERROR, "Too many bits per frame requested\n");
+        return -1;
+    }
     s->samplerate_index = i;
 
     dsputil_init(&s->dsp, avctx);