UDP, RTP, Pro-MPEG и TCP¶
Транспорты этой группы передают MPEG-TS в сеть без повторной передачи потерянных пакетов; Pro-MPEG добавляет к потоку упреждающую коррекцию, но обратного канала не использует. Область применения описана в Другие входы и выходы и Pro-MPEG / RTP+FEC (SMPTE 2022-1/2), рекомендации по приёму multicast высокого битрейта — в Рекомендации по работе с UDP-мультикастом.
UDP¶
Приём и передача MPEG-TS в датаграммах UDP — unicast или multicast, в том числе с указанием источника (SSM).
Вход¶
Поле |
Назначение |
Значения |
|---|---|---|
Address (multicast group) |
Группа multicast, которую слушает вход. Пустое поле означает приём unicast: узел принимает всё, что приходит на указанный порт. Значение решает и способ занятия порта: на группе несколько потоков могут слушать один и тот же адрес и порт, при приёме unicast порт занимается монопольно. |
адрес, по умолчанию пусто |
Port |
Порт приёма. Обязательное поле. |
1–65534, в форме создания 1234 |
Bind interface |
Интерфейс, на котором вход слушает порт и вступает в группу multicast. Выбирается из списка интерфейсов узла — каждый предлагается и по имени, и по адресу; «Любой (по умолчанию)» оставляет выбор системе. Если названного интерфейса на узле нет, вход не отказывает, а переходит в состояние ожидания администратора и подхватывает интерфейс, когда тот появится. |
по умолчанию любой |
SSM source address |
Адрес источника для приёма multicast с указанием источника (SSM): группа принимается только от этого отправителя, и второй отправитель на той же группе поток не испортит. Для приёма unicast поле не действует. |
адрес IPv4, по умолчанию пусто |
Socket buffer (bytes) |
Запрашиваемый размер приёмного буфера сокета — средство против потерь на всплесках битрейта. Ноль означает системное значение по умолчанию, о чём сказано и под самим полем. Заданный размер — запрос, а не итог: у работающего входа под полем выводится выданный ядром объём, а если запрос не уместился в системный потолок, рядом появляется предупреждение. Значение считывается один раз, при открытии окна потока, и после сохранения исчезает до следующего открытия (Рекомендации по настройке сети для мультикаста). |
по умолчанию 0 |
Multicast rejoin (s) |
Период повторного вступления в группу multicast. Нужен там, где коммутатор или маршрутизатор со временем забывает подписку и трафик прекращается без всякой ошибки. Ноль отключает повтор; при приёме unicast поле не действует. Значения больше 4294 секунд задавать не следует: отсчёт времени переполняется и повтор начинает выполняться непрерывно. |
по умолчанию 0 |
Выход¶
Поле |
Назначение |
Значения |
|---|---|---|
Address (destination) |
Адрес получателя: группа multicast, адрес unicast или имя узла, которое будет разрешено через DNS. Обязательное поле. |
адрес или имя хоста |
Port |
Порт получателя. Обязательное поле. |
1–65534, в форме создания 1234 |
Multicast egress interface |
Интерфейс, через который узел отправляет датаграммы multicast; выбирается из того же списка, что и «Bind interface» у входа. На узле с несколькими сетями его стоит задать явно — иначе интерфейс выбирает система по таблице маршрутизации; сохранить выход с пустым полем окно позволяет. При отправке unicast поле не действует: интерфейс для неё всегда выбирает таблица маршрутизации. |
по умолчанию выбирает система |
IP multicast TTL |
Сколько маршрутизаторов вправе передать датаграмму дальше. Значение по умолчанию рассчитано на локальную сеть; для передачи через маршрутизаторы его увеличивают, для запрета выхода за пределы сегмента ставят единицу. При отправке unicast поле не действует. |
1–255, по умолчанию 4 |
Packets per datagram |
Сколько TS-пакетов узел укладывает в одну датаграмму. Семь пакетов — это 1316 байт, столько помещается в кадр Ethernet без фрагментации; меньшее значение немного снижает задержку ценой заметно больших накладных расходов. Изменение переоткрывает выход — в раздаче будет короткий перерыв. |
1–7, по умолчанию 7 |
RTP¶
Тот же UDP, но с заголовком RTP: у пакетов появляются порядковый номер и метка времени, поэтому приёмник замечает потери и перестановки.
Вход¶
Поля UDP-входа целиком, и дополнительно:
Поле |
Назначение |
Значения |
|---|---|---|
RTP reorder |
Восстанавливать порядок пакетов по номерам RTP. Включают, когда пакеты приходят переставленными — например, при балансировке трафика по нескольким путям. При выключенной настройке узел вообще не смотрит на номера: пакеты уходят дальше в том порядке, в каком пришли. |
по умолчанию выключено |
Глубина очереди восстановления не настраивается: узел выбирает её сам по битрейту потока.
Выход¶
Поля UDP-выхода без изменений и дополнений: заголовок RTP узел формирует сам.
Pro-MPEG¶
RTP с упреждающей коррекцией ошибок по SMPTE 2022-1/2: к потоку добавляются FEC-пакеты,
по которым приёмник восстанавливает потери без обратного канала. По умолчанию FEC
занимает два дополнительных порта — port+2 и port+4, это учитывают при
планировании (Pro-MPEG / RTP+FEC (SMPTE 2022-1/2)).
Вход¶
Поля UDP-входа целиком, и дополнительно:
Поле |
Назначение |
Значения |
|---|---|---|
ProMPEG multiplexing |
Нестандартное расширение: основной поток и оба потока FEC передаются одним портом, дополнительные порты не занимаются. Настройка должна совпадать с передающей стороной, и обе стороны должны быть узлами Perfect Streamer. |
по умолчанию выключено |
ProMPEG header XOR |
Обфускация заголовка FEC-пакетов: заголовок складывается по модулю два с этим числом. Нестандартное расширение — значение должно совпадать на обеих сторонах, а для совместимости со сторонним оборудованием оставляется нулевым. |
0–255, по умолчанию 0 |
Passphrase |
Парольная фраза шифрования — нестандартное расширение (Шифрование потоков). Пустое поле означает приём без шифрования. Несовпадение с передающей стороной не распознаётся как ошибка шифрования: поток просто перестаёт разбираться как MPEG-TS, и в сообщении об ошибке узел напоминает, задана парольная фраза на этой стороне или нет. |
10–64 байта либо пусто |
Отдельной настройки восстановления порядка у входа Pro-MPEG нет: сборка потока по номерам RTP выполняется всегда — без неё не работала бы коррекция ошибок.
Выход¶
Поля UDP-выхода целиком, и дополнительно:
Поле |
Назначение |
Значения |
|---|---|---|
ProMPEG columns |
Ширина матрицы FEC в пакетах. Она задаёт и цену защиты по строкам — один пакет коррекции на столько переданных, — и длину подряд идущей потери, которую ещё удаётся восстановить. |
4–64, по умолчанию 8 |
ProMPEG rows |
Высота матрицы FEC: один пакет коррекции по столбцу на столько же переданных. Произведение «столбцы × строки» — это размер блока, а с ним растёт и задержка восстановления на приёме. |
4–64, по умолчанию 4 |
ProMPEG multiplexing |
Передача основного потока и обоих потоков FEC одним портом. Значение должно совпадать с приёмной стороной. |
по умолчанию выключено |
ProMPEG header XOR |
Обфускация заголовка FEC-пакетов; значение должно совпадать с приёмной стороной. Для совместимости со сторонним оборудованием оставляется нулевым. |
0–255, по умолчанию 0 |
Passphrase |
Парольная фраза шифрования; на обеих сторонах она должна совпадать. Шифруется содержимое пакетов, а коррекция считается уже по зашифрованным данным. |
10–64 байта либо пусто |
Узел принимает и такую матрицу, которую стандарт не требует поддерживать: SMPTE 2022-1 ограничивает её произведением не больше 100 при 1–20 столбцах и 4–20 строках, а поля допускают до 64 в каждом. За пределами стандарта совместимость со сторонним приёмником не гарантируется.
TCP¶
Приём MPEG-TS по обычному TCP-соединению — там, где UDP заблокирован. Узел всегда подключается сам, поэтому режима ожидания подключений у этого типа нет. Выхода этого типа тоже нет: раздачу по TCP выполняет потоковый HTTP-сервер (Потоковый HTTP-сервер).
Вход¶
Поле |
Назначение |
Значения |
|---|---|---|
Host |
Узел-источник, к которому выполняется подключение: имя или адрес. Окно не считает это поле обязательным, но без него вход работать не будет — пустое значение выяснится только при запуске. |
по умолчанию пусто |
Port |
Порт на узле-источнике. Обязательное поле. |
1–65534 |
Client timeout (s) |
Предельное время на установление соединения и на уже начатое чтение. Молчание установленного соединения этой настройкой не ограничивается: остановившийся источник обнаруживает общий таймаут потока на вкладке «Поток» (Настроить поток), после чего поток переходит на резервный вход. |
от 1, по умолчанию 10 |
При потере синхронизации по границе TS-пакета вход не переподключается сразу, а пробует восстановить выравнивание на ходу; переподключение происходит, только когда подряд не удаётся выровняться восемь раз. В интерфейсе счётчик таких восстановлений не показывается.