Welcome! Log In Create A New Profile

Advanced

Re: Модуль ngx_http_mp4_module не переставляет moov-атом

Maxim Dounin
September 30, 2014 10:58AM
Hello!

On Tue, Sep 30, 2014 at 06:37:00PM +0400, Алексей Щуров wrote:

> После замены стороннего модуля nginx_mod_h264_streaming на стандартный
> with-http_mp4_module обнаружилась проблема с раздачей mp4 видео файлов для
> псевдостриминга - сторонний модуль делал перестановку moov-атома в начало
> файла, стандартный отдает файл в неизменном виде (проверяем с помощью
> qtfaststart -l file.mp4).
> В документации сказано что стандартный модуль должен это делать с оговоркой
> что это создает дополнительную нагрузку:
> > До начала воспроизведения плееру необходимо прочитать метаданные. Для
> этого он отсылает специальный запрос с аргументом start=0. Многие
> кодирующие программы добавляют метаданные в конец файла. Это неоптимально
> для псевдо-стриминга, поскольку плееру потребуется загрузить файл целиком
> прежде чем начать воспроизведение. Если метаданные находятся в начале
> файла, nginx’у достаточно начать отправлять в ответ содержимое файла. Если
> же метаданные находятся в конце файла, потребуется прочитать весь файл и
> подготовить новый поток, в котором метаданные предшествуют медийным данным.
> Это требует дополнительного процессорного времени, памяти и дискового
> ввода/вывода, поэтому лучше заранее подготовить исходный файл для
> псевдо-стриминга, нежели делать это для каждого запроса.
> В нашем хранилище видео лежит с moov-атомом в конце файла и мы понимаем что
> предварительная подготовка решит проблему, но при нашем объеме видео
> подготовка и проверка займет очень много времени.
> Хотелось бы понимать почему модуль ngx_http_mp4_module не выполняет функцию
> заявленную в документации и исходя из этого принимать решение о дальнейших
> действиях.

Moov-атом переставляется в том и только в том случае, если в
запросе присутствует аргумент start. Если аргумента start нет, то
метаданные не переставляются.

Соответственно, если необходимо переставлять moov-атом, то нужно
убедиться, что исходный запрос плеер присылает со start=0.

Если, наоборот, переставлять moov-атом не надо (он заранее
правильно помещён в начало файла), то можно сэкономить ресурсы на
проверке "правильно ли размещён moov-атом", обеспечив отсутствие
аргумента start=0 в исходной запросе плеера.

--
Maxim Dounin
http://nginx.org/

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Модуль ngx_http_mp4_module не переставляет moov-атом

vitux September 30, 2014 10:38AM

Re: Модуль ngx_http_mp4_module не переставляет moov-атом

Андрей Василишин September 30, 2014 10:54AM

Re: Модуль ngx_http_mp4_module не переставляет moov-атом

Maxim Dounin September 30, 2014 10:58AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 198
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready