---
title: Файл, FIFO, внешнее приложение и DVB
url: https://doc2.pstreamer.tv/ru/manual/webui/io/local.html
lang: ru
product: Perfect Streamer
version: 2.0.1.264
---

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

Транспорты этой группы не работают с сетью: поток читается с диска или устройства, из именованного канала, из стандартного вывода стороннего приложения либо с тюнера. Назначение каждого описано в [Прочие входы и выходы](../../streamer/other_io.md#streamer-other-io), приём DVB — в [DVB-приёмник](../../streamer/dvb.md#streamer-dvb).

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

Вход воспроизводит транспортный поток из файла или читает его с устройства; выход записывает поток в файл или отдаёт его на устройство — в том числе на платы SDI и ASI ([Файлы и устройства](../../streamer/other_io.md#streamer-other-io-file)).

### Вход

| Поле | Назначение | Значения |
| --- | --- | --- |
| 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)](../../streamer/other_io.md#streamer-other-io-pipe)).

### Вход и выход

| Поле | Назначение | Значения |
| --- | --- | --- |
| FIFO path (empty = auto) | Путь к каналу. Канал создаёт сам узел и удаляет его при остановке, поэтому указывать чужой существующий канал не следует: вход создаёт канал при запуске, выход — с приходом первых данных. Путь должен быть абсолютным. Пустое поле означает, что путь узел выберет сам; готовый путь виден в строке списка входов и выходов сразу после сохранения, ещё до запуска потока. | абсолютный путь либо пусто |

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

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

Мост к протоколам, которые узел не поддерживает сам: узел запускает консольное приложение и обменивается с ним потоком MPEG-TS через стандартные ввод и вывод ([Внешние приложения (std)](../../streamer/other_io.md#streamer-other-io-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-адаптера ([Подключение к потокам](../../streamer/dvb.md#streamer-dvb-streams)). Тип доступен только MPTS-потокам и только на узле, сборка которого умеет принимать DVB.

### Вход

| Поле | Назначение | Значения |
| --- | --- | --- |
| DVB adapter id | Номер записи настроенного адаптера. Обязательное поле; вводится числом, без выбора из списка, а несуществующий номер выясняется при сохранении. Это не номер устройства в системе: на экране «DVB-адаптеры» ([DVB-адаптеры](../monitor.md#webui-dvb-monitor)) адаптеры перечислены по именам, а номер записи виден на экране «Конвейер» ([Конвейер](../monitor.md#webui-pipeline)) — в заголовке «DVB-адаптер <номер>». | номер адаптера |

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