diff --git a/ffserver.c b/ffserver.c
index 92d7821cb1cf3b0099a44340a27ce0c4730801d8..de447288a47779b8aec42f75d8170194676d9516 100644
--- a/ffserver.c
+++ b/ffserver.c
@@ -2173,6 +2173,9 @@ static int http_prepare_data(HTTPContext *c)
                         pkt.pts = av_rescale_q(pkt.pts,
                                                c->fmt_in->streams[source_index]->time_base,
                                                ctx->streams[pkt.stream_index]->time_base);
+                    pkt.duration = av_rescale_q(pkt.duration,
+                                                c->fmt_in->streams[source_index]->time_base,
+                                                ctx->streams[pkt.stream_index]->time_base);
                     if (av_write_frame(ctx, &pkt) < 0) {
                         http_log("Error writing frame to output\n");
                         c->state = HTTPSTATE_SEND_DATA_TRAILER;