diff --git a/src/http/modules/ngx_http_flv_module.c b/src/http/modules/ngx_http_flv_module.c
index 7fa736d..dfe4299 100644
--- a/src/http/modules/ngx_http_flv_module.c
+++ b/src/http/modules/ngx_http_flv_module.c
@@ -64,7 +64,7 @@
     off_t                      start, len;
     ngx_fd_t                   fd;
     ngx_int_t                  rc;
-    ngx_uint_t                 level;
+    ngx_uint_t                 level, i;
     ngx_str_t                  path;
     ngx_err_t                  err;
     ngx_log_t                 *log;
@@ -163,6 +163,7 @@
 
     start = 0;
     len = ngx_file_size(&fi);
+    i = 1;
 
     if (r->args.len) {
         p = (u_char *) ngx_strstr(r->args.data, "start=");
@@ -176,7 +177,10 @@
                 start = 0;
             }
 
-            len -= start;
+            if (start) {
+                len = sizeof(ngx_flv_header) - 1 + len - start;
+                i = 0;
+            }
         }
     }
 
@@ -190,25 +194,27 @@
     clnf->log = r->pool->log;
 
     r->headers_out.status = NGX_HTTP_OK;
-    r->headers_out.content_length_n = sizeof(ngx_flv_header) - 1 + len;
+    r->headers_out.content_length_n = len;
     r->headers_out.last_modified_time = ngx_file_mtime(&fi);
 
     if (ngx_http_set_content_type(r) != NGX_OK) {
         return NGX_HTTP_INTERNAL_SERVER_ERROR;
     }
 
-    b = ngx_pcalloc(r->pool, sizeof(ngx_buf_t));
-    if (b == NULL) {
-        return NGX_HTTP_INTERNAL_SERVER_ERROR;
+    if (i == 0) {
+        b = ngx_pcalloc(r->pool, sizeof(ngx_buf_t));
+        if (b == NULL) {
+            return NGX_HTTP_INTERNAL_SERVER_ERROR;
+        }
+
+        b->pos = ngx_flv_header;
+        b->last = ngx_flv_header + sizeof(ngx_flv_header) - 1;
+        b->memory = 1;
+
+        out[0].buf = b;
+        out[0].next = &out[1];
     }
 
-    b->pos = ngx_flv_header;
-    b->last = ngx_flv_header + sizeof(ngx_flv_header) - 1;
-    b->memory = 1;
-
-    out[0].buf = b;
-    out[0].next = &out[1];
-
     b = ngx_pcalloc(r->pool, sizeof(ngx_buf_t));
     if (b == NULL) {
         return NGX_HTTP_INTERNAL_SERVER_ERROR;
@@ -239,7 +245,7 @@
     out[1].buf = b;
     out[1].next = NULL;
 
-    return ngx_http_output_filter(r, out);
+    return ngx_http_output_filter(r, &out[i]);
 }
 
 
