Интеграция с IPTV middleware¶
Важно
Бета-версия 2.1. Описанное здесь есть только в бета-версии 2.1: она ставится из бета-репозитория и только с лицензией, в стабильной версии 2.0.2 и в демоверсии этого нет. Бета-версия поставляется без гарантий, поддержка — по возможности (Программа бета-тестирования).
С версии 2.1.1.516 узел понимает схему адресов и авторизации по токену, с
которой IPTV middleware и плееры уже работают с потоковыми серверами: Ministra (Stalker),
Microimpuls Smarty, TVIP TMS и плееры с архивом catchup="flussonic". Такой
middleware можно направить на Perfect Streamer, не меняя в нём шаблоны адресов каналов:
middleware выдаёт абоненту ссылку с токеном, а узел проверяет токен у middleware.
Включаются две вещи: формы адресов на потоковом HTTP-сервере и сервер проверки токенов (Сервер проверки токенов). Обе настраиваются в консоли, а также в файле настроек (Изменение параметра) и через HTTP API (Управление через HTTP API).
Адреса каналов¶
Переключатель «Flussonic-совместимые URL» в разделе «Middleware» экрана «Потоковый
HTTP-сервер» (Потоковый HTTP-сервер; ключ flussonic-urls в /config/http-server),
по умолчанию выключен. Когда он включён, каждый поток с
заданным «Именем потока в URL» (URL и авторизация) доступен и по этим адресам, рядом
с прежними:
Адрес |
Что отдаёт |
|---|---|
|
прямой эфир HLS |
|
прямой эфир DASH |
|
прямой эфир MPEG-TS; у потока должна быть включена раздача по HTTP |
|
архив DVR (DVR: архив потока) с момента |
|
timeshift: архив с прошлого момента (или |
Полный адрес — http://<узел>:<порт>/<имя>/index.m3u8?token=<токен>. Каждый запрос
должен нести токен (не длиннее 512 символов). Имя адаптивного набора
(Адаптивные наборы) даёт его адаптивный плейлист. Если архив или timeshift
запрошен с момента, когда запись ещё не шла, master-плейлист отвечает 200, а
плейлист варианта (media) — 404.
Именами hls, dash, llhls, http, rsv и именами из 17 символов вида
h и 16 шестнадцатеричных цифр поток в этих адресах называть нельзя. В редакторе
потока, на вкладке «OTT», под «Именем потока в URL» консоль показывает эти адреса с
именем потока, а для такого имени — предупреждение (Настроить поток).
Сервер проверки токенов¶
Токен проверяет middleware. Его адрес задаётся сервером на вкладке «Внешние (биллинг)»
экрана «Пользователи / Логины» (Пользователи / Логины; запись в /config/cs/server).
В поле «Коннектор» выбирается один из серверов токенов:
ministra— «Ministra / Stalker (токен)»Ministra (Stalker). Адрес —
http://<портал>/stalker_portal/server/api/chk_flussonic_tmp_link.php. В Ministra у канала задаётся тип временной ссылкиFlussonic, тип архиваFlussonic DVRи адрес архиваhttp://<узел>:<порт>/<имя>/index.m3u8.smarty— «Smarty (токен)»Microimpuls Smarty. Адрес —
http://<smarty>/tvmiddleware/api/streamservice/token/check/. Маска потока —/$prefix/index.m3u8?token=$token, маска архива —/$prefix/index-$flpbt-$flpdur.m3u8?token=$token.flussonic— «Flussonic auth backend (токен)»Любой другой middleware (например, TVIP TMS), который проверяет токены по тому же протоколу. Адрес — его адрес проверки.
Сервер токенов проверяет только токены этих адресов; вход по логину и паролю он не
обслуживает. Поэтому у него в консоли задаются только «Имя», «URL», «Таймаут (с)» и раздел
«Сервер токенов», а пароль, учёт сессий, префикс и суффикс логина, трассировка и разбор
ответа скрыты. Ключ password узел требует, но таким серверам не передаёт: консоль
заполняет его сама. Если сервер токенов переводят на «Универсальный (HTTP)», консоль
просит ввести настоящий пароль. При записи через API password задаётся любым
непустым значением.
Доступ и повторные проверки¶
Без токена — отказ. Запрос без токена, с отклонённым токеном или когда сервер проверки недоступен получает ответ 403. Если сервер не ответил или ответил ошибкой, спрашивается следующий; отказ (401 или 403) — окончательный.
Middleware недоступен. С флажком «Пускать, пока бэкенд недоступен» (
auth-fail-open=true) новые зрители впускаются, пока недоступны все серверы проверки, и проверяются снова в течение 30 с. Отказ middleware этот ключ не отменяет.Повторная проверка. Идущая сессия проверяется снова с периодом, который задаёт middleware (заголовок ответа
X-AuthDuration, по умолчанию 180 с), или с периодом, заданным в поле «Повторная проверка»: «По профилю», «Никогда» или «Каждые N секунд» (ключauth-recheck:-1,0или число секунд до 86400). Отказ при повторной проверке останавливает просмотр этого зрителя. Ссылки Ministra повторно не проверяются: они живут несколько секунд.Сессии на пользователя. Заголовки ответа
X-Max-SessionsиX-UserIdограничивают число сессий одного пользователя по HLS, DASH и MPEG-TS вместе. При достижении предела закрывается самая давно неактивная сессия; новое соединение MPEG-TS в этом случае не принимается.Токен не виден. Токен не пишется в журнал и не показывается в консоли: на экране «Клиенты» (Клиенты) сессия видна как
tok:<16 шестнадцатеричных цифр>.Резерв OTT. Сессии с токеном в резервировании OTT (Резерв OTT/DVR) не участвуют.
Программу передач Ministra загружает из выгрузки XMLTV EPG-сервера (/xmltv,
Выдача XMLTV).
Ограничения¶
Timeshift — только HLS (TS) одного потока.
Превью, плейлисты только видео и отдельных дорожек (
video.m3u8,tracks-*) и архив в MPEG-TS не отдаются: такие адреса отвечают 404.Интеграция проверена на эмуляторах этих middleware, на рабочих системах — ещё нет.