diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c
index b9429518a569a51c50e6a3bda609bebf18fbb754..a459bc9c268e4bb16ed875cb427ccca93a0f271e 100644
--- a/ffmpeg_opt.c
+++ b/ffmpeg_opt.c
@@ -1509,9 +1509,6 @@ static int read_ffserver_streams(OptionsContext *o, AVFormatContext *s, const ch
             choose_pixel_fmt(st, codec, st->codec->pix_fmt);
     }
 
-    /* ffserver seeking with date=... needs a date reference */
-    err = parse_option(o, "metadata", "creation_time=now", options);
-
     avformat_close_input(&ic);
     return err;
 }
@@ -1639,6 +1636,16 @@ static int open_output_file(OptionsContext *o, const char *filename)
         }
     }
 
+    /* ffserver seeking with date=... needs a date reference */
+    if (!strcmp(file_oformat->name, "ffm") &&
+        av_strstart(filename, "http:", NULL)) {
+        int err = parse_option(o, "metadata", "creation_time=now", options);
+        if (err < 0) {
+            print_error(filename, err);
+            exit_program(1);
+        }
+    }
+
     if (!strcmp(file_oformat->name, "ffm") &&
         av_strstart(filename, "http:", NULL)) {
         int j;