Программные видеоплатформы
Мы разрабатываем два продукта на одном медиадвижке: медиасервер для потокового вещания и систему видеонаблюдения. Обе системы работают на ваших серверах — видео не выходит за пределы вашей сети.
Sirin Video — линейка продуктов компании Sirin. Разработка, поддержка и лицензирование — на нашей стороне.
- 2 продукта
- медиасервер и видеонаблюдение на одном ядре
- до 50 Гбит/с
- трафика с одного сервера
- 250+ потоков
- на одно логическое ядро современного процессора
- 0 перекодирований
- сервер переупаковывает, а не пережимает видео
Вырос из эксплуатации
Сегодняшние продукты — не первая версия, написанная к продаже. Платформе почти семь лет: она создавалась для внутреннего применения в группе компаний Sirin и нескольких масштабных проектах и годами работала под реальной нагрузкой, прежде чем выйти на рынок.
Отсюда характер обеих систем: требования к ним ставила эксплуатация, а не презентация. Плотность потоков, переживание обрывов, диагностика без догадок — ответы на вопросы, которые задаёт живая установка, а не слайд.
- ≈7 лет
- Почти семь лет разработки: платформа заметно старше своего появления на рынке.
- Для внутренних задач
- Изначально создавалась для внутреннего применения в группе компаний Sirin и нескольких масштабных проектах — задачи ставил не рынок, а собственная эксплуатация.
- Под реальной нагрузкой
- Годы работы в собственных установках до выхода на рынок: архитектуру проверяли живые системы, а не демонстрационные стенды.
Два продукта, одно ядро
Обе системы построены на общем медиадвижке. Он разбирает и упаковывает принятый поток один раз, а дальше эту упаковку читают все протоколы раздачи. Отсюда и общее поведение под нагрузкой, и общие приёмы настройки.
Sirin Video Streaming Server
Медиасервер: принимает видео по распространённым протоколам, раздаёт зрителям всеми сразу, ведёт архив на диск и в объектное хранилище, отдаёт видео по запросу.
Sirin Video CCTV
Видеонаблюдение на том же ядре: карточки камер, непрерывный архив, события, мозаики и разграничение доступа операторов.
Как мы работаем
Ниже — не обещания на будущее, а то, как системы устроены сегодня и как это описано в документации.
- Установка у заказчика
- Обе системы разворачиваются на ваших серверах и остаются под вашим управлением. Мы не размещаем ваше видео у себя и не требуем размещать его в чужом облаке.
- Видео не покидает сеть
- Приём, хранение и раздача происходят внутри вашего контура. Наружу не уходит ни один кадр — ни из живого эфира, ни из архива.
- Без внешних зависимостей
- Ни базы данных, ни брокера сообщений, ни отдельного веб-сервера: исполняемый файл и текстовая конфигурация. Меньше движущихся частей — меньше поводов для сбоя.
- Обычные серверы
- Linux x86-64 и оборудование общего назначения. Специализированные платы и ускорители не нужны: сервер не перекодирует видео, а перекладывает байты.
- Всё доступно по API
- Что делает панель управления, то же делает REST API. Систему можно встроить в свои процессы, а не обслуживать её руками.
- Изменения на ходу
- Часть правок конфигурации применяется без перезапуска и без разрыва соединений; правка одного потока задевает только его зрителей. Отвергнутая правка не меняет ничего.
Чем мы отличаемся: плотность потоков
Ради этого продукт и выбирают: расход линеен и предсказуем, тысячный поток стоит столько же, сколько первый.
до 50 Гбит/с
с одного сервера Верхняя граница трафика одной машины при достаточной полосе. Как и плотность, зависит от характеристик потоков.
Откуда это берётся
Ядро написано на Rust — современном высокопроизводительном языке. Дальше дело в качестве: выверенный и тщательно протестированный код и архитектура, спроектированная под эту нагрузку с самого начала. Специальные платы и ускорители не нужны.
Зрители обходятся почти даром
Вся тяжёлая работа привязана к потоку и не зависит ни от числа зрителей, ни от числа включённых протоколов. Зритель добавляет к ней только отправку байтов, поэтому рост аудитории почти не увеличивает расход процессора.
Как проходит внедрение
Систему ставите вы, на своём оборудовании и на своих источниках. Мы считаем конфигурацию под нагрузку, выдаём демо-лицензию и помогаем с настройкой — измерения при этом получаются ваши, а не наши.
- 01 Считаем нагрузку По битрейту источников, числу зрителей и глубине архива считаем сеть, диски и память. По процессору запас велик: счёт потоков идёт сотнями на логическое ядро, поэтому ограничением становится не он.
- 02 Выдаём демо-лицензию По запросу и под аппаратный отпечаток вашего сервера. Стендов у себя мы не разворачиваем: проверка идёт там, где система потом будет работать.
- 03 Вы ставите продукт Установщик сам сверяет ядро, системные библиотеки и окружение. Конфигурация — один текстовый файл.
- 04 Подключаете свои источники Свои камеры и кодировщики, своя сеть, свои протоколы раздачи. Помогаем с настройкой и разбираем непонятные места.
- 05 Снимаете показатели Занятые ядра, память, задержку и трафик показывает сам сервер — в панели, API и метриках. Цифры получаются ваши, а не наши.
- 06 Переходите на рабочую лицензию Лицензия меняется на месте: конфигурация, архив и настройки остаются нетронутыми, перенастраивать ничего не нужно.
Что нужно для расчёта
Считаем от мегабит в секунду: ни разрешение, ни кодек сами по себе в расчёт не входят — вдвое более «тяжёлый» источник стоит вдвое дороже по процессору, памяти и сети.
- Сколько источников и с каким битрейтом
- Каким протоколам и скольким зрителям раздавать
- Какая доля раздачи пойдёт поверх TLS
- Нужен ли архив и на какую глубину
- Нужен ли холодный ярус в объектном хранилище
- Где стоят источники: своя сеть, NAT, канал до них
Требования к серверу
Это всё, что нужно с вашей стороны, чтобы установка прошла. Установщик сверяет перечисленное сам.
Таблица прокручивается вбок.
| Что нужно | Значение | Почему так |
|---|---|---|
| Архитектура | x86-64 | Оборудование общего назначения; специальные платы и ускорители не нужны |
| Ядро Linux | 5.1 и новее | Рекомендуется 5.15 и новее |
| io_uring | разрешён в ядре | Политика безопасности, запрещающая io_uring, с продуктом несовместима |
| Библиотека C | glibc 2.31 и новее | Нижняя граница сборки — чаще всего установке мешает именно она |
| Инициализация | systemd | Служба ставится юнитом; дополнительно нужен openssl |
| Права запуска | root | Системные настройки при старте и чтение аппаратного отпечатка |
| Процессор | от 2 ядер, дальше по расчёту | Важно число ядер, а не частота одного |
| Память | от 1 ГБ, дальше по расчёту | Считается по числу и битрейту потоков плюс 100–150 МБ на сам процесс |
| Диск под программу | 100 МБ, лучше 1 ГБ | Журналы и состояние сертификатов |
| Диск под архив | отдельный том | 10,8 ГБ на каждый Мбит/с в сутки; на системном разделе архив не размещают |
| Сеть | полоса под исходящий трафик | Битрейт × число зрителей; потолком чаще всего становится именно она |
| Виртуализация | закреплённые ядра | «Плавающие» vCPU дают разброс задержки, а у клона машины другой аппаратный отпечаток |
У видеонаблюдения серверов два: управляющий узел и медиаузел. Таблица описывает медиаузел — он и есть медиасервер. Требования к управляющему узлу мягче: видео через него не идёт, зато ему нужна база данных, и установщик ставит и настраивает её сам.
Что вы получаете
Один набор файлов и всё, что к нему прилагается. Отдельных модулей, доплат за протоколы раздачи и «расширенных редакций» нет: лицензия считает только число одновременных потоков.
- Исполняемый файл и юнит
- Сам сервер и готовая служба systemd с поднятыми лимитами дескрипторов и памяти.
- Установщик и скрипт удаления
- Проверка хоста, установка, конфигурация, лицензия, запуск — и обратная операция.
- Шаблон конфигурации
- Рабочий файл, с которого начинают, и сетевые параметры ядра, которые установщик кладёт сам.
- Панель, API и метрики
- Веб-интерфейс, REST API со спецификацией OpenAPI, метрики, поток событий и журнал аудита.
- Встраиваемый плеер
- Страница просмотра без внешних зависимостей: ни библиотек с чужих сайтов, ни шрифтов, ни счётчиков.
- Документация
- Полные справочники и сценарии — по ним систему разворачивают и без нашего участия.
У видеонаблюдения таких наборов два — для управляющего узла и для медиаузла, — и ставятся они по очереди: сначала управляющий узел, затем медиаузлы, которые привязываются к нему.
Что входит в поддержку
- Расчёт под нагрузку
- Считаем память, диски и сеть под нужное число потоков и зрителей. Опора простая: стоимость потока пропорциональна его битрейту, а по процессору запас велик — счёт идёт сотнями потоков на логическое ядро.
- Демо-лицензия по запросу
- Проверка идёт на вашем оборудовании и ваших источниках: демо-лицензия выпускается под отпечаток вашего сервера, мы помогаем с настройкой и разбором показателей.
- Установка с проверками
- Установщик сам сверяет версию ядра, системные библиотеки и окружение. Если что-то не подходит, он называет точную причину, а не выдаёт общую ошибку.
- Закрытый контур
- Медиасервер работает и в сети без доступа в интернет: лицензия выдаётся файлом и проверяется локально. Для видеонаблюдения нужен исходящий HTTPS: медиаузел активируется онлайн.
- Диагностика без догадок
- Метрики для систем мониторинга, журнал, поток событий и аудит действий. В документации есть готовый список данных, которые стоит собрать перед обращением.
- Подробная документация
- Полные справочники конфигурации и REST API с примерами команд: по ним систему разворачивают и без нашего участия.
- Обновление версии
- Установщик новой версии заменяет исполняемый файл и оставляет вашу конфигурацию, лицензию и архив нетронутыми. Обратная операция — скрипт удаления.
- Переезд на другой сервер
- Аппаратный отпечаток нового сервера другой, поэтому лицензию перевыпускаем. Плановый переезд стоит согласовать заранее, а не в последний момент.
На нашей стороне
- Новые версии и исправления
- Выпуск, продление и перевыпуск лицензии
- Помощь при первой настройке
- Разбор показателей вашего замера
- Документация и справочники
- Ответы на обращения по собранным данным
На вашей стороне
- Сервер, операционная система и её обновления
- Сеть до источников и до зрителей
- Диски под архив и их ёмкость
- Учётные данные, токены и права доступа
- Резервные копии конфигурации и данных
- Внешний мониторинг и оповещения
Границу мы проговариваем до продажи, а не после неё. Всё, что нужно для самостоятельной эксплуатации, опубликовано: справочник каждой директивы, полное описание REST API, методика расчёта и разбор типовых неисправностей.
Лицензия по числу потоков
Лицензия считает ёмкость сервера, а не аудиторию: сколько потоков он ведёт одновременно. Ни число зрителей, ни часы записи, ни число протоколов раздачи на стоимость не влияют.
- По числу потоков
- Лицензия задаёт предел одновременно работающих потоков. Он проверяется в момент запуска потока, а перезапуск уже работающего лимитом не ограничивается — обновление конфигурации не рвёт эфир. Число зрителей и часы записи в лицензию не входят.
- Привязка к оборудованию
- Лицензия выдаётся на аппаратный отпечаток сервера. Отпечаток считается по нескольким независимым источникам, каждый из которых хешируется, — сами идентификаторы наружу не попадают. Совпадение не побайтовое: замена сетевой карты или диска лицензию не ломает, полная замена сервера — ломает.
- Активация онлайн или офлайн
- Онлайн: код активации и исходящее HTTPS-соединение; разрешение хранится только в памяти процесса, обновляется каждые 12 часов, а действует двое суток, поэтому недоступность службы активации на несколько часов работу не останавливает. Офлайн — для медиасервера: файл лицензии, привязанный к отпечатку, проверяется локально по подписи и не требует ни одного соединения.
- Срок и обновления
- Лицензия бывает бессрочной или на срок. Отдельно оговаривается право на обновления: оно ограничивает переход на сборки, выпущенные позже указанной даты, но не работу уже установленной.
Без действующей лицензии
Сервер не «выключается»: он остаётся полностью управляемым, но не пропускает через себя видео.
Работает
- Панель управления
- REST API целиком
- Метрики, журнал и события
- Правка конфигурации и перезапуск
Не работает
- Раздача видео зрителям
- Просмотр архива и видео по запросу
- Превью-кадры
- Приём потоков от источников
Ограничение снимается само, как только лицензия снова даёт ёмкость: перезапускать сервер и чинить что-то руками не нужно.
В системе видеонаблюдения лицензируются серверы, через которые проходит видео. Управляющий узел лицензии не требует, поэтому систему можно развернуть и настроить заранее, а лицензию установить позже — настройки при этом не теряются. Такие серверы активируются онлайн, и им нужен исходящий HTTPS.
Обсудим вашу задачу
Расскажите, что нужно принимать, раздавать и хранить. Подберём конфигурацию под нагрузку и выдадим демо-лицензию — проверите на своём оборудовании.