MP4 (H264) migrating from lighttpd to nginx

Ondrej Jombik jombik at platon.org
Mon Jan 30 07:08:13 UTC 2012


Thanks B.R., you are exactly right, after appending "?start=0" video
starts to play immediatelly.

I also discovered that our MP4 files are encoded with index at the end
of file. lighttpd was silently moving this index (moov) to the
beginning.

That raises question for some nginx performance guru:

What is better: recode all the MP4 files (thousands of thousands) and
move index to the beginning or simply use "?start=0" parameter?

I feel that recoding may save us some memory during future request
processing, because with "?start=0" nginx must at least see the end of
file and fetch the index.

Any opinion would be welcome. I have no problem to recode/reindex milion
files, but it has to have some meaning first ;-)

Thanks

Ondrej

On Mon, 30 Jan 2012, B.R. wrote:

> I am no expert in streaming, but I read from the
> ngx_http_mp4_module<http://nginx.org/en/docs/http/ngx_http_mp4_module.html>page
> a special request of 'start=0' would transfer metadata.
> Maybe without it, the file would simply be considered as a normal file and
> then served completely before being able to be read ?
>
> My 2 cents...
> ---
> *B. R.*
>
>
> On Sun, Jan 29, 2012 at 22:09, Ondrej Jombik <jombik at platon.org> 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.
>>
>> Ondrej
>>
>> --
>> Ondrej JOMBIK
>> Platon Technologies s.r.o., Hlavna 3, Sala SK-92701
>> +421 903 PLATON - info at platon.org - http://platon.org
>>
>>
>>
>> ______________________________**_________________
>> nginx mailing list
>> nginx at nginx.org
>> http://mailman.nginx.org/**mailman/listinfo/nginx<http://mailman.nginx.org/mailman/listinfo/nginx>
>>
>

--
Ondrej JOMBIK
Platon Technologies s.r.o., Hlavna 3, Sala SK-92701
+421 903 PLATON - info at platon.org - http://platon.org





More information about the nginx mailing list