Файл, FIFO, внешнее приложение и DVB¶
Транспорты этой группы не работают с сетью: поток читается с диска или устройства, из именованного канала, из стандартного вывода стороннего приложения либо с тюнера. Назначение каждого описано в Прочие входы и выходы, приём DVB — в DVB-приёмник.
Файл и устройство (file)¶
Вход воспроизводит транспортный поток из файла или читает его с устройства; выход записывает поток в файл или отдаёт его на устройство — в том числе на платы SDI и ASI (Файлы и устройства).
Вход¶
Поле |
Назначение |
Значения |
|---|---|---|
File path |
Полный путь к файлу или устройству. Обязательное поле; путь должен быть абсолютным. Пока путь недоступен, вход не отказывает окончательно, а ждёт администратора и периодически повторяет попытку. |
абсолютный путь |
Is device node |
Выключено — путь считается обычным файлом, и он воспроизводится по кругу: по
достижении конца узел возвращается к началу и пересчитывает метки времени и
счётчики непрерывности, чтобы получатель видел непрерывный поток. Включено — путь
считается устройством: чтение однократное, без возврата к началу. Путь вида
|
по умолчанию выключено |
Выход¶
Поле |
Назначение |
Значения |
|---|---|---|
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)).