> 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
