HLS / HTTP, RTSP и RTMP

Транспорты этой группы работают по схеме «узел — клиент»: соединение всегда устанавливает сам узел, а не встречная сторона. Поэтому у них нет ни порта прослушивания, ни выбора режима — вместо адреса и порта задаётся полный URL. Приём в MPEG-TS и ограничения каждого источника описаны в Прочие входы и выходы и Публикация и приём RTMP.

HLS / HTTP

Вход забирает MPEG-TS по HTTP: либо разбирает плейлист HLS и скачивает сегменты, либо читает непрерывный поток из ответа сервера (Вход HLS / HTTP). Доступен только SPTS-потокам; выхода этого типа нет — раздача по HLS настраивается на вкладке «OTT» самого потока (OTT и DVR).

Вход

Поле

Назначение

Значения

URI

Адрес плейлиста или потока. Принимаются только схемы http:// и https://; адрес с другой схемой окно не сохранит. Обязательное поле.

http://… или https://…

Login, Password

Учётные данные HTTP. Узел отправляет их не сразу: сначала выполняется обычный запрос, и только на ответ 401 повторяется запрос с той схемой авторизации, которую назвал сервер. Данные прикладываются и к плейлисту, и к каждому сегменту. Пара работает целиком: логин с пустым паролем не используется.

по умолчанию пусто

Mode

Как трактовать ответ сервера. Auto-detect — по типу содержимого: тип плейлиста означает разбор HLS, любой другой — чтение непрерывного MPEG-TS. HLS — всегда разбирать как плейлист (для серверов, отдающих плейлист с неверным типом содержимого). Plain HTTP / MPEG-TS — всегда читать поток, не разбирая.

Auto-detect (по умолчанию), HLS, Plain HTTP / MPEG-TS

Client timeout (s)

Таймаут одной сетевой операции — подключения, отправки запроса и чтения ответа, и для плейлиста, и для каждого сегмента. Меньшее значение ускоряет переход на резервный вход, большее — терпимее к далёкому или медленному источнику.

от 1, по умолчанию 10

Adaptive stream id

Какой вариант брать из мастер-плейлиста — по порядку перечисления в плейлисте, считая с единицы, а не по битрейту. Значение больше числа вариантов приводит к выбору последнего. Для обычного (не мастер) плейлиста поле не действует.

от 1, по умолчанию 1

Chunks preloading

Сколько сегментов скачивается одновременно. Единица — строго последовательное скачивание; большее значение скрывает задержку канала до источника и помогает нагнать отставание, но открывает столько же параллельных соединений.

1–10, по умолчанию 1

User-Agent

Значение заголовка User-Agent во всех запросах. Пустое поле — заголовок не отправляется вовсе.

по умолчанию пусто

Cookies

Готовое значение заголовка Cookie, целиком, как его ожидает сервер. Обмена cookie нет: то, что устанавливает сервер, узел не запоминает и не возвращает.

по умолчанию пусто

Disable URL encode

Отправлять путь и параметры запроса в раскодированном виде. Нужно для серверов, неверно обрабатывающих процентное кодирование в ссылках плейлиста; для корректного сервера включение может, наоборот, испортить ссылку.

по умолчанию выключено

Trace

Подробная запись в журнал: каждый запрос и его результат, перенаправления, тело плейлиста, очередь и размер сегментов. Диагностическая настройка — в обычной работе выключена.

по умолчанию выключено

Особенности приёма, о которых стоит знать при диагностике: сегменты должны быть MPEG-TS (плейлист с сегментами fMP4/CMAF не принимается); узел проходит не более трёх перенаправлений подряд; сертификат сервера при https не проверяется.

RTSP

Вход открывает RTSP-сессию, читает элементарные потоки и ремультиплексирует их в MPEG-TS (Вход RTSP). Только для SPTS-потоков; выхода этого типа нет.

Вход

Поле

Назначение

Значения

URI (rtsp://…)

Полный адрес RTSP-сессии. Обязательное поле. В отличие от входа HLS схема здесь не проверяется при сохранении — ошибка в ней выяснится при запуске входа.

rtsp://…

Login, Password

Учётные данные RTSP. Узел подставляет их в адрес сессии, поэтому дальше работает та схема авторизации, которую требует камера. Логин используется и с пустым паролем. Если адрес уже содержит учётные данные, значения этих полей их заменяют.

по умолчанию пусто

Transport

Транспорт RTP внутри сессии. UDP — отдельные датаграммы: наименьшая задержка, чувствительность к потерям. TCP — RTP внутри управляющего соединения: проходит NAT и межсетевые экраны. HTTP — туннель RTSP поверх HTTP для прохода через прокси.

UDP (по умолчанию), TCP, HTTP

Client timeout (s)

Предельное время одной сетевой операции сессии. По его истечении молчащий источник считается отказавшим, и поток переключается или переподключается.

от 1, по умолчанию 10

User-Agent, Cookies

Значения одноимённых полей запроса — для устройств, отвечающих только известным клиентам, и для сессий, привязанных к cookie.

по умолчанию пусто

Trace

Запись смены состояний сессии в журнал потока.

по умолчанию выключено

RTMP

Узел работает с RTMP и RTMPS только как клиент: вход забирает поток по URL, выход публикует поток на внешнюю точку приёма. Приём входящих публикаций не поддерживается (Публикация и приём RTMP). Только для SPTS-потоков.

Вход

Поле

Назначение

Значения

URL (rtmp(s)://…)

Адрес источника. Обязательное поле.

rtmp://… или rtmps://…

Bind interface

Локальный интерфейс исходящего соединения; выбирается из списка интерфейсов узла.

по умолчанию любой

Client timeout (s)

Таймаут подключения и чтения.

1–120, по умолчанию 10

Verify TLS certificate

Для rtmps:// — проверять сертификат сервера. По умолчанию выключено, поэтому соединение устанавливается и с самоподписанным сертификатом.

по умолчанию выключено

Trace

Запись смены состояний подключения RTMP в журнал потока.

по умолчанию выключено

Выход

Те же поля, что у входа, и дополнительно:

Поле

Назначение

Значения

Allow HEVC (Enhanced RTMP)

Разрешить публикацию HEVC через расширение Enhanced RTMP. Выключение не переводит поток в H.264: публикуется только источник H.264, а источник HEVC при выключенной настройке не публикуется вовсе — причина видна в статистике выхода.

по умолчанию включено

Публикуется одна программа: одно видео и не более одной звуковой дорожки AAC. Отбирать дорожки вручную не требуется — выход сам берёт первое подходящее видео и первую дорожку AAC, а остальные отбрасывает и перечисляет отброшенное в статистике. Публикация не выполняется только тогда, когда подходящего видео нет вовсе. Если ограничить нужно сам поток, PID-фильтры задаются на вкладке «MPEG-TS PID» окна входа и действуют на весь поток целиком, со всеми его выходами (Фильтрация MPEG-TS).