MP4 (H264) migrating from lighttpd to nginx

Michael Shadle mike503 at
Mon Jan 30 07:51:19 UTC 2012

I suggest using "qt-faststart" which is a simple command line tool which does this.

On Jan 29, 2012, at 11:31 PM, Maxim Dounin <mdounin at> wrote:

> Hello!
> On Mon, Jan 30, 2012 at 04:09:33AM +0100, Ondrej Jombik wrote:
>> It is great that MP4 module came out. So we decided to migrate our video
>> streaming servers to nginx. In fact those are our last non-nginx
>> webservers (not counting IIS).
>> However we have some troubles. In our Flash player, MP4 video starts
>> play only after it is completelly loaded. I thought there is problem
>> with player, so I tried open-source flowplayer and it was the same.
>> So I thought that there is problem with nginx HTTP response. I compared
>> it completelly to lighttpd response, and made them exactly same. I even
>> changed the nginx server name to "lighttpd" (source recompilation was
>> needed), added headers like "X-Mod-H264-Streaming", but still no luck.
>> When serving video through lighttpd, it starts play immediately.
>> When serving through nginx, it starts play only after it is fully
>> loaded.
>> However requests for partial files like video.mp4?start=32.33 works well
>> with nginx. I think there is problem with initial request (the one
>> without "start" parameter).
>> I'm stuck. Any ideas what else should be checked?
>> Any advice would be appreciated. Thanks.
> On initial request nginx returns original file, and if moov atom 
> with metadata goes after mdat (one with media data) you'll see 
> "video starts after loading" problem.  Recoding files to place 
> moov atom first will solve it.
> Maxim Dounin
> _______________________________________________
> nginx mailing list
> nginx at

More information about the nginx mailing list