> 18 марта 2016 г., в 10:53, Anatoliy Korostelevm, NGENIX 
> <[email protected]> написал(а):
> 
> Все работает как и запланировано - если я шлю с клиента на nginx 
> Range-запрос, nginx и клиент получат необходимую часть данных, выравненных по 
> размеру slice. Однако, хотелось бы получать порцию необходимых данных. 
> использую не только Range-запросы, но и явно указывая в URI момент начала (и 
> возможно конца)  видео. Например, чтобы при запросе к nginx вида 
> http://mynginx.server/test.mp4?start=40 хотелось бы что nginx преобразовывал 
> start=40 в соответствующий Range-запрос к бэкенду и выкачивал только 
> необходимые данные. Я добавил в конфигурацию своего location параметр mp4 для 
> этого, однако, как выяснилось, mp4 не совместим с proxy_pass. Подскажите, 
> кто-то реализовывал на nginx что-то подобное, и если реализовал то как? Или 
> единственный путь, это писать данную возможность самому (на lua, ngscript, 
> своим модулем, etc)?

1. mp4-модуль - это контент-хендлер. Он умеет работать только с локальными 
файлами.
Модуль реализует протокол progressive download.
Progressive download - это костыль, необходимый только флешу для быстрой 
перемотки, т.к. флеш не умеет делать range-запросы.
Можно во флеш-плеере передавать range в аргументах (на стороне сервера это 
понимать и отдавать нужный фрагмент),
а потом на стороне плеера собирать файл.
Однако это потребует доработок плеера. Не уверен, что вам нужно это.

2. slice-модуль - это фильтр. Он работает уже после контент-хендлера (значение 
$slice_range может формироваться раньше).
С mp4 модулем он работать не может. :)
Однако передать range в аргументах все же можно.
Для этого нужно сформировать заголовок Range где-нибудь на REWRITE_PHASE.
Это можно сделать lua (про ngscript не скажу)


--
Regards,
Eugene Mychlo MYC-RIPE EAMYC-RIPN

_______________________________________________
nginx-ru mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить