diff --git a/avconv.c b/avconv.c
index 68e332997cb9c6af8b215a5d997d5537c3ba5bcb..5d4daba5cd6e6f5fc9d571780d2e4c8c1abb55b9 100644
--- a/avconv.c
+++ b/avconv.c
@@ -1380,7 +1380,8 @@ static int output_packet(InputStream *ist, const AVPacket *pkt)
 
         ist->last_dts = ist->next_dts;
 
-        if (avpkt.size && avpkt.size != pkt->size) {
+        if (avpkt.size && avpkt.size != pkt->size &&
+            !(ist->dec->capabilities & CODEC_CAP_SUBFRAMES)) {
             av_log(NULL, ist->showed_multi_packet_warning ? AV_LOG_VERBOSE : AV_LOG_WARNING,
                    "Multiple frames in a packet from stream %d\n", pkt->stream_index);
             ist->showed_multi_packet_warning = 1;