Функциональные характеристики
Эта страница — карта всего продукта: что Catena делает для оператора сегодня и что будет делать. Это справочник, а не инструкция: каждая возможность описана одной строкой, а то, чем уже можно пользоваться, разобрано на страницах этого мануала.
В Catena два слоя, и лицензируются они раздельно: можно взять только движок доставки, а абонентский сервис добавить, когда он понадобится.
- Движок доставки принимает каналы, обрабатывает их, пишет архив и отдаёт зрителям. Если у вас уже есть портал или middleware, подключать к ним нужно именно этот слой.
- Абонентский сервис превращает каналы в продукт: порталы, пакеты, телепрограмма, абоненты и приложения, в которых они смотрят.
Как читать статус
| Статус |
Что означает |
| есть |
Работает в текущем релизе, описано или описывается |
| в разработке |
Делается прямо сейчас — экран или API могут быть неполными |
| в планах |
Решено и стоит в дорожной карте, работа не начата |
Дат и номеров версий здесь намеренно нет: карта возможностей, обещающая кварталы, устаревает быстрее, чем её читают. За сроками — к вашему менеджеру.
Движок доставки
Приём видео
| Возможность |
Статус |
Что это |
| Источники по RTMP, RTSP, MPEG-TS (UDP и HTTP), HLS, M4F |
есть |
Обычные способы, которыми канал приходит с головной станции или от партнёра |
| Приём мультикаста |
есть |
Забрать SPTS прямо из сети оператора |
| Приём по SRT |
есть |
Забрать сигнал по ненадёжному каналу связи, с парольной фразой |
| Точка публикации |
есть |
Дальняя сторона отдаёт поток в Catena сама, а не мы её опрашиваем |
| Синтетический источник |
есть |
Встроенный генератор: проверить тракт до того, как появился реальный сигнал |
| Резервные источники с приоритетом |
есть |
Упорядоченный список; при пропаже канал уходит на следующий |
| Подменный файл |
есть |
Ролик в эфире, когда не отвечает ни один источник |
| Пороги качества источника |
есть |
Таймауты, нижняя и верхняя границы битрейта, ошибки непрерывности MPEG-TS |
| Состояние источника с причиной |
есть |
Работает, деградировал или мёртв — и почему, по каждому источнику |
| Приём MPTS с выбором программ |
в планах |
Забрать мультиплекс и вынуть из него нужные программы |
| Платы захвата DVB-C/T/S |
в планах |
Каналы прямо с кабельного, эфирного или спутникового тюнера |
Обработка видео
| Возможность |
Статус |
Что это |
| Транскодирование в H.264 и H.265 |
есть |
Привести любой источник к тому, что устройства зрителей действительно декодируют |
| Лестница ABR |
есть |
Несколько версий канала: разрешение, битрейт, GOP и стратегия ресайза на каждой ступени |
| Выбор дорожки по идентификатору или языку |
есть |
Как каждый вход преобразуется в выход |
| Кодирование аудио по дорожкам |
есть |
Свой кодек и битрейт для каждой звуковой дорожки |
| Миниатюры |
есть |
Кадры для превью перемотки и плиток канала — с ключевых кадров или по HTTP |
| Автоматические субтитры из речи |
в разработке |
Распознавание речи превращает звук в дорожку субтитров |
| Субтитры DVB, телетекст, CEA-608 в WebVTT |
в разработке |
Довести вещательные субтитры до форматов, которые понимают OTT-плееры |
| Аппаратное транскодирование: NVENC, Quick Sync |
в планах |
Плотность на GPU вместо кодирования только на процессоре |
| Деинтерлейсинг |
в планах |
Чересстрочные вещательные сигналы в прогрессивные для OTT-устройств |
| Наложение логотипа и текста |
в планах |
Плашка канала и надписи поверх картинки, включая бегущие часы |
| Нормализация громкости |
в планах |
Привести каналы к одной громкости вместо ручной регулировки усиления |
| Маркеры SCTE-35 |
в планах |
Прочитать метки склейки и выдать их дальше во всех выходных протоколах |
Архив, catch-up и timeshift
| Возможность |
Статус |
Что это |
| Запись архива |
есть |
Писать канал с ограничением по глубине и объёму |
| Архив на нескольких дисках |
есть |
Несколько точек монтирования на стример, с проверкой монтирования и состоянием дисков |
| Воспроизведение архива по диапазону |
есть |
Проиграть любой прошедший интервал по его границам в UTC |
| Catch-up по передаче |
в планах |
Зритель выбирает передачу в программе, и она играет с начала |
| Startover и пауза эфира |
в планах |
Перейти к началу идущей передачи и поставить живой канал на паузу |
| Относительный и абсолютный timeshift |
в планах |
Играть на N секунд позади эфира или с конкретного момента по часам |
| Канал со сдвигом часового пояса |
в планах |
Отдельный поток «+2 часа»: читается из архива один раз и отдаётся всем |
| Сетевой PVR |
в планах |
Записи по заказу абонента, живущие дольше, чем архив самого канала |
| Защищённые участки архива |
в планах |
Закрепить интервал, чтобы его не удалило по сроку хранения |
| Репликация архива между стримерами |
в планах |
Запись переживает потерю машины, которая её сделала |
| Архив в S3 |
в планах |
Убрать глубину в объектное хранилище вместо локальных дисков |
| SSD-кеш горячего архива |
в планах |
Прайм-тайм отдаётся с SSD, но платить за весь архив на SSD не нужно |
Доставка зрителю
| Возможность |
Статус |
Что это |
| HLS и LL-HLS |
есть |
Основной способ, которым смотрят зрители, и его низколатентный вариант |
| DASH |
есть |
Второй формат манифеста — для устройств, которые предпочитают его |
| Отдача MPEG-TS и fMP4 |
есть |
Простой транспорт для приставок и для других серверов |
| Встроенный плеер |
есть |
Посмотреть канал прямо из консоли, ничего не настраивая |
| CDN-зоны |
есть |
Зрителя направляют по его IP на стримеры его зоны |
| Балансировщик |
есть |
Плеер приходит на один адрес, а его отправляют на стример, который ведёт этот канал |
| Отдача в мультикаст |
в планах |
Раздавать каналы своим абонентам в управляемой сети через мультикаст-группы |
| Дорожки миниатюр в манифестах |
в планах |
Превью на таймлайне плеера |
| Фильтрация дорожек в URL |
в планах |
Запросить конкретный набор видео, звука и субтитров |
| Маршрутизация по географии |
в планах |
Выбирать edge по местоположению зрителя, а не только по его подсети |
| Smooth Streaming (MSS) |
в планах |
Путь для старых устройств и PlayReady |
Доступ и защита
| Возможность |
Статус |
Что это |
| Учётные данные оператора и API-ключи |
есть |
Вход в консоль и bearer-ключи для API управления |
| Join-токены и ключи стримеров |
есть |
Как машина попадает в кластер и чем аутентифицируется дальше |
| Бэкенды авторизации воспроизведения |
в разработке |
Catena спрашивает ваш сервис, можно ли играть сессию; экран есть, API переезжает |
| Подписанные ссылки |
в планах |
Хешированная ссылка со сроком жизни и привязкой к IP, проверяется без обращения наружу |
| Несколько источников авторизации сразу |
в планах |
Опросить несколько бэкендов параллельно; первый положительный ответ побеждает |
| Ограничение одновременных сессий |
в планах |
Предел потоков на абонента и защита от переданного пароля |
| Географические ограничения |
в планах |
Соблюдение территориальных прав при воспроизведении |
| Domain lock, CORS и списки IP |
в планах |
Где можно встраивать поток и кто вправе его запрашивать |
| DRM: Widevine, PlayReady, FairPlay |
в планах |
Студийная защита с ключами вашего DRM-вендора по CPIX |
| DRM на архиве и VOD |
в планах |
Та же защита на catch-up и файлах, с ротацией ключей |
Реклама
| Возможность |
Статус |
Что это |
| Серверная вставка рекламы |
в планах |
Реклама вшивается в поток, поэтому блокировщики не видят отдельного запроса |
| Вставка по меткам SCTE-35 |
в планах |
Подменять те блоки, которые вещатель уже разметил |
| Вставка по расписанию |
в планах |
Блоки там, где в источнике меток нет |
| Решение о ролике на вашей стороне |
в планах |
Какой ролик увидит конкретный зритель, решает ваша система |
| Учёт показов |
в планах |
Записи о том, что зрителю действительно показали |
Кластер и отказоустойчивость
| Возможность |
Статус |
Что это |
| Реестр стримеров |
есть |
Все машины, их состояние и телеметрия на одном экране |
| Присоединение стримера |
есть |
Окно с ограниченным сроком и токен вместо правки файлов |
| Автоматическое размещение каналов |
есть |
Central решает, какой стример ведёт какой канал |
| История и причины размещения |
есть |
Почему канал именно здесь и что его перенесло |
| Восстановление после потери стримера |
есть |
Каналы умершей машины переразмещаются на живые |
| Доставка конфигурации |
есть |
Central хранит настройки и следит за желаемым, скачанным и применённым на каждом стримере |
| Лимит каналов на стример |
в планах |
Ограничить, сколько берёт одна машина; ноль оставляет её в кластере, но пустой |
| Резервное копирование базы |
в планах |
Штатная процедура вместо самописного pg_dump |
| Расчёт запаса мощности |
в планах |
Сколько нужно headroom, чтобы кластер пережил потерю машины |
Наблюдаемость и эксплуатация
| Возможность |
Статус |
Что это |
| Дашборд |
есть |
Вся инсталляция на одном экране: машины, каналы, трафик, ошибки |
| Телеметрия стримеров |
есть |
CPU, сеть, запущенные каналы, ёмкость архива, аптайм, последний контакт |
| Живые сессии зрителей |
есть |
Кто что смотрит и с какого стримера, с фильтрами и принудительным обрывом |
| История сессий |
есть |
Закрытые сессии с длительностью, объёмом и причиной завершения |
| Встроенный сервер метрик |
есть |
Запросы, совместимые с Prometheus, и источник данных для Grafana — без отдельных частей |
| Структурированные логи и трассировка |
есть |
Машиночитаемые логи и трассы OpenTelemetry, чтобы проследить запрос |
| Retroview |
есть |
Облачный мониторинг вендора с длинной историей и готовыми алертами |
| Экран логов в консоли |
в планах |
Читать логи кластера, не заходя в шелл |
| Алерты в почту, Telegram, вебхук |
в планах |
Узнавать об умершем канале, а не замечать его |
| SNMP |
в планах |
Интеграция с существующим NOC |
| События и вебхуки |
в планах |
Отдавать наружу то, что произошло, с повторами при сбое |
| Телеметрия качества с плееров |
в планах |
Ребуферизация, время старта и ошибки глазами устройства зрителя |
Абонентский сервис
Этот слой превращает поток в телевизионный продукт. Берите его, если операторской ТВ-системы у вас нет; пропускайте и подключайте свой портал по API, если она уже есть.
Порталы и мультиарендность
| Возможность |
Статус |
Что это |
| Портал как арендатор |
в планах |
Отдельные абоненты, каналы и пакеты на общей инфраструктуре |
| Брендирование портала |
в планах |
Логотип и названия, которые видны в приложениях и в сторах |
| Свой домен у портала |
в планах |
Каждый бренд отвечает на своём адресе |
| Свой API-ключ у портала |
в планах |
Интеграции ограничены одним арендатором |
| Один источник на несколько порталов |
в планах |
Один и тот же сигнал обслуживает несколько брендов и принимается один раз |
Каналы, пакеты и телепрограмма
| Возможность |
Статус |
Что это |
| Шаблоны каналов |
в разработке |
Настройки, написанные один раз и применённые к сотням каналов |
| Каталог каналов |
в планах |
Название, логотип и привязка к программе поверх технического потока |
| Пакеты |
в планах |
Именованные наборы каналов — то, что абонент на самом деле покупает |
| Бесплатные пакеты |
в планах |
Каналы, которые получает каждый абонент без подписки |
| Телепрограмма из XMLTV |
в планах |
Импорт расписания от вашего поставщика с автообновлением |
| Телепрограмма из транспортного потока |
в планах |
Забрать EPG из DVB EIT, когда XMLTV-фида нет |
| Диагностика импорта программы |
в планах |
Что скачано, что изменилось, что не получилось и когда |
| API передач |
в планах |
Запросы к расписанию для приложений и интеграций |
Абоненты и подписки
| Возможность |
Статус |
Что это |
| Учётные записи абонентов |
в планах |
Тот, кто смотрит, и то, на что он имеет право |
| Вход по телефону и SMS-коду |
в планах |
Никаких паролей для зрителя |
| Регистрация при первом входе |
в планах |
Учётная запись появляется сама, если вы это разрешили |
| Токен воспроизведения у абонента |
в планах |
То, что стример проверяет, прежде чем отдать сессию |
| Подписки на пакеты |
в планах |
Доступ выдаётся и отзывается немедленно |
| Блокировка абонента |
в планах |
Закрыть доступ, не теряя учётную запись и её историю |
| Пробные и промо-периоды |
в планах |
Доступ на срок как функция продукта, а не как cron-скрипт |
| Интеграция с биллингом |
в планах |
Ваш биллинг управляет подписками по API и вебхукам |
Приложения для зрителей
| Возможность |
Статус |
Что это |
| Приложение для Android TV и приставок |
в планах |
Основной экран для абонентов оператора |
| Веб-плеер для зрителя |
в планах |
Смотреть, ничего не устанавливая |
| Брендирование оператором |
в планах |
Приложение выходит под вашим именем и логотипом |
| Список каналов с «сейчас» и «далее» |
в планах |
Что идёт и что будет после |
| Catch-up из телепрограммы |
в планах |
Выбрать прошедшую передачу и посмотреть её с начала |
Аналитика и аудит
| Возможность |
Статус |
Что это |
| Сессии просмотра |
есть |
Живая и историческая запись того, кто что смотрел |
| Аудитория по каналам |
в планах |
Рейтинги и динамика вместо сырых сессий |
| Трафик по абонентам |
в планах |
Байты в привязке к абоненту — для тарификации |
| Журнал операций |
в планах |
Кто что изменил и когда, включая изменения подписок |
Сотрудники оператора и права
| Возможность |
Статус |
Что это |
| Учётные данные оператора |
есть |
Одна пара логина и API-ключи на всю инсталляцию |
| Несколько учётных записей сотрудников |
в планах |
Именованные люди вместо общего пароля |
| Разграничение прав |
в планах |
Отдельные права на инфраструктуру, контент и абонентов |
Интеграции
| Возможность |
Статус |
Что это |
| API управления |
есть |
Всё, что делает консоль, доступно вашим системам |
| Подключение стороннего портала |
есть |
Оставить свой портал и управлять Catena по API |
| Схема OpenAPI и SDK |
в разработке |
Сгенерированные клиенты вместо самописных HTTP-вызовов |
| Внешнее наполнение списка каналов |
в планах |
Catena спрашивает ваш сервис, какие каналы должны быть, и приводит себя в соответствие |
| Исходящие вебхуки |
в планах |
События уходят в ваши системы, с повторами при сбое |
Что Catena не делает
Это сознательно оставлено за пределами продукта. Названное здесь экономит созвон:
- Камеры, видеонаблюдение, выгрузка записей и проксирование просмотра — подключение камер (в том числе через агент до камер без публичного адреса), вырезание куска архива в файл MP4 и проксирование просмотра через управляющий сервер это Watcher.
- WebRTC и NDI — публикация по WHIP, воспроизведение по WHEP, захват NDI и построенные вокруг них продукты это Agora.
- Бейсбенд, раздача каналов наружу и транспортный мультиплекс DVB — приём с SDI, ASI и ST-2110, отдача каналов третьим сторонам по RTMP, SRT и MPEG-TS и сборка MPTS с таблицами SI/NIT/SDT и логическими номерами каналов это Mcaster. За Catena остаются два направления, нужные её собственному сервису: приём по SRT и отдача в мультикаст своим абонентам.
- Условный доступ для вещания — CAS и скремблирование для кабельных и спутниковых сетей. В управляемой сети ту же задачу иначе закрывают изоляция и DRM.
- Биллинг и тарификация — Catena знает, кому что положено, и никогда не знает, сколько это стоит. Цены, счета и платежи живут в вашем биллинге, который управляет Catena по API.