Возможность nginx HLS vod для остановки и отслеживания потоков
Мне нужно иметь возможность транслировать VOD, но видео будет отслеживаться в минуту, поэтому мне нужно постоянно хранить информацию о том, сколько минут у пользователя, и когда он тратит минуты, мне нужно прекратить его поток.
Я реализовал это в Wowza, теперь я пытаюсь найти способ сделать это в nginx. Самая большая проблема в том, что я не знаю, отправляет ли nginx информацию о запрошенном фрагменте видео в мой PHP (или любой другой скрипт), где я могу решить, разрешить или нет текущий запрос.
если кто-то может сказать мне, возможно ли вообще, и если да, то указать мне правильное направление.
1 ответ
Можно настроить потоковую передачу HLS с возможностью vod, используя nginx-rtmp-модуль с открытым исходным кодом.
Модуль Rtmp имеет крючки для уведомлений.
Например:
on_play
Устанавливает обратный вызов воспроизведения HTTP. Каждый раз, когда клиент выдает команду воспроизведения, HTTP-запрос выдается асинхронно, и обработка команды приостанавливается до тех пор, пока он не вернет код результата. HTTP код результата затем анализируется.
- Код HTTP 2xx продолжает сеанс RTMP
- HTTP 3xx перенаправляет RTMP в другой поток, имя которого взято из заголовка ответа Location HTTP. Если новое имя потока запускается с помощью rtmp://, вместо этого создается удаленное реле. Ретрансляторы требуют, чтобы вместо имени домена был указан IP-адрес, и они работают только с версиями nginx больше 1.3.10. Смотрите также notify_relay_redirect.
- В противном случае соединение RTMP обрывается
У Nginx также есть коммерческое предложение. Последнее, что я слышал, это было $1500/ год за место. По этой цене он должен делать то, что вам нужно, но я не знаком с этим.