diff --git a/libavformat/mxf.c b/libavformat/mxf.c
index 2d673916ca243744c3793a728ea8fc9ff83fbd48..d0fb2f0d94012f3d482c3dbb57cc8358a0522f29 100644
--- a/libavformat/mxf.c
+++ b/libavformat/mxf.c
@@ -214,7 +214,8 @@ static int mxf_get_stream_index(AVFormatContext *s, KLVPacket *klv)
         if (!memcmp(klv->key + sizeof(mxf_essence_element_key), track->track_number, sizeof(track->track_number)))
             return i;
     }
-    return -1;
+    /* return 0 if only one stream, for OP Atom files with 0 as track number */
+    return s->nb_streams == 1 ? 0 : -1;
 }
 
 static int mxf_read_packet(AVFormatContext *s, AVPacket *pkt)