diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
index 39df35c3d944ddda7e2b24ee3cf13a3a7d8e1fad..b19482f563eb2b1343d6d28064574f0d47ea8f7c 100644
--- a/libavformat/flvdec.c
+++ b/libavformat/flvdec.c
@@ -257,6 +257,10 @@ static int flv_read_header(AVFormatContext *s,
         av_log(s, AV_LOG_WARNING, "Broken FLV file, which says no streams present, this might fail\n");
     }
 
+    if((flags & (FLV_HEADER_FLAG_HASVIDEO|FLV_HEADER_FLAG_HASAUDIO))
+             != (FLV_HEADER_FLAG_HASVIDEO|FLV_HEADER_FLAG_HASAUDIO))
+        s->ctx_flags |= AVFMTCTX_NOHEADER;
+
     if(flags & FLV_HEADER_FLAG_HASVIDEO){
         if(!create_stream(s, 0))
             return AVERROR(ENOMEM);