Releases: OpenIPC/dashboard
Dashboard for OpenIPC v0.1.6
🎥 Video Player & Streaming Enhancements
Advanced Player Configuration: Added a dedicated settings section for fine-tuning playback:
Buffer Mode: Configurable strategies (One, Zero, Balanced, Smooth) to prioritize between ultra-low latency and playback smoothness.
RTSP Transport: Option to force transport protocols (TCP, UDP, HTTP) for better network compatibility.
Hardware Acceleration: Expanded decoding options now include DXVA, D3D11, CUDA, QuickSync, and Auto selection.
Video Tools: Added Horizontal Video Mirroring support (essential for HUDs and teleprompter applications).
SDK Update: Updated backend to the latest version of MDK-SDK for better stability.
🛡️ User Management System (RBAC)
Role-Based Access Control: Introduced "Administrator" and "Operator" roles.
Granular Permissions: Implemented a bitmask-based permission system (Dahua-style). Permissions can now be toggled individually per user:
Live View / Archive Playback
PTZ Control
Video Export
System Settings / User Management
Account Management: Added functionality to Create/Delete users and Change passwords. Secure storage of user data implemented via users.json.
🚀 Performance & Optimization
Memory Leak Fixes:
Analytics Optimization: Reduced frame sampling rate from MdkPlayer to the Analytics module (from 30 FPS to 5 FPS). This resolved event queue overflows and critical RAM usage spikes (e.g., "8GB usage in 3 hours" issue).
Log Rotation: Implemented a memory limit for logs (max 2000 entries) with auto-cleanup of old records.
Low Latency: Optimized default buffering parameters for instant RTSP stream startup.
🎨 UI/UX & Design
Global Dark Theme: Unified all modal windows to match the application style (Background #252526, Accent #4caf50).
Custom Controls: Replaced native checkboxes with StyledCheckBox components. Standardized action buttons ("Save", "Add") with consistent green styling.
Layout Fixes: Improved dialog sizing for "Add User" and "Settings" windows to prevent content clipping.
🔧 Bug Fixes
Grid Stability: Fixed a critical issue where the camera grid cells would collapse or shift incorrectly when adding/removing streams. Implemented strict unit-based sizing logic.
🇷🇺 Русский
🎥 Видеоплеер и Потоковая передача
Расширенные настройки плеера: В меню настроек добавлены новые опции для управления воспроизведением:
Режим буферизации (Buffer Mode): Выбор стратегии (One, Zero, Balanced, Smooth) для баланса между минимальной задержкой и плавностью картинки.
RTSP Транспорт: Возможность принудительного выбора протокола (TCP, UDP, HTTP) для работы в сложных сетях.
Аппаратное ускорение: Расширен список поддерживаемых декодеров: добавлены DXVA, D3D11, CUDA, QuickSync и режим Auto.
Инструменты видео: Реализована функция Горизонтального зеркалирования (отражение видео), полезная для HUD-дисплеев и телесуфлеров.
Обновление SDK: Бэкенд обновлен до последней версии MDK-SDK для повышения стабильности.
🛡️ Система управления пользователями (RBAC)
Ролевая модель: Введена поддержка ролей «Администратор» и «Оператор».
Гранулярные права доступа: Внедрена система прав на основе битовой маски. Для каждого пользователя можно отдельно настроить доступ к функциям:
Просмотр (Live) / Архив (Playback)
Управление PTZ
Экспорт видео
Настройки системы / Управление пользователями
Управление аккаунтами: Добавление и удаление пользователей, смена паролей. База пользователей теперь хранится в защищенном виде (users.json).
🚀 Производительность и Оптимизация
Устранение утечек памяти:
Оптимизация аналитики: Частота отправки кадров из видеоплеера в модуль аналитики снижена с 30 до 5 FPS. Это устранило переполнение очереди событий и критический рост потребления RAM (проблема "8 ГБ за 3 часа").
Ротация логов: Введен лимит на хранение логов в памяти (максимум 2000 записей), старые записи удаляются автоматически.
Низкая задержка: Оптимизированы параметры предзагрузки для мгновенного старта RTSP-потоков.
🎨 Интерфейс и Дизайн (UI/UX)
Глобальная темная тема: Все модальные окна приведены к единому стилю приложения (фон #252526, акцент #4caf50).
Кастомные элементы: Стандартные чекбоксы заменены на компонент StyledCheckBox в темном стиле. Кнопки действий («Сохранить», «Добавить») унифицированы.
Исправления верстки: Скорректированы размеры окон добавления пользователей и настроек для улучшения читаемости.
🔧 Исправления ошибок
Стабилизация сетки камер: Исправлена критическая ошибка, из-за которой ячейки сетки могли "схлопываться" или смещаться при добавлении/удалении камер. Реализован строгий контроль размеров ячеек.
Dashboard for OpenIPC v0.1.5
See the assets to download this version and install.
Dashboard for OpenIPC v0.1.3
Actually, there are far more changes and fixes; this description covers only a small part of the work done!
Snapshot System Improvements
Forced HD Quality: Snapshots are now always captured from the High Definition (HD) stream, regardless of the currently viewed stream quality (SD/HD) in the grid.
Archive & Recording Optimization
Instant Playback: Fixed the issue where recorded video segments took a long time to "index" before becoming playable.
Fragmented MP4: Switched the recording format to use Fragmented MP4 (frag_keyframe+empty_moov). This eliminates the post-processing step, making video files immediately available for playback in the archive and preventing data loss if the recording is interrupted abruptly.
Backend & Stability
Dynamic Configuration: The snapshot system now correctly respects custom Go2RTC API addresses and ports.
Stream Validation: Added pre-checks to verify stream availability before attempting operations, providing clearer error messages.
Улучшение системы скриншотов
Всегда HD качество:
Теперь скриншоты всегда сохраняются с потока высокого разрешения (HD), даже если в данный момент вы просматриваете камеру в низком качестве (SD).
Оптимизация архива и записи
Мгновенное воспроизведение: Исправлена проблема, из-за которой записанные отрезки видео долго "индексировались" на диске перед тем, как стать доступными для просмотра.
Фрагментированный MP4: Формат записи изменен на фрагментированный MP4 (frag_keyframe+empty_moov). Это убрало необходимость в финальной обработке файла. Записи теперь доступны в архиве мгновенно, а риск потери данных при сбое питания сведен к минимуму.
Бэкенд и стабильность
Динамическая конфигурация: Система снимков теперь корректно работает с нестандартными адресами и портами API Go2RTC.
Валидация потоков: Добавлены предварительные проверки
наличия потоков перед выполнением операций, что обеспечивает более понятные сообщения об ошибках.
Dashboard for OpenIPC v0.1.2
Добавлены новые возможности в файловом менеджере: появились кнопки удаления и открытия расположения файла, поддерживающие как локальные, так и удалённые каталоги, с проверками на безопасность и уведомлениями для пользователя. На бекенде реализованы команды camera_remote_delete, local_fs_delete, local_reveal_path, зарегистрированы в Tauri и используют существующую SSH/FS инфраструктуру. Обновлены локализации en.json и ru.json, чтобы новые действия корректно отображались на двух языках; интерфейс в FileManager.tsx расширен обработчиками и виджетами для новых команд. Сборка (npm run build, npm run tauri) проходит успешно, что подтверждает целостность проекта.
Удаление файлов доступно в обеих панелях, запрещено на корневом уровне, ошибки показываются через текущую систему тостов.
Кнопка “Открыть папку” мгновенно вызывает проводник на локальной машине для выбранного файла или каталога.
Сообщения об успехе/ошибках локализованы; интерфейс остаётся консистентным между EN/RU.
Регрессий не выявлено; рекомендуемый сценарий проверки — удалить/открыть несколько файлов в разных каталогах и убедиться, что предупреждения работают корректно и UI обновляет список без перезапуска.
v2.9.0
ci: Add GitHub Actions workflow for build and release
Dashboard for OpenIPC v0.1.1
See the assets to download this version and install.
Dashboard for OpenIPC v0.1.0
See the assets to download this version and install.
v2.8.7
Major Update: Transition to MediaMTX Streaming Engine and WebRTC!
This release marks the largest architectural change in the application's history. We have completely overhauled the core responsible for video stream processing and display, replacing the old system with a modern, high-performance MediaMTX streaming server paired with WebRTC technology.
This change has not only improved performance and stability but also fixed numerous long-standing issues and laid a solid foundation for future development.
🚀 Key Innovation: MediaMTX + WebRTC Integration
Previously, the application launched a separate, resource-intensive FFmpeg process for each camera in the grid. Now, the architecture is different:
A single MediaMTX server starts with the application, centrally managing streams from all your cameras.
When you drag a camera into a cell, the interface connects to MediaMTX using the ultra-fast WebRTC (WHEP) protocol.
What this means for the user:
⚡ Instant Video Display: Latency has been reduced from several seconds to fractions of a second. Video appears almost instantly.
📉 Reduced CPU Load: A single MediaMTX server is far more efficient at managing streams than dozens of separate FFmpeg processes.
⚙️ Enhanced Stability: Centralized stream management is more reliable and less prone to individual process failures.
🔊 Audio Support: WebRTC technology natively supports audio transmission out of the box.
✨ Improvements & Fixes
Core & Performance
Stream Statistics: The data retrieval mechanism has been completely reworked. The application now directly queries the MediaMTX API and correctly calculates the real-time bitrate. Statistics (codec, bitrate) are now displayed accurately.
Screenshot Functionality: The screenshot feature has been restored. The renderer now captures a frame from the video element and passes it to the main process to be saved as a file.
User Interface
Fixed Drag-n-Drop: The camera drag-and-drop feature has been fully restored and enhanced. You can now not only drag cameras from the list to the grid but also freely move them between cells to swap their positions.
Fixed Fullscreen Mode: Resolved an issue where control buttons ("Pause," "Screenshot," etc.) became unclickable in fullscreen mode. The "Close" button (X) is now correctly hidden to prevent accidental camera removal.
Restored Context Menu: Fixed a bug that prevented the context menu (right-click) from working in grid cells.
Fixed Pause/Play Button: The "Play" icon no longer gets stuck on the video after resuming a stream.
Improved IPC Architecture: Refactored the communication between processes for context menu commands, improving application security and reliability.
Web Client
Responsive Design: Optimized the web client for correct display on all devices (PC, phones, tablets, TVs).
Adaptive Streaming: The web client now automatically selects the optimal stream (HLS or WebRTC) based on the device and availability. Added HLS support via hls.js for mobile devices and SmartTVs.
Improved Authentication: Enhanced error handling and the "Remember Me" functionality for the web client.
🛠️ Temporary Changes
PTZ Controls: The PTZ control elements (arrows and zoom buttons) have been temporarily hidden to resolve UI conflicts. They will be reintroduced in future releases.
Большое обновление: Переход на стриминговый движок MediaMTX и WebRTC!
Этот релиз знаменует собой крупнейшее архитектурное изменение в истории приложения. Мы полностью переработали ядро, отвечающее за прием и отображение видеопотоков, заменив старую систему на современный, высокопроизводительный стриминговый сервер MediaMTX в связке с технологией WebRTC.
Это изменение позволило не только повысить производительность и стабильность, но и исправить множество застарелых проблем, а также заложить прочный фундамент для будущего развития.
🚀 Ключевое нововведение: Интеграция MediaMTX + WebRTC
Ранее для каждой камеры в сетке приложение запускало отдельный ресурсоемкий процесс FFmpeg. Теперь все работает иначе:
При запуске приложения стартует один-единственный сервер MediaMTX, который централизованно управляет потоками со всех ваших камер.
Когда вы перетаскиваете камеру в ячейку, интерфейс подключается к MediaMTX по сверхбыстрому протоколу WebRTC (WHEP).
Что это дает пользователю:
⚡ Мгновенное отображение видео: Задержка сократилась с нескольких секунд до долей секунды. Видео появляется практически моментально.
📉 Снижение нагрузки на процессор: Один сервер MediaMTX гораздо эффективнее управляет потоками, чем десятки отдельных процессов FFmpeg.
⚙️ Повышенная стабильность: Централизованное управление потоками более надежно и менее подвержено сбоям.
🔊 Поддержка аудио: Технология WebRTC нативно поддерживает передачу звука из коробки.
✨ Улучшения и исправления
Ядро и производительность
Статистика потока: Полностью переработан механизм получения данных. Теперь приложение напрямую запрашивает статистику у API MediaMTX и корректно рассчитывает реальный битрейт. Статистика (кодек, битрейт) отображается корректно и обновляется в реальном времени.
Сохранение скриншотов: Восстановлена функция сохранения скриншотов. Теперь интерфейс захватывает кадр из видеоэлемента и передает его в основной процесс для сохранения в файл.
Пользовательский интерфейс
Исправлен Drag-n-Drop: Полностью восстановлена и улучшена функциональность перетаскивания камер. Теперь можно не только перетаскивать камеры из списка в сетку, но и свободно перемещать их между ячейками, меняя местами.
Исправлен полноэкранный режим: Устранена проблема, из-за которой кнопки управления ("Пауза", "Скриншот" и др.) становились некликабельными в полноэкранном режиме. Кнопка "Закрыть" (X) теперь корректно скрывается, чтобы избежать случайного удаления камеры.
Восстановлено контекстное меню: Исправлена ошибка, из-за которой не работало контекстное меню (правый клик) в ячейках сетки.
Исправлена кнопка Пауза/Воспроизведение: Иконка "Play" больше не "зависает" на видео после возобновления потока.
Улучшена архитектура IPC: Проведен рефакторинг взаимодействия между процессами для команд контекстного меню, что повышает безопасность и надежность приложения.
Web-клиент
Адаптивный дизайн: Исправлены ошибки и оптимизирована работа web-клиента: теперь интерфейс корректно отображается на всех устройствах (ПК, телефоны, планшеты, ТВ).
Автоматическая адаптация потока: Web-клиент теперь выбирает оптимальный поток (HLS или WebRTC) в зависимости от устройства и доступности. Добавлена поддержка HLS через hls.js для мобильных устройств и SmartTV.
Улучшена авторизация: Внесены правки в обработку ошибок и функции "Запомнить меня" для web-клиента.
🛠️ Временные изменения
Управление PTZ: Элементы управления PTZ (стрелки и кнопки зума) были временно скрыты для устранения конфликтов с другими элементами интерфейса. Они будут возвращены в будущих релизах.
v2.8.6
This release marks a huge step forward in the application's development! The main new feature is the launch of a full-featured web interface, allowing you to connect to your Dashboard from any device on your local network using a web browser.
We have done a great deal of work debugging and stabilizing this new feature, as well as fixing many other critical bugs and implementing UI improvements based on your feedback.
🚀 New Features & Major Improvements
🌐 Web Interface for Clients: You can now access your Dashboard from any computer, tablet, or phone on your local network. Simply open a browser and enter the IP address of the server computer and port 8080 (e.g., http://192.168.0.235:8080).
🧠 Intelligent Network Interface Selection: The application now automatically detects the correct local network IP address, ignoring VPN connections and virtual adapters. This resolves the core issue of video streams being unavailable to web clients.
🛠️ Robust Stream Recovery Mechanism (Watchdog):
The watchdog mechanism has been completely reworked. If a camera reboots or temporarily goes offline, the application will correctly wait for it to come back online before automatically restarting the video stream.
Fixed "Frozen Frame" Bug: After a connection is restored, the video in the cell no longer freezes and correctly resumes playback.
💾 Analytics State Persistence: Fixed a critical bug where analytics would be disabled after changing application or camera settings. The application now remembers which cameras had analytics active and automatically restores their state after restarting the streams.
🐛 Bug Fixes
Eliminated Race Condition on Web Client Load: Fixed an issue where the web client would try to request data before the WebSocket connection was fully established.
Fixed Rendering in Firefox: The Content Security Policy (CSP) has been updated, ensuring the application now renders correctly in Mozilla Firefox.
Stable Statistics Display: Resolved the problem where FPS and bitrate were not displayed on web clients. All statistics are now correctly transmitted and displayed for all connected clients.
✨ UI/UX Improvements
Removed Cell Scaling Effect: The intrusive scale effect on video cells when hovering has been removed and replaced with a more subtle highlight using border color and a box-shadow.
Restored Context Menu for Grid Cells: The convenient context menu from the device list can now be accessed by right-clicking directly on a grid cell, making camera management (editing, deleting, accessing archives, etc.) much faster.
🚀 Новые возможности и основные улучшения
🌐 Веб-интерфейс для клиентов: Теперь вы можете получить доступ к вашему Dashboard с любого компьютера, планшета или телефона в вашей локальной сети. Просто откройте браузер и введите IP-адрес компьютера-сервера и порт 8080 (например, http://192.168.Х.Х:8080).
🧠 Интеллектуальный выбор сетевого интерфейса: Приложение теперь автоматически определяет правильный IP-адрес для локальной сети, игнорируя VPN и виртуальные адаптеры. Это решает проблему с недоступностью видеопотоков для веб-клиентов.
🛠️ Надежный механизм восстановления потоков (Watchdog):
Полностью переработан "сторожевой" механизм. Если камера перезагружается или временно пропадает из сети, приложение корректно дожидается ее возвращения онлайн, прежде чем автоматически перезапустить видеопоток.
Исправлен баг с "зависшим кадром": Теперь после восстановления соединения видео в ячейке не "зависает", а корректно возобновляет показ.
💾 Сохранение состояния аналитики: Исправлен критический баг, из-за которого аналитика отключалась после изменения настроек. Приложение теперь запоминает, на каких камерах была активна аналитика, и автоматически восстанавливает ее работу после перезапуска потоков.
🐛 Исправления ошибок
Устранено "состояние гонки" при загрузке веб-клиента: Исправлена ошибка, из-за которой веб-клиент мог пытаться запросить данные до полной установки WebSocket-соединения.
Исправлено отображение в Firefox: Обновлена политика безопасности контента (CSP), благодаря чему приложение теперь корректно работает в Mozilla Firefox.
Стабильное отображение статистики: Исправлена проблема, из-за которой FPS и битрейт не отображались на веб-клиентах. Теперь вся статистика корректно передается всем подключенным клиентам.
✨ Улучшения интерфейса (UI/UX)
Убран эффект увеличения ячейки: Навязчивый эффект scale при наведении мыши заменен на более аккуратное выделение с помощью подсветки рамки и тени.
Возвращено контекстное меню для ячеек: Теперь удобное контекстное меню можно вызвать кликом правой кнопкой мыши прямо на ячейке с видео, что ускоряет управление камерой (редактирование, удаление, переход в архив и т.д.).