Releases: OpenIPC/dashboard
v0.2.1
User Interface & Experience:
Console Window Hidden: The application now launches without the debug console window on Windows.
About Dialog Updated:
Displays the correct application version (0.2.1).
Added Author information
Automatic build year update (currently 2026).
Build System & CI:
Robust Metadata Handling: Switched to config.h generation for passing build information (Version, Author, Year) to C++, resolving compilation issues with spaces.
CI/CD Fixes: Updated GitHub Actions workflow variable handling to ensure the correct version number is passed during automated builds.
CMake: Default project version bumped to 0.2.1.
Интерфейс и взаимодействие:
Скрыто окно консоли: Приложение теперь запускается без отладочного терминала в Windows.
Обновлено окно "О программе":
Отображается корректная версия приложения (0.2.1).
Добавлена информация об авторе
Автоматическое обновление года сборки (актуальный: 2026).
Система сборки и CI:
Улучшенная обработка метаданных: Реализована генерация config.h для передачи информации о сборке в (Версия, Автор, Год) в C++, что исправило ошибки компиляции из-за пробелов.
Исправления CI/CD: Скорректирован GitHub Actions workflow для правильной передачи номера версии при автоматической сборке.
CMake: Базовая версия проекта обновлена до 0.2.1.
v0.2.0
🚀 New Features & Enhancements
Analytics & Hardware Acceleration:
DirectML Support: Added GPU acceleration support for video analytics (face/object detection) using DirectML to offload tasks from CPU.
New SnapshotBrowser: Added filters (camera/object/date), sorting, quick filters, event timeline, counters, and full localization.
Full-featured Image Viewer: Implemented a standalone viewer similar to Windows Photos (zoom, rotate, flip, slideshow, fullscreen, delete, copy, print, "Open with...", properties).
Image Editing: Added basic editing capabilities (crop, draw, save copy) within the viewer.
Performance & Streaming:
Hardware Decoding: Added selection for HW decoding (D3D11/MFT/DXVA) to significantly reduce CPU load.
RTSP Stability: Implemented auto-reconnection on error/EOS and added a watchdog timer for frozen streams.
Audio Optimization: Disabled audio pipeline when muted to prevent WASAPI errors.
Cleaned Dependencies: Completely removed MDK/VLC dependencies and artifacts; switched fully to native QtMultimedia/GStreamer.
User Interface (UI/UX):
Collapsible Sidebar: Added a toggle button to hide the sidebar for a larger viewing area.
Adaptive Resolution: Fixed window sizing issues on lower resolution screens (e.g., 1024x768). The app now adapts to the available desktop size.
Flicker Fixes: Eliminated control flickering on grid cell hover.
Styling: Unified checkbox styles in analytics, added tooltips to icons, and improved image centering.
🛠 Fixes & Improvements
Audio & Codecs:
Fixed missing audio for G.711 (ALaw/ULaw), Opus, and AAC codecs.
Updated installer to correctly include required GStreamer audio plugins.
System & Installer:
Qt Plugin Crash Fix: Diagnosed and fixed startup crashes caused by corrupted/compressed DLLs.
Installer Build: Guaranteed copying of platform plugins directly from Qt SDK suitable for release.
GitHub Workflow: Excluded specific Qt plugins/modules from UPX compression to prevent runtime errors.
Versioning: Application version is now automatically injected from Git tags during the build process.
Backend: Added helper methods (localFileExists, getFileInfo, clipboard operations, openWithDialog, printImage) and batch deletion support.
🚀 Новые функции и улучшения
Аналитика и аппаратное ускорение:
Поддержка DirectML: Добавлено GPU-ускорение для видеоаналитики (распознавание лиц/объектов), что снимает нагрузку с процессора.
Новый браузер событий (SnapshotBrowser): Фильтры по камере/объекту/дате, сортировка, быстрые фильтры, таймлайн событий, счетчики и полная локализация.
Полнофункциональный просмотрщик: Реализован отдельный просмотрщик изображений (как в Windows): масштаб, поворот, слайд-шоу, полный экран, печать, свойства.
Редактирование: Добавлена базовая возможность рисования и обрезки снимков с сохранением копии.
Производительность и стриминг:
Аппаратное декодирование: Добавлен выбор декодера (D3D11/MFT/DXVA) для снижения нагрузки на CPU.
Стабильность RTSP: Реализовано авто-переподключение при ошибках потока и добавлен Watchdog (таймер) при отсутствии кадров.
Оптимизация звука: Отключение аудио-цепочки при выключенном звуке (Mute) для устранения ошибок WASAPI.
Очистка зависимостей: Полностью удалены зависимости MDK и VLC; проект переведен на нативные средства.
Интерфейс (UI/UX):
Скрываемая боковая панель: Добавлена кнопка сворачивания меню для увеличения площади просмотра.
Адаптивность: Исправлена проблема отображения на экранах с низким разрешением (1024x768). Окно подстраивается под размер рабочего стола.
Устранение мерцания: Убрано мерцание элементов управления при наведении на ячейку с видео.
Стиль: Унифицирован вид чекбоксов, добавлены подсказки и улучшено центрирование изображений.
🛠 Исправления и системные изменения
Аудио и кодеки:
Исправлен звук для кодеков G.711 (ALaw/ULaw), Opus и AAC.
В инсталлятор добавлены недостающие аудио-плагины GStreamer.
Система и инсталлятор:
Исправление вылетов Qt: Устранена причина падения платформенных плагинов (битые/сжатые DLL).
Сборка инсталлятора: Гарантировано копирование чистых плагинов напрямую из Qt SDK.
GitHub Workflow: Критичные Qt-плагины исключены из UPX-сжатия во избежание ошибок запуска.
Версионирование: Версия приложения теперь автоматически берется из Git-тега при сборке.
Бэкенд: Добавлены методы работы с файлами, буфером обмена, диалогами открытия и печати.
v0.1.9
ci: Add GitHub Actions workflow for build and release
v0.1.8
ci: Add GitHub Actions workflow for build and release
deps-gstreamer-1.26.10
ci: Add GitHub Actions workflow for build and release
Dashboard for OpenIPC v0.1.7
🚀 New Features — Multi-window Support
Independent Tool Windows: File Manager, SSH Terminal, and Settings now open as fully separate windows instead of modal dialogs.
Parallel Workflow: You can now simultaneously open the Terminal, File Manager, and Settings without blocking interaction with the main Dashboard window.
🎨 Interface & Design (UI/UX)
Custom Window Headers: All popup windows now feature custom Dark Mode headers that perfectly match the application's design.
Frameless Design: Removed standard white Windows system borders, making the interface seamless and modern.
Unified Window Controls: Added stylized control buttons (Minimize, Maximize, Close) consistent with the main theme.
🛠 Technical Improvements
Refactored SettingsDialog.qml, FileManagerDialog.qml, and SshTerminalDialog.qml (transitioned from Dialog types to independent Window types).
Fixed QML property compatibility issues arising from the transition to independent windows.
Changelog
⚡ Performance & Optimization
Forced GPU Acceleration: Implemented strict priority for Hardware Acceleration via DXVA2/D3D11 on Windows.
Video Filter Framework Fix: Fixed a critical bug where applying image settings (brightness, contrast, saturation) forced the decoder into Software Rendering mode.
Drastic CPU Load Reduction: By successfully offloading video decoding to the GPU, CPU usage for a 16-camera grid dropped from ~93% to ~22%.
🎨 Interface (UI/UX) fixes
Camera Control Panel (GridCell):
Fixed a QML layout bug where the volume slider and audio normalization ("N") button failed to appear on hover.
Layout Logic Update: Switched element anchoring from center to right-alignment. This allows the interface to correctly expand leftwards when additional buttons appear.
Mouse Event Handling: Implemented HoverHandler for better visibility control. Resolved "hover stealing" issues where buttons blocked the panel's expansion trigger area.
🔧 Backend (LibVLC)
LibVlcPlayer Refactoring: Optimized player initialization code. Video adjustments (brightness, gamma, etc.) are now applied via the post-processing API without requiring a restart of the main decoding pipeline.
Описание выпуска
🚀 Новые функции — Мультиоконность
Независимые окна инструментов: Файловый менеджер (File Manager), SSH-терминал и Настройки теперь открываются как полноценные отдельные окна, а не как модальные диалоги.
Параллельная работа: Теперь можно одновременно открыть Терминал, Файловый менеджер и Настройки, не блокируя работу с основным окном (Dashboard).
🎨 Интерфейс и Дизайн (UI/UX)
Кастомные заголовки окон: Для всех всплывающих окон реализованы собственные заголовки в темной теме (Dark Mode), полностью соответствующие дизайну приложения.
Убраны системные рамки: Окна больше не имеют стандартных белых рамок Windows, что делает интерфейс цельным и современным.
Единый стиль: Добавлены стилизованные кнопки управления окном (Свернуть, Развернуть, Закрыть).
🛠 Технические улучшения
Рефакторинг SettingsDialog.qml, FileManagerDialog.qml и SshTerminalDialog.qml (переход от типа Dialog к Window).
Исправлены ошибки совместимости свойств QML при переходе на независимые окна.
Список изменений (Changelog)
⚡ Производительность и Оптимизация
Принудительное аппаратное ускорение (GPU): Реализован жесткий приоритет аппаратного декодирования (Hardware Acceleration) через DXVA2/D3D11 для Windows.
Устранение конфликта видеофильтров: Исправлена ошибка, из-за которой применение настроек изображения (яркость, контраст, насыщенность) сбрасывало декодер в программный режим (Software Rendering).
Снижение нагрузки на ЦП: Благодаря переносу декодирования видеопотоков на GPU, нагрузка на процессор при сетке из 16 камер снизилась с ~93% до ~22%.
🎨 Интерфейс (UI/UX)
Исправление панели управления камерой (GridCell):
Исправлена ошибка верстки QML, из-за которой ползунок громкости и кнопка нормализации звука («N») не отображались при наведении курсора.
Изменена логика привязки: Переход от центрирования к выравниванию по правому краю позволил корректно "раздвигать" интерфейс влево при появлении дополнительных кнопок.
Улучшение обработки событий мыши: Внедрен HoverHandler для управления видимостью элементов. Исправлена проблема "перехвата" событий наведения (hover stealing), когда кнопки блокировали срабатывание области расширения панели.
🔧 Бэкенд (LibVLC)
Рефакторинг LibVlcPlayer: Оптимизирован код инициализации плеера. Настройки видео (яркость, гамма и т.д.) теперь применяются через API постобработки без перезапуска основного конвейера декодирования.
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 обновляет список без перезапуска.