SirinVideo — документация медиасервера
Медиасервер: приём видео по любым протоколам, раздача зрителям, архив (DVR), видео по запросу и разграничение доступа.
SirinVideo — медиасервер общего назначения. Он принимает видеопотоки от камер, кодировщиков и других серверов, раздаёт их зрителям по всем распространённым протоколам, ведёт архив с записью на диск и в объектное хранилище, отдаёт видео по запросу (VoD) и разграничивает доступ к потокам.
Один исполняемый файл, один текстовый файл конфигурации, никаких внешних зависимостей: ни базы данных, ни брокера сообщений, ни отдельного веб-сервера.
С чего начать#
hastreamer.conf с типами и умолчаниями.
Авторизация →Кто и как получает доступ к потокам, панели и API.
Что умеет сервер#
| Возможность | Описание |
|---|---|
| Приём видео | RTSP (TCP/UDP), HLS, DASH, MPEG-TS (UDP/multicast), RTMP(S), файлы, синтетический источник |
| Приём публикации | RTMP(S) push от кодировщиков, WHIP (WebRTC) из браузера |
| Раздача | HLS (fMP4 и TS), LL-HLS, DASH, MSE-WS, HTTP-TS, RTSP, RTMP, WHEP (WebRTC), превью-кадры |
| Архив (DVR) | Непрерывная запись на локальные диски и в S3-совместимое хранилище, глубина по времени и объёму, экспорт фрагментов |
| Видео по запросу | Раздача готовых файлов из каталога с перемоткой, теми же протоколами, что и живое видео |
| Кластер | Несколько серверов как один: размещение потоков, единый список сессий, прокси к соседям |
| Наблюдаемость | REST API, метрики в формате Prometheus, поток событий SSE, журнал в кольцевом буфере |
| Разграничение доступа | Токены и JWT на просмотр и публикацию, внешняя служба авторизации, отдельные токены на API |
Чего сервер не делает#
Честный список важнее длинного. Эти задачи решаются вне сервера:
- Транскодирование. Сервер не меняет кодек и разрешение потока. Он раздаёт то, что принял, переупаковывая контейнер (RTSP → HLS, RTMP → MSE-WS и так далее) без перекодирования. Готовьте нужные профили на камере или кодировщике.
- Видеоаналитика. Детекторы движения, распознавание номеров и лиц не входят в состав.
- Хранение метаданных о пользователях. Собственной базы пользователей нет: доступ к потокам проверяется по токену либо у внешней службы авторизации — см. Модель доступа.
Если вам нужны карточки камер, роли операторов, организации, журнал событий и мобильное приложение — это отдельный продукт линейки, с контрол-плейном и управляемыми узлами. Здесь описан медиасервер общего назначения, который настраивается файлом конфигурации.
Как он устроен снаружи#
/usr/local/bin/hastreamer /etc/hastreamer/hastreamer.conf
Путь к конфигурации — первый аргумент командной строки. Служба hastreamer.service передаёт
/etc/hastreamer/hastreamer.conf.
| Поверхность | Адрес после установки по умолчанию |
|---|---|
| Панель управления | http://media.example.com:8080/admin/ |
| REST API | http://media.example.com:8080/api/v1 |
| Плеер потока | http://media.example.com:8080/<поток>/embed.html |
| Метрики Prometheus | http://media.example.com:8080/metrics |
| Раздача RTSP | rtsp://media.example.com:8554/<поток> |
| WebRTC | UDP-порт 40000 |
Минимальная рабочая конфигурация#
http 8080; rtsp 8554; auth { admin_password "смените-этот-пароль"; } stream cam1 { input rtsp://admin:пароль@10.0.0.10:554/Streaming/Channels/101; }
Этого достаточно, чтобы камера принималась и раздавалась зрителям по HLS, RTSP, MSE-WS и WebRTC одновременно — отдельно включать протоколы раздачи не нужно.
hastreamer --validate /etc/hastreamer/hastreamer.conf разбирает файл и печатает ошибку с номером
строки, ничего не запуская. Подробнее — Применение изменений.
Лицензирование#
Работающая лицензия нужна для раздачи медиа. Без неё панель управления и API отвечают, но ни один кадр не отдаётся — это штатное поведение, а не сбой. Настроек у лицензирования нет: путь к файлу лицензии и адрес активации зашиты в сборку. См. Лицензирование.
Куда двигаться дальше#
- Архитектура — что происходит внутри между приёмом и раздачей.
- Термины — короткий словарь: поток, профиль, сегмент, сессия, грант.
- Приём видео: обзор — какой источник выбрать под вашу задачу.
- Протоколы раздачи — что выбрать для браузера, мобильного и стены.