diff --git a/libavformat/utils.c b/libavformat/utils.c
index b903337d34776a877a3f973821538bb5334cca0f..000ab9050e08da0b94d232cfeef30f192456efdf 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -2501,6 +2501,11 @@ int av_write_header(AVFormatContext *s)
     AVStream *st;
 
     // some sanity checks
+    if (s->nb_streams == 0) {
+        av_log(s, AV_LOG_ERROR, "no streams\n");
+        return -1;
+    }
+
     for(i=0;i<s->nb_streams;i++) {
         st = s->streams[i];