Прочие входы и выходы

Подробности настройки входов и выходов, кратко перечисленных в обзоре протоколов (Другие входы и выходы): приём с RTSP-источников и по HLS/HTTP, работа с файлами и устройствами, именованные каналы и мост к внешним приложениям. Названия полей — как в интерфейсе.

Вход RTSP

Приём видеопотока с RTSP-источников — IP-камер и RTSP-серверов. Узел открывает RTSP-сессию, читает элементарные потоки и ремультиплексирует их во встроенный MPEG-TS; дальше поток проходит обычный конвейер SPTS. Если в источнике нет звуковых дорожек, добавляется тихая дорожка MPEG-1 Layer II — конвейеру нужна хотя бы одна звуковая дорожка. RTSP — однопрограммный источник, доступен только SPTS-потокам.

Настройки:

  • URI (rtsp://…) — полный адрес сессии; Login и Password — учётные данные, если сервер требует авторизацию;

  • Transport — транспорт RTP внутри RTSP: UDP (по умолчанию; низкая задержка, чувствительность к потерям), TCP (проходит NAT и межсетевые экраны) или HTTP-туннель (для прохода через HTTP-прокси);

  • User-Agent и Cookies (дополнительные настройки) — для серверов с нестандартной авторизацией;

  • Client timeout — таймаут открытия и чтения, по умолчанию 10 секунд.

Вход HLS / HTTP

Приём MPEG-TS поверх HTTP: обычный HLS-плейлист либо непрерывная HTTP-передача. Режим по умолчанию определяется автоматически по типу содержимого ответа; при необходимости задаётся явно. Для адаптивного плейлиста по умолчанию берётся первый вариант из master-плейлиста; номер варианта можно задать явно (дополнительная настройка). Поддерживаются авторизация логином и паролем, Cookies и собственный User-Agent, а также плейлисты, перенаправляющие на плейлист новой сессии. Вход доступен только SPTS-потокам; для MPTS используйте UDP / RTP / TCP, файл или DVB-адаптер.

Файлы и устройства

Тип file служит и входом, и выходом:

  • Выход — запись в TS-файл (например, для последующей диагностики внешними анализаторами) или вывод в устройство: любое устройство в /dev, в том числе платы SDI и ASI. Для устройства включается признак Is device node.

  • Вход — цикличное воспроизведение из TS-файла либо захват с устройства (например, приём DVB-ASI — DVB-приёмник).

Путь задаётся полем File path — полный путь к файлу или устройству.

Именованные каналы (pipe)

Чтение из существующего именованного канала (FIFO) и запись в него. В отличие от типа std, узел не запускает дочерний процесс: внешняя программа-источник или получатель должна быть запущена независимо и держать канал открытым со своей стороны. Поле FIFO path (empty = auto) задаёт путь к существующему FIFO (создаётся, например, командой mkfifo); при пустом значении узел сам создаёт FIFO и назначает путь автоматически (путь виден в статистике входа или выхода). Доступен для SPTS и MPTS.

Внешние приложения (std)

Тип std — мост к протоколам, не поддерживаемым встроенными средствами: поток MPEG-TS принимается и передаётся через стандартные потоки ввода-вывода стороннего консольного приложения, которое узел запускает и контролирует сам (перезапуская при завершении).

Контракт приложения:

  • вход — приложение пишет MPEG-TS в stdout; диагностические сообщения выводите только в stderr — stdout зарезервирован для потока;

  • выход — приложение читает MPEG-TS из stdin; настройка Packets per write задаёт пакетирование записи (1–16 TS-пакетов за операцию, дополнительная настройка).

Настройки: Command (absolute path) — абсолютный путь к приложению; Arguments — командная строка (кавычки сохраняют пробелы внутри аргумента, обратная косая черта экранирует символы); Env names и Env values — пары переменных окружения, передаваемых приложению.