diff --git a/libavformat/file.c b/libavformat/file.c
index 8683c1beddf4f01b727681148983a3fa4acd9d47..27ce4de6eb6aeadfa926fd6398025025dc35f87b 100644
--- a/libavformat/file.c
+++ b/libavformat/file.c
@@ -82,8 +82,13 @@ static int file_get_handle(URLContext *h)
 
 static int file_check(URLContext *h, int mask)
 {
+    const char *filename = h->filename;
     struct stat st;
-    int ret = stat(h->filename, &st);
+    int ret;
+
+    av_strstart(filename, "file:", &filename);
+
+    ret = stat(filename, &st);
     if (ret < 0)
         return AVERROR(errno);