История версий¶
версия 2.0.2.362 Beta¶
06.09.2026
Меню CI-модуля — у модуля читается его собственное меню: состояние карты, подписки, серийный номер, ввод PIN и сервисные пункты доступны прямо с экрана оборудования — то же, что модуль показал бы на экране телевизора. Там же появился паспорт модуля — изготовитель, код изделия и тип приложения EN 50221, — а его название узел раскодирует, поэтому кириллические названия больше не приходят искажёнными (Меню модуля).
Дескремблирование отдельным модулем CI — модуль в самостоятельном картоприёмнике обслуживает любой вход потока, а не только приём с DVB-карты: через него проходит весь транспорт входа, а список программ лишь указывает, какие из них дескремблировать. Слот назначается на самом входе, и там же видно, каким входом он занят (CI/CAM на входе потока).
Несколько слотов CI на одном входе — мультиплекс проводится последовательно через несколько модулей, по своему набору программ на каждый слот. Тактовая частота шины CI подбирается по фактическому битрейту входа, а слот, оставшийся занятым, освобождается по запросу с экрана оборудования.
Служебные таблицы при демультиплексировании — таблицы сети и времени и прочие служебные PID исходного мультиплекса подчиняются тем же ключам
mpegts-filter-nit,mpegts-filter-tdt,mpegts-filter-unnecessaryиmpegts-filter-cat, что и на остальных трактах, а не отбрасываются безусловно. Умолчание при этом изменилось: выделенный из мультиплекса поток несёт таблицы сети и времени, которых прежде не нёс, — приёмник за таким потоком, и модуль CI в первую очередь, рассчитывает их видеть. Прежнее поведение возвращаетmpegts-filter-nit.Разрыв PCR не сбрасывает джиттер-буфер — вход, поймавший скачок PCR вперёд, пересаживает точку синхронизации прямо в полосе, не сливая очередь, поэтому разрыв обходится одной заминкой вместо повторного набора буфера. Окно, за которым скачок считается разрывом, подбирается автоматически (Синхронизация).
Быстрый старт входа HLS — живой плейлист подхватывается с хвоста: в очередь идут только последние сегменты, нужные под заданный джиттер, а не всё окно, поэтому вход выходит в эфир с задержкой в пару сегментов вместо целого окна плейлиста. Завершённый плейлист (VOD) по-прежнему воспроизводится с начала.
Подавление дребезга аварий — авария, которая раз за разом поднимается и снимается, сворачивается в один инцидент: узел удерживает её на время затишья и закрывает, только когда дребезг действительно прекратился. Шторм повторов не расходится ни по журналу, ни по внешним каналам. Однажды опознанный дребезжащий источник остаётся таким и после затишья: следующая его серия удерживается с первого же повторения.
Правка канала EPG — у канала задаются идентификатор XMLTV отдельно от отображаемого имени и названия по языкам, а ненужный канал удаляется целиком: вместе с ним уходят его названия, события и членство в наборах.
Прочие улучшения и исправления ошибок.
версия 2.0.2.335 Beta¶
27.08.2026
Meshwork (мультидомен) — несколько серверов объединяются в именованные домены, и домен служит границей изоляции: членство узлов, каталог ресурсов и аварии расходятся только внутри своего домена, между доменами не передаётся ничего. Узел может состоять сразу в нескольких доменах, не смешивая их данные. Подробно — Meshwork.
Автообнаружение узлов — достаточно задать домен и одну точку входа: узлы обмениваются списками соседей и сами достраивают полносвязную сеть прямых связей. Общий доменный ключ вырабатывается автоматически и передаётся только по защищённому каналу — TLS либо доверенный сегмент локальной сети.
Распределённая библиотека ресурсов — выходы UDP, RTP, Pro-MPEG и RIST, multicast-входы UDP, RTP и RIST, а также связи PS1 и SRT публикуются в общем каталоге домена (
/data/library): единый список multicast-групп, портов, VLAN, SSM-источников и связей точка-точка с указанием узла и потока. По каталогу видно, какие адреса и порты уже заняты, а новый вход подключается прямо из него — выбором потока, уже отдаваемого на другом узле домена, без ручного ввода адреса.Обзор узлов домена — по каждому узлу видны статус, время последнего контакта, роль, регион, версия сборки, время работы с момента запуска, загрузка CPU, трафик по физическим интерфейсам и число потоков в эфире, а по каждой межузловой связи PS1 или SRT — битрейт, RTT, доля повторов и потерь и вердикт состояния. Упавший узел не пропадает из списка: он держится в нём как недоступный вместе со своей аварией семь суток, а выведенный из эксплуатации убирается из обзора отдельной командой.
Работа через NAT — узел за NAT участвует в домене полноценно и без проброса входящих портов: он подключается сам, публичная точка доступа достраивается по фактически видимому адресу и объявленному порту, а его состояние соседи ретранслируют на один хоп — узел виден и тем, кто не может обратиться к нему напрямую.
Имя узла из сертификата — узел, у которого не задано имя хоста, объявляет соседям имя, покрытое его собственным сертификатом, и только после того, как это имя разрешается обратно в него, а результат проверки виден в данных сервера как
cert-hostиcert-host-refused.Автологин связей внутри домена — для PS1- и SRT-связей между узлами одного домена не нужно заводить логин и пароль на каждую связь: на вызывающей стороне (вход PS1, вход SRT, выход SRT в режиме caller) достаточно включить настройку «Meshwork peer auth», и авторизация выполняется по общему доменному секрету. Подтверждённый узел-партнёр и его поток видны в библиотеке ресурсов и в списке сессий.
Low-Latency HLS и MPEG-DASH на CMAF — новый режим раздачи «OTT / LL-HLS / DASH»: встроенный мультиплексор формирует фрагментированный MP4 (CMAF), поверх которого отдаются MPEG-DASH на
/dashи Low-Latency HLS на/llhls; адаптивные наборы собираются и для этих форматов. Подробно — Режимы раздачи.Малая задержка LL-HLS — медиаплейлист дробится на части, применяются блокирующая перезагрузка плейлиста и подсказка предзагрузки, поэтому плеер начинает воспроизведение, не дожидаясь готовности полного сегмента. Сегменты CMAF несут Producer Reference Time, манифест DASH объявляет UTCTiming и целевую задержку, а настройка «Целевая длительность LL-части (ms)» применяется на лету, без перезапуска потока.
HTTP/3 (QUIC) — HLS, MPEG-DASH, LL-HLS и MPEG-TS over HTTP отдаются поверх QUIC на отдельном UDP-порту, с необязательным 0-RTT; переход на QUIC клиент запрашивает параметром
?h3. QUIC работает только поверх TLS: при выключенном TLS слушатель не поднимается и клиенту не предлагается, а фактическое состояние слушателя видно в данных HTTP-сервера, а не только в настройке. Административные маршруты остаются только на TCP.Выравнивание сегментов по IDR — сегментер различает IDR и обычный I-кадр: на источниках с closed-GOP каждый сегмент начинается с полноценной точки входа, поэтому плеер открывает поток с любого сегмента; на источниках с open-GOP границей служит ближайший I-кадр.
Защита контента (DRM) — OTT-раздачу потока можно шифровать: HLS AES-128 с ключом от самого сервера или от внешнего key-сервера и с необязательной ротацией по временным окнам, либо MPEG Common Encryption (ISO/IEC 23001-7) по схемам cenc и cbcs для CMAF и DASH. Шифрование выполняется один раз, в момент формирования сегмента, поэтому архив DVR хранится зашифрованным и переживает любое число ротаций ключа. Подробно — Защита контента (DRM).
Каждое соединение MPEG-TS over HTTP — отдельная сессия — в списке клиентов потока теперь одна строка на соединение со своим
sess-id, подробности доступны по/data/stream/http-clients/<sess-id>, отдельное соединение закрывается черезPOST /data/kick?sess-id=<id>, а ограничениеmax-connсоблюдается и при значениях больше единицы.DVR (сетевой архив) — каждый OTT-канал пишется на диск параллельно с раздачей, той же сегментацией и без отдельного рекордера; в режиме низкой задержки архив ведётся двумя линиями, MPEG-TS и CMAF, поэтому запись доступна в том же контейнере, что и живое вещание. Подробно — DVR.
Воспроизведение архива (VOD) — архив отдаётся по тем же HLS, DASH и LL-HLS URL, что и живое вещание:
t=<время>включает режим VOD и задаёт начало окна,d=<секунды>— его длительность. Плейлист HLS при этом закрытый, манифест DASH статический, разрывы записи оформлены отдельными периодами; адаптивные наборы воспроизводят архив теми же параметрами.Catch-up по EPG — вместо
tиdдостаточно передатьepg=<время>: сервер сам находит на привязанном канале EPG передачу, идущую в этот момент, и берёт её начало и длительность как границы окна воспроизведения.Субтитры в архиве — дорожки WebVTT пишутся на диск вместе с сегментами и воспроизводятся в VOD по тем же URL; окна без реплик места на диске не занимают.
Хранилища DVR — хранилищ может быть несколько, у каждого свой предел заполнения и свой порядок очистки. Глубина архива («Хранение (часы)», до 90 суток) и защищённый минимум задаются отдельно для каждого потока, а очистка по свободному месту не трогает ни защищённый минимум, ни окна открытых VOD-сессий.
Монитор DVR — отдельный экран показывает состояние и заполнение хранилищ, объём и глубину архива по потокам и задержки чтения и записи, а гистограмма покрытия (
/data/dvrstat) отмечает не только дыры в архиве, но и их причину — обрыв входа, смену PMT, скремблирование, срабатывание очистки. Отсюда же стираются архив отдельного потока и каталоги удалённых потоков.Сбой диска архива не останавливает узел — ошибка обслуживания архива DVR ограничивается тем хранилищем и тем шагом, где возникла: остальные потоки и остальные линии записи продолжают работать, а пострадавший архив помечается требующим перестроения.
Алертер — новая служба оповещений: каждая авария становится инцидентом, который поднимается, обновляется и снимается автоматически, а дедуплицированный активный набор показывает только то, что происходит сейчас. Серьёзность задаётся единой шкалой — от информационной до требующей вмешательства администратора; такой инцидент снимается подтверждением оператора. Подробно — Оповещения (алертер).
Каталог кодов аварий — более пятидесяти типов инцидентов в одном списке: потоки и их входы и выходы, нарушения TR 101 290, ресурсы узла, хранилища и здоровье записи DVR, приём DVB и CI/CAM, транскодеры, OTT, сертификаты и узлы домена. Пороги срабатывания настраиваются в разделе оповещений.
Внешняя доставка оповещений — аварии уходят за пределы веб-консоли: письмом по SMTP (STARTTLS, implicit TLS, AUTH), сообщением в Telegram и запуском произвольной команды, которой инцидент передаётся переменными окружения и полным JSON на стандартный вход. У каждого канала свой выключатель и свой порог серьёзности.
Аварии всего домена — дежурный видит аварии любого узла с любого другого: активный набор расходится вместе с keep-alive и снимается сразу, как только исчез у источника, а у каждой строки указан узел-источник. Аппаратные и системные аварии по умолчанию остаются локальными и поднимаются до доменных отдельной настройкой.
Журнал в базе данных — сообщения сервиса пишутся в SQLite: типизированные записи с источником и уровнем серьёзности, свёртка идущих подряд повторов в одну строку со счётчиком, ограничение хранения по сроку и по объёму. В отличие от активного набора аварий журнал переживает перезапуск.
Общий выключатель оповещений — при выключенном
enableв настройках оповещателя узел не поднимает собственных аварий и не отправляет наружу ничего, включая аварии, полученные от соседей по домену; в списке и в потоке событий остаются только разнесённые по домену аварии соседей.Тяжесть аварии ввода-вывода — по последствиям — отказавший вход, который в этот момент не несёт поток, отмечается уровнем Error, а несущий вход, любой выход и отказ при отсутствии эфира — уровнем Critical, причём оценка пересчитывается, пока авария открыта, и следует за переключением на резерв.
Цвет во внешних оповещениях — в текст сообщения добавлен цветовой маркер уровня (красный для ошибок, жёлтый для предупреждений, зелёный для снятия, синий для информационных), а письмо уходит сразу в двух вариантах: обычный текст и HTML с цветной полосой.
Оповещения в Telegram переживают шторм — накопленные аварии объединяются в наименьшее число сообщений, которое допускает предел в 4096 символов, а при ответе об ограничении частоты узел выжидает указанное время и повторяет отправку вместо того, чтобы отбросить оповещение.
Задержка оповещения распространена на резервный вход — предупреждение о работе потока на резервном входе поднимается, только если положение продержалось дольше
alert-delay, поэтому источник, который проверяется и снова падает, больше не даёт череду поднятий и снятий; приalert-delayравном нулю поведение прежнее.Монитор TR 101 290 — непрерывный контроль соответствия входного потока стандарту: единый вердикт («Норма», «Проблема», «Проверка…») и структурный отчёт по приоритетам 1, 2 и 3, где для каждого показателя указаны пункт стандарта, измеренное значение и предел. Мультиплекс MPTS оценивается целиком — по всем PID, программам и таблицам SI. Поток автоматически классифицируется как CBR или VBR, и проверки, осмысленные только при постоянном битрейте, на VBR-источнике не оцениваются и не дают ложных срабатываний. Подробно — Монитор TR 101 290.
Дрейф опорного генератора — систематический уход тактовой частоты источника измеряется линейной регрессией в ppm при допуске ISO/IEC 13818-1 ±30 ppm и выводится отдельной метрикой. Медленный уход отрабатывается плавными микросдвигами точки синхронизации («Компенсация дрейфа синхронизации», включена по умолчанию), поэтому на выходе нет рывков.
Модель буфера T-STD — анализ видеобуфера эталонного декодера по ISO/IEC 13818-1 со счётчиками переполнений и опустошений для MPEG-2, H.264 и HEVC; отсчёт ведётся по часам PCR, а скорость слива подстраивается под фактический битрейт видео. Включается настройкой «Анализировать видеобуфер T-STD».
Анализ для вставки рекламы — разбор секций SCTE-35 с событиями склейки, точки склейки транспортного уровня с настраиваемым упреждением и метки случайного доступа. Данные выводятся в статистике потока при включённом глубоком анализе.
Помощник для рекламаций — по потоку с устойчивыми нарушениями формируется готовое текстовое задание для AI-чата, по которому тот составляет формальное письмо-рекламацию поставщику потока: перечень устойчивых нарушений, измеренные значения, пункты стандарта и влияние на декодер. Задание отдаётся запросом
GET /data/stream/<id>/ai-complaint-prompt; название потока и адрес источника в текст не включаются.CI/CAM (EN 50221) — встроенный хост Common Interface: обнаружение модуля, чтение его имени и списка поддерживаемых CA_system_id, выбор программ для дескремблирования и передача CA_PMT по каждой из них. Модуль, совмещённый с DVB-приёмником, дескремблирует выбранные программы принятого мультиплекса инлайн, несколько одновременно; состояние слотов и вердикт по каждой программе видны в интерфейсе.
Программный дескремблер BISS-1 / BISS-E — применяется не только к приёму с DVB-карты, но и к любому входу потока: ключ задаётся на SPTS целиком или по программам мультиплекса и меняется на лету, без перезапуска входа. На приёме с DVB-карты результат дополнительно проверяется по самому потоку, поэтому неверный ключ не выглядит как успешное дескремблирование, а поднимает отдельную аварию.
Очистка условного доступа на приёме DVB — из мультиплекса, принятого DVB-картой, отдельной настройкой адаптера удаляются PID ECM и EMM, а из PMT — CA-дескрипторы открытых программ: дальше по тракту уходит чистый FTA-поток. При потере ключа разметка условного доступа возвращается, чтобы приёмник ниже по цепочке смог заново запросить доступ.
Телеметрия транскодера — по каждому энкодеру публикуется медиаинформация перекодированного выхода: формат кадра, кодек видео, набор аудиокодеков и текущий битрейт, а по каждому процессу — загрузка CPU и занятая память.
RTMP и RTMPS — канал публикуется на любой RTMP-приёмник, включая YouTube и Facebook: видео H.264 или HEVC (HEVC — через Enhanced RTMP) и одна дорожка AAC, для
rtmps://узел подключается как TLS-клиент. В обратную сторону вход сам забирает поток с источникаrtmp://илиrtmps://и ремультиплексирует FLV в MPEG-TS.Бесшовное переключение источника — при смене активного входа на передатчике приёмные пиры PS1 не переподключаются: нумерация и метки времени остаются непрерывными, всплеск очереди гасится отбрасыванием самых старых пакетов, а пропуск добирается штатной ретрансмиссией.
Адаптивная ретрансмиссия PS1 — приёмник измеряет фактический RTT до передатчика и сам подстраивает под него интервалы повторных запросов; измеренный RTT, текущий интервал перезапроса и признак слишком малой задержки выведены в статистику связи. Задержка приёмного тоннеля задаётся напрямую в миллисекундах вместо прежнего множителя от RTT.
Состояния «Переподключение» и «Действие администратора» — потерявший источник вход или выход переоткрывается на месте и остаётся в состоянии «Переподключение» на всё время попыток, поднимая одно предупреждение на эпизод вместо сообщения на каждую попытку. Причину, которую повтором не устранить — занятый порт, отсутствующий интерфейс, данные не MPEG-TS, отказ SRT по шифрованию, — узел переводит в состояние «Действие администратора» с удерживаемым оповещением, а правка настроек применяется сразу.
Дата последней ошибки — рядом с текстом последней ошибки входа или выхода публикуется её время (
last-error-ts, то же поле есть и в потоке событий), поэтому давнюю причину, оставшуюся на приостановленном входе, видно отдельно от текущего сбоя.Диагноз при непригодном содержимом входа — сообщение о нарушении синхронизации MPEG-TS называет вероятную причину: пакеты найдены, но смещены на известное число байт, либо структуры MPEG-TS нет вовсе, и для входов PS1 и Pro-MPEG добавляется подсказка о парольной фразе шифрования.
Фактический размер приёмного буфера — вход публикует
socket-buffer-actual, размер, который выдало ядро, тогда какsocket-buffer-sizeостаётся лишь запросом и урезается системным пределом, поэтому расхождение теперь видно сразу, а не проявляется потерями на высоком битрейте.MPTS-мультиплексор: исходная идентичность — программы могут сохранять свои исходные PID, а порядок программ в PAT, SDT и NIT задаётся вручную, поэтому мультиплекс переносится на Perfect Streamer без смены идентичности потока для приёмного оборудования. Программы с TS-скремблированием переносятся с исходными метками времени.
Автоматическая нумерация PID для SPTS —
enable-autopidвместе сautopid-baseпереносит всю программу в предсказуемое окно из 64 идентификаторов, начиная с PMT и далее видео, аудио и остальные элементарные потоки в порядке исходной таблицы; программа, не поместившаяся в окно, целиком остаётся с исходными PID.Размер датаграммы задаётся на всех выходах — настройка
packetsтеперь применяется не только на SRT, но и на выходах UDP, RTP, Pro-MPEG и RIST, а на выводе в файл и в стандартный поток задаёт размер записываемого блока. Значения по умолчанию совпадают с прежним поведением, поэтому конфигурация, в которой ключ никогда не задавался, не меняется; сохранённое значение, отличное от умолчания, прежние сборки игнорировали, и теперь оно вступает в силу с первым же перезапуском — проверьте его до обновления.Интеграция с внешним биллингом — каждая зрительская сессия авторизуется во внешней биллинг- или CRM-системе, удерживается периодической ре-авторизацией и по завершении сообщается ей же: жизненный цикл Start / Interim / Stop в стиле RADIUS, отзыв подписки сбрасывает сессию посреди просмотра. Охвачены OTT, пиринг PS1 и выходы SRT, а сам биллинг подключается шаблонами запроса и разбора ответа, без доработки ПО.
Встроенный клиент ACME (Let’s Encrypt) — выпуск и автоматическое продление сертификатов для веб-сервера, HTTP/OTT-сервера и EPG-сервера: сертификат заказывается на каждое настроенное имя хоста, продление проверяется ежедневно, при неудаче поднимается авария. Поддерживаются произвольный удостоверяющий центр и внешняя привязка учётной записи, а новый сертификат применяется без перезапуска сервиса.
Быстрая остановка сервиса — остановка больше не ждёт клиента, переставшего читать данные: под той же нагрузкой узел завершается за 2–4 секунды вместо примерно минуты, поэтому перезапуск занимает секунды и не оставляет эфир без вещания.
pss_lic 2.0 — консольная утилита управления лицензией переведена на команды
apply,c2v,fingerprint,recipient,keys,detach,rehostиcancelс длинными ключами: она применяет присланное обновление лицензии, выгружает состояние ключа для поставщика и переносит лицензию с узла на узел, в том числе временно, а любой файл принимает со стандартного ввода и выдаёт в стандартный вывод. Подробно — pss_lic.Правка файла конфигурации вручную — вместе с документацией публикуется схема JSON Schema для
pss.json(строгая и совместимая) и пошаговое руководство по правке и переносу файла: конфигурацию остановленного узла разрешено править напрямую и переносить между установками и версиями, проверив результат по схеме, тогда как прежде единственным поддерживаемым способом был HTTP API. Подробно — Файл настроек pss.json.Новый веб-интерфейс — управление узлом переведено на новую консоль, которая открывается по адресу узла (путь
/admin): обзор, потоки, мониторинг системы, DVB, DVR, транскодеры, клиенты, журнал, аварии и все настройки сервера. Отдельные схемы показывают топологию домена Meshwork и тракт выбранного потока от входов до выходов. Прежний интерфейс сохранён по адресу/classic. Подробно — Веб-интерфейс.Единый вход в домене — учётной записи можно разрешить автовход: после одного входа по паролю браузер 14 дней открывает панель этого узла без формы входа и переживает перезапуск. Переход по ссылке из этой панели передаёт сеанс на соседний узел домена, если выполнены условия перехода (Веб-сервер и учётные записи); набранный вручную адрес соседа сеанса не передаёт. Скрипт или сторонняя панель предъявляют тот же ключ заголовком
X-Auth-Tokenили параметромauth-token, а администратор отзывает автовход сразу во всём домене.CORS для административного API — узлы одного домена Meshwork разрешены без всякой настройки, остальные источники перечисляются в
web-server/cors-origin(значение*разрешает любой источник,noneвыключает механизм), поэтому интерфейс одного узла обращается к API другого; кросс-доменный запрос обязан нести токен явно — cookie и Digest в нём не действуют.Токен своей сессии —
GET /data/auth-tokenвозвращает клиенту его собственный токен и абсолютный срок действия, а в/data/serverдобавлено полеweb-login-expires, поэтому интерфейс показывает, до какого момента действителен вход, не читая сам токен.Завершение сессии автологина —
POST /data/auth-tokens/revoke?login=<login>закрывает все действующие сессии учётной записи, а?id=<hex>— одну по идентификатору из списка сессий; в ответе приходит число закрытых сессий, и отзыв расходится по всему домену.Причина отказа при переходе на соседний узел — если переход не дал автоматического входа, узел возвращает в адресе параметр
jumpсо значениемno-session,foreign-domain,autologin-offилиtoken-refused, вместо того чтобы молча показать форму ввода пароля.Обновление в реальном времени — узел отдаёт своё состояние потоком событий на
/data/events: при подключении приходит полный снимок, дальше раз в секунду обновляются кадры потоков, системных ресурсов, клиентов и DVB-адаптеров, а аварии и смены состояния приходят событиями. Интерфейс и внешние панели работают без периодического опроса.Контекстная справка — каждый экран и каждое важное окно нового интерфейса снабжены вызовом справки, который открывает раздел документации именно по тому, что сейчас открыто: общая кнопка справки — для экрана, кнопка «?» в заголовке окна — для этого окна. Раздел открывается на языке интерфейса.
Языки, темы и раскладки — интерфейс переведён на шесть языков (русский, английский, немецкий, французский, испанский, португальский), поддерживает светлое и тёмное оформление и сам подстраивает плотность раскладки под телефон, планшет, рабочую станцию и видеостену.
Доступ без ограничения по числу подключений — у лимитов подключений получателя появилось третье состояние «Без ограничения» рядом с «Протокол запрещён» и «Не более» с числом; прежде неограниченный доступ изображали заведомо большим числом. Ноль по-прежнему означает запрет протокола, поэтому смысл сохранённых настроек после обновления не меняется. Подробно — Пользователь: добавление и изменение.
Правка доступа к потокам не задевает посторонние сессии — добавление потока в список разрешённых и возврат к пустому списку не разрывают ни одной сессии, а сужение списка закрывает сессии PS1 и SRT только на тех потоках, которые из него ушли. Прежде любая правка списка отключала запись целиком по всем протоколам.
Активация лицензии из веб-интерфейса — на экране «Лицензия» появился раздел «Активация»: выгрузка состояния ключа для поставщика — файлом C2V или в буфер обмена — и применение присланного ключа V2C файлом или вставкой текста. Применение ключа перезапускает узел. Подробно — Лицензия.
Предупреждение об истечении лицензии — узел поднимает аварию за две недели до конца срока и повышает её до требующей вмешательства, когда срок истёк. Авария расходится по домену, поэтому истекающую лицензию соседа видно с любого узла (Оповещения (алертер)).
Неподлинная лицензия останавливает узел — узел, чья лицензия признана неподлинной, поднимает аварию, требующую вмешательства администратора, перезапускает службу, и запуск отклоняется: служба остаётся остановленной, пока на узле не окажется подлинная лицензия. Авария расходится по домену (Оповещения (алертер)).
Откат на последнюю рабочую конфигурацию — узел хранит копию настроек, с которыми в прошлый раз стартовал начисто, и при неприемлемом
pss.jsonподнимается на ней — со всеми своими потоками, а не на настройках по умолчанию, в которых потоков нет. Архив отвергнутых файлов приведён в порядок: имена по UTC, номерной суффикс вместо перезаписи при двух отказах в одну секунду, двадцать последних копий; путь архивной копии авария называет прямо. Подробно — Поведение при старте и ошибках конфигурации.Приоритет входов правится мышью и с клавиатуры — администратору входы потока переставляются перетаскиванием или сочетаниями
Alt+↑иAlt+↓, на вкладке «Входы» редактора и в раскрытой строке списка потоков (на телефоне порядок только показывается); добавленный вход всегда встаёт последним и не подменяет собой основной (Потоки).Номер входа — его место в списке резервирования — один и тот же номер стоит теперь в строке потока, в раскрытой строке, в редакторе и в тексте оповещения. Входы с одинаковым значением приоритета сохраняют порядок записи и при последующих правках настроек (Резервирование источников).
Отказ оставленного входа читается как история — вход, с которого поток ушёл на резерв, останавливается, но причину сохраняет: интерфейс показывает её приглушённой строкой с возрастом, а не как текущий сбой, и оповещение об ошибке этого входа снимается. Причина при этом своя, транспортная, если вход успел сообщить её сам (Резервирование источников).
Сортировка списка клиентов — на экране «Клиенты» заголовок колонки сортирует список: числовые колонки открываются по убыванию, текстовые — от А к Я, третье нажатие возвращает порядок узла. Сортируется весь найденный список, а не показанная страница (Клиенты).
Переход к потоку с экрана транскодеров — в строке декодера и каждого энкодера появилась кнопка, открывающая список потоков на нужном потоке. Доступна в любой роли (Транскодеры).
Программа демультиплексора выбирается из списка и для DVB-адаптера — работающий адаптер публикует свой мультиплекс, и поле «PNR» предлагает его программы с именами, включая внутренние программы T2-MI под составными номерами (Демультиплексор (demuxer)). Адаптер у входа
dvbтоже выбирается по имени, а не вводится номером записи (DVB-адаптер (dvb)).Приём DVB больше не зависит от сборки — тип входа
dvbи раздел DVB-адаптеров доступны на любом узле; единственное условие — обнаруженный фронтенд и драйвер, который даёт службе его открыть (DVB-приёмник).Сканер DVB уступает тюнер настроенному адаптеру — применять найденный мультиплекс можно, не дожидаясь конца прохода: адаптер забирает тюнер и поднимается примерно через секунду, а сканирование заканчивается отменённым, сохраняя свои результаты на экране. Проход останавливается кнопкой «Стоп» и закрытием окна (Сканирование).
Панели обзора узла — по наличию подсистемы — «Транскодеры» и «DVB-адаптеры» на обзоре показываются там, где есть само оборудование или экземпляры либо есть что доложить об отказе. На узле без транскодеров и без тюнера этих панелей нет, и входа в их разделы с обзора тоже (Обзор узла).
Адреса интерфейсов в системном мониторе — карточка «Сеть» и графики истории подписаны адресом IPv4 интерфейса, если узел его сообщает, включая вложенные VLAN (Системный монитор).
Путь хранилища DVR пишется без завершающего разделителя — интерфейс и HTTP API такое значение отклоняют: два написания одного каталога прошли бы проверку уникальности как два разных хранилища (Хранилища DVR).
Пакету нужна служба защиты 10.33 или новее — pstreamer поставляет библиотеки системы защиты нового поколения, и более старый aksusbd их не принимает (Требования к системе). Служба лежит в том же репозитории и ставится вместе с пакетом, но обновление её необратимо, независимо от типа ключа — порядок и последствия описаны на страницах установки (Установка на системы семейства RHEL, Установка на системы семейства Debian).
Явный выбор PLP на DVB-T2 — у поля «Stream id (ISI/PLP)» появилось значение «авто» (-1): фильтр не применяется, тюнер берёт поток по умолчанию драйвера, и новый адаптер создаётся именно таким. Явный ноль стал при этом настоящим выбором нулевого потока, а не «не задано», поэтому адаптер, у которого ноль сохранён в настройках, после обновления узла станет принимать только его (Адаптеры).
Сканер находит PLP — поле «Проверять PLP до» перебирает PLP на транспондерах DVB-T2 и выводит каждый найденный отдельной строкой со своим списком программ; номер переносится в созданный адаптер, а в статистике адаптера появилась строка «PLP / ISI» (Сканирование).
Поиск в справочниках сканера — сотни спутников и региональных диапазонов отсортированы по названию и фильтруются строкой поиска; уже выбранная строка из списка не исчезает, что бы ни было набрано (Сканирование DVB).
Исправление ссылки на PCR в PMT — новая настройка MPEG-TS для источников, у которых таблица не объявляет пригодного PCR: узел объявляет в PMT тот PID, на котором PCR действительно передаётся (Модификация потока).
Восстановление джиттер-буфера после просадки источника — вход, переживший остановку источника, больше не остаётся с почти пустой очередью, передавая на выходы каждую следующую заминку: узел один раз перестраивает буфер, ценой единственного разрыва (Синхронизация).
Режим управления битрейтом видеокодера — у транскодера появился выбор между постоянной скоростью и двумя переменными режимами: заданное число трактуется как средний битрейт (пики доходят до полутора его величин) либо как жёсткий потолок (средняя скорость составляет две трети от него). Число при этом остаётся одно — второй предел кодер выводит сам из фиксированного отношения пика к среднему 1,5. В переменных режимах кодер перестаёт добивать элементарный поток, поэтому экономия полосы получается только там, где поток-приёмник не выравнивает битрейт обратно (Настройки кодера).
Перезапуск транскодера объясняется в журнале — каждый перезапуск дочернего процесса называет свою причину и код выхода уровнем «Уведомление», а не молча в трассировке. Кроме того, узел перестал бесконечно переоткрывать канал, который не отвечает: после двух неудачных попыток он запрашивает новый процесс (Контроль работы).
Удалённый поток виден в открытом редакторе — если поток удалён с узла, пока открыт его редактор или схема обработки, узел сообщает об этом отдельной строкой, а сохранение становится недоступным с той же причиной рядом с кнопкой. Прежде у такого потока просто пустели все списки, что выглядело как поток без настроенных входов и выходов (Настроить поток).
Отказ сохранения называет причину — вместо одной общей фразы на все случаи форма сообщает, что именно помешало: истёкшее время ожидания ответа, запрет по роли или собственный отказ узла его же словами.
Подписи и выбор PID в правилах фильтрации — каждый номер подписан видом и кодеком, а на мультиплексе — ещё и программой, которой он принадлежит; в строке добавления появился список тех PID, которые источник действительно несёт. Ручной ввод при этом остаётся: транспорт может нести PID, о котором ничего не декодировано (Редактор входа и выхода).
На экранах DVB показан адресуемый номер программы — у сервиса внутри несущей T2-MI в списке программ адаптера и в его статистике стоит составной PNR, тот же, которым программа адресуется в выборе у демультиплексора, BISS и CAM. Собственный номер внутри несущей на транспондере с зеркальными группами повторяется у каждой несущей и не указывает ни на что (Статистика адаптера).
Слот BISS всегда предлагается списком — открытые программы попали в него последними, с пометкой
· clear ·, поэтому на мультиплексе без единой закодированной программы список больше не оказывается пустым: ключ нередко задают заранее, а событийный фид между событиями открыт (Дескремблирование).Из статистики потока — к транскодеру и к его источнику — если активный вход потока создан транскодером, его значение стало ссылкой на экран транскодеров с раскрытой строкой нужного экземпляра, а рядом появилась плашка с именем потока, который этот экземпляр декодирует. Обе ссылки доступны в любой роли (Статистика потока).
Границы прогонов в журнале — каждый запуск службы отмечен в ленте отдельной строкой с моментом старта и сборкой, на которой прогон поднялся: у текущего рядом стоит аптайм, у прошедших — сколько прогон проработал и сколько узел простоял до следующего запуска, а завершившийся без штатной остановки помечается особо. Разделитель ставится и при включённом фильтре по важности (Журналы).
Предел объёма базы статистики — базу метрик ограничивает не только окно хранения, но и размер. Узел отчитывается о последней чистке — сколько истории осталось, каков объём базы и сколько заняла чистка — и прямо сообщает, если предел объёма оказался жёстче настроенного окна (Настройки сервера).
Подрезанные при загрузке значения объявляются сразу — если узел, читая настройки, подтянул значение к допустимому пределу, он сообщает об этом на экране сразу после запуска, а не только строкой в журнале (Поведение при старте и ошибках конфигурации).
Лицензия устаревшего поколения не принимается — узел с подлинной лицензией прежнего поколения не запускается и поднимает отдельную аварию. Это не истёкший срок и не подделка: поколение 2 принимается только как временная пробная лицензия, поэтому бессрочная лицензия того поколения отклоняется сразу, а не доживает до даты (Каталог кодов алертов).
Автоматическое заполнение считает цель по содержимому — в автоматическом режиме битрейта узел отталкивается от фактической скорости содержимого, а не от собственного выхода, поэтому цель больше не ползёт вверх без возврата и опускается обратно, как только содержимое снова умещается в настроенную скорость (Управление битрейтом).
Окно компенсации дрейфа соразмерно буферу — мягкое окно ограничено четвертью целевого размера джиттер-буфера, но не меньше 100 мс: вход со стандартным буфером больше не работает без запаса, компенсация подтягивает синхронизацию раньше, а аварийная перестройка буфера при опустошении наконец срабатывает (Синхронизация).
Прочие улучшения и исправления ошибок.