Сравнение RUSEON Core и go2rtc
go2rtc — популярный медиашлюз на Go/Python для сообщества Home Assistant и систем умного дома.
В то время как go2rtc ориентирован на домашние инсталляции (5–30 камер), RUSEON Core создан для промышленного видеонаблюдения высокой плотности (600+ камер) и отказоустойчивой круглосуточной записи.
1. Ключевые архитектурные различия
1. Масштабирование на 600+ камер
- go2rtc: Оптимизирован для небольших домашних конфигураций. При росте числа камер свыше 50–100 потоков отсутствие изоляции буферов может приводить к деградации производительности.
- RUSEON Core: Построен на изолированных кольцевых буферах
RingBuffer. Подтверждён тестом с 600 одновременными камерами 30 FPS (1.34 Гбит/с трафика) без единого сброшенного кадра с расходом 471 МБ RSS RAM и ~3.6 ядер CPU на 12-ядерном сервере.
2. Встроенный 24/7 архив fMP4 против сторонних интеграций
- go2rtc: Не содержит встроенного движка записи fMP4 с прямым вводом-выводом Linux. Требует внешних систем записи (Frigate или Home Assistant).
- RUSEON Core: Содержит встроенный Linux Direct I/O fMP4 Archiver с вызовами
sync_file_rangeиPOSIX_FADV_DONTNEED, часовой ротацией, защитой от сбоев питания и мгновенным таймшифтом без дублирования файлов HLS на диске.
3. Сетевой стек WebRTC: Адаптивный батчинг sendmmsg
- go2rtc: Отправляет RTP-пакеты через стандартные одиночные сокеты UDP.
- RUSEON Core: На Linux пакетирует до 32 RTP-пакетов или сбрасывает батч по маркерному биту кадра ($M=1$), экономя 85–90% системных вызовов к ядру.
2. Сводная таблица сравнения
| Функция | RUSEON Core | go2rtc |
|---|---|---|
| Целевой масштаб | Промышленный (50 – 600+ камер) | Умный дом (5 – 30 камер) |
| Входящий протокол | RTSP (H.264 / H.265) | RTSP, WebRTC, HomeKit, MSE |
| 24/7 fMP4 Архив | ✅ Встроенный Direct I/O | ❌ Нет (Требует сторонний NVR) |
| Защита Page Cache | ✅ POSIX_FADV_DONTNEED | ❌ Нет |
| Батчинг WebRTC UDP | ✅ sendmmsg (32 пкт / M=1) | ❌ Стандартные вызовы |
| База данных | ✅ BadgerDB (ACID LSM) | ❌ Только YAML |
| Интерфейс пользователя | ✅ Встроенный React 19 | ⚠️ Базовая страница HTML |