MP4 (H264) migrating from lighttpd to nginx

Maxim Dounin mdounin at
Mon Jan 30 07:31:10 UTC 2012


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

More information about the nginx mailing list