Файл, FIFO, внешнее приложение и DVB

Транспорты этой группы не работают с сетью: поток читается с диска или устройства, из именованного канала, из стандартного вывода стороннего приложения либо с тюнера. Назначение каждого описано в Прочие входы и выходы, приём DVB — в DVB-приёмник.

Файл и устройство (file)

Вход воспроизводит транспортный поток из файла или читает его с устройства; выход записывает поток в файл или отдаёт его на устройство — в том числе на платы SDI и ASI (Файлы и устройства).

Вход

Поле

Назначение

Значения

File path

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

абсолютный путь

Is device node

Выключено — путь считается обычным файлом, и он воспроизводится по кругу: по достижении конца узел возвращается к началу и пересчитывает метки времени и счётчики непрерывности, чтобы получатель видел непрерывный поток. Включено — путь считается устройством: чтение однократное, без возврата к началу. Путь вида /dev/dvb/adapterN узел распознаёт сам и настраивает приём DVB-ASI. Тюнер (S/S2/T/T2/C) так подключить нельзя: узел узнаёт его по самому устройству и отказывает независимо от того, настроен адаптер на узле или нет, — для тюнера есть отдельный тип входа.

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

Выход

Поле

Назначение

Значения

File path

Полный путь к файлу или устройству. Обязательное поле; путь должен быть абсолютным.

абсолютный путь

Is device node

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

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

Packets per write

Сколько TS-пакетов узел записывает за одну операцию. Больше — меньше системных вызовов и грубее темп записи. Изменение переоткрывает выход.

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

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

Мост к внешней программе через именованный канал (FIFO): в отличие от типа std узел не запускает эту программу, она работает сама по себе (Именованные каналы (pipe)).

Вход и выход

Поле

Назначение

Значения

FIFO path (empty = auto)

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

абсолютный путь либо пусто

Пока канал никто не читает, выход остаётся в рабочем состоянии, но данные никуда не идут — они просто отбрасываются, и счётчики отправленного не растут. Ошибки при этом нет: отсутствие читателя от неработающего выхода отличают по счётчикам, а не по состоянию. Читателя можно подключить в любой момент, пока поток идёт: узел повторяет попытку с каждым пришедшим пакетом и подхватывает читателя почти сразу. А вот если поток к этому времени встал, попытки прекращаются — тогда выход приостанавливают и возобновляют.

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

Мост к протоколам, которые узел не поддерживает сам: узел запускает консольное приложение и обменивается с ним потоком MPEG-TS через стандартные ввод и вывод (Внешние приложения (std)). Приложение перезапускается узлом, а его сообщения из стандартного потока ошибок попадают в текст ошибки входа или выхода — это первое место для диагностики.

Вход и выход

Поле

Назначение

Значения

Command (absolute path)

Путь к запускаемому приложению. Обязательное поле. У входа приложение пишет MPEG-TS в стандартный вывод, у выхода — читает его из стандартного ввода. Файл должен существовать и быть исполняемым, иначе точка не запустится.

путь к исполняемому файлу

Arguments

Командная строка одной строкой; узел сам разбирает её на аргументы. Правила разбора приведены под полем: аргумент с пробелами заключают в одинарные или двойные кавычки, обратная косая черта экранирует следующий символ. Это не командная оболочка: подстановка переменных, шаблоны имён файлов и перенаправления не работают.

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

Env names (comma-separated), Env values (comma-separated)

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

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

Packets per write

Только у выхода: сколько TS-пакетов узел записывает за одну операцию. Изменение переоткрывает выход, то есть перезапускает приложение.

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

Изменение команды или аргументов перезапускает приложение сразу; изменение только переменных окружения применяется при следующем запуске точки — после паузы и возобновления. Останавливая точку, узел завершает приложение немедленно, не давая ему сохранить состояние: если это важно, приложение должно выдерживать такое завершение. Вход дополнительно проверяет поток: данные, не похожие на MPEG-TS, останавливают его с ошибкой синхронизации.

DVB-адаптер (dvb)

Вход MPTS-потока, принимающий весь мультиплекс с настроенного DVB-адаптера (Подключение к потокам). Тип доступен только MPTS-потокам и только на узле, сборка которого умеет принимать DVB.

Вход

Поле

Назначение

Значения

DVB adapter id

Номер записи настроенного адаптера. Обязательное поле; вводится числом, без выбора из списка, а несуществующий номер выясняется при сохранении. Это не номер устройства в системе: на экране «DVB-адаптеры» (DVB-адаптеры) адаптеры перечислены по именам, а номер записи виден на экране «Конвейер» (Конвейер) — в заголовке «DVB-адаптер <номер>».

номер адаптера

На один адаптер могут ссылаться несколько MPTS-потоков; удалить адаптер, пока на него кто-то ссылается, узел не даёт. Отдельные программы принятого мультиплекса выделяются входами-демультиплексорами (Демультиплексор (demuxer)).