Skip to content

Releases: OpenIPC/dashboard

v2.8.4

27 Aug 12:23

Choose a tag to compare

🚀 What's New
"Smart Pause" for CPU Optimization
A new mechanism has been implemented that pauses video stream processing in inactive grid cells. This dramatically reduces CPU load when displaying a large number of cameras simultaneously. Video in the cell resumes instantly upon clicking, ensuring a smooth and responsive interface.
White-Labeling & Branding System
Added support for full application customization. You can now create a branding.json file in the application's root directory to:
Change the application name.
Replace the default logo with your own.
Disable specific UI features, such as the "Report an Issue" button or the "Support the Project" section.
This is the perfect solution for companies wishing to use the application under their own brand.
✨ Improvements & Fixes
Improved Stream Error Handling
Interactive Buttons: If a video stream fails (e.g., incorrect RTSP path, wrong password, camera offline), the cell now shows an informative error message along with "Retry" (to reconnect) and "Close" (to remove the cell) buttons.
Visual Feedback: A clear visual style has been added for the error state, including a darkened background and an icon, to visually highlight the problematic cell.
Seamless Stream Switching
Completely eliminated the "white screen" flash when switching between SD/HD quality or entering fullscreen mode. The last frame from the old stream is now displayed while the new one is loading, making the transition seamless.
Enhanced Stream Info
The statistics overlay in the bottom-left corner of a cell now displays the video codec and resolution (e.g., H264, 1920x1080) in addition to fps and bitrate.
CSS Refactoring
The CSS codebase has been restructured. All styles have been split into logical component files (grid.css, sidebar.css, etc.) to simplify future maintenance and development.

🚀 Новые возможности
"Умная пауза" для оптимизации ЦП
Реализован новый механизм, который приостанавливает обработку видеопотоков в неактивных ячейках сетки. Это радикально снижает нагрузку на центральный процессор при одновременном отображении большого количества камер. Видео в ячейке мгновенно возобновляется по клику, обеспечивая плавный и отзывчивый интерфейс.
Система брендинга (White-Labeling)
Добавлена поддержка полной кастомизации приложения. Теперь вы можете создать файл branding.json в корневой папке приложения, чтобы:
Изменить название приложения.
Заменить стандартный логотип на свой собственный.
Отключить определенные функции интерфейса, такие как кнопка "Сообщить о проблеме" или секция "Поддержать проект".
Это идеальное решение для компаний, желающих использовать приложение под собственным брендом.
✨ Улучшения и исправления
Улучшенная обработка ошибок потока
Интерактивные кнопки: При сбое подключения к камере (неверный RTSP-путь, неправильный пароль, камера оффлайн и т.д.) в ячейке теперь отображается информативное сообщение об ошибке, а также кнопки "Повторить" (для переподключения) и "Закрыть" (для удаления ячейки из сетки).
Визуальное оформление: Для состояния ошибки добавлены четкие CSS-стили, включая затемненный фон и иконку, чтобы визуально выделить проблемную ячейку.
Плавное переключение потоков
Полностью устранен эффект "белого экрана" при переключении между SD/HD качеством или при переходе в полноэкранный режим. Теперь на время загрузки нового потока отображается последний кадр из старого, что делает переход бесшовным.
Расширенная информация о потоке
Статистика в левом нижнем углу ячейки теперь отображает кодек и разрешение видео (например, H264, 1920x1080) в дополнение к fps и битрейту.
Рефакторинг CSS
Кодовая база стилей была реструктурирована. Все стили разделены на логические компонентные файлы (grid.css, sidebar.css и т.д.) для упрощения дальнейшей поддержки и разработки.

v2.8.3

24 Aug 13:03

Choose a tag to compare

✨ What's New:
✌️ Two App Versions: Lite and Intellect
Lite Version: A lightweight and fast client designed for real-time camera viewing and basic archive operations. Ideal for users who do not need video analytics and extensibility.
Intellect Version: Includes the full capabilities of the application: advanced archive, powerful neural network-based video analytics (with GPU support), a plugin system, user management, and much more.
🎬 Professional Archive: A Complete Overhaul for Speed and Convenience
Switched to HLS Player: We've moved away from the old playback method in favor of modern HLS (HTTP Live Streaming). This ensures smooth playback, fast and accurate seeking, and stable performance at high speeds.
Intuitive Clip Export: A new, user-friendly way to export video clips has been added, inspired by the SmartPSS interface. You can now easily mark start (content_cut) and end points on the timeline and save the desired clip with just a couple of clicks.
Smooth Timeline Zooming: Navigating the archive is now even more pleasant! We've implemented smooth, animated zooming of the timeline using the mouse wheel, which focuses on the point under your cursor.
📺 Automatic SD/HD Stream Switching
A popular feature has returned and been improved! The application now automatically uses an economical SD stream for grid previews and instantly switches to a high-quality HD stream when expanding the video to full screen. This significantly reduces network and CPU load.
📦 Manual Update Control with Changelog
We've put you in control of updates. You can now manually check for a new version in Settings -> General. If an update is available, you will see a list of changes (changelog) directly within the app and can decide for yourself whether to download and install it.
🚀 Fixes & Performance Improvements:
Instant Archive Playback Start: By switching to remuxing (-c copy) instead of transcoding, the HLS stream for H.264 files is prepared in a fraction of a second. No more long waits for "Preparing video...".
H.265 (HEVC) Archive Support: The system now automatically detects the video file's codec. If it's H.265, it performs a quick transcode to the compatible H.264 format, ensuring playback.
Stable High-Speed Playback: Fixed a critical bug where playback would stall at high speeds (4x, 8x, and above).
Accurate Seeking & Real-time Clock: Resolved an issue where the player would "forget" its position after seeking or changing speed. The time display now updates correctly.
Stable Startup: Fixed a crash on launch caused by an incorrect initialization order.
Thank you for your support and for using the application

✨ Что нового:
✌️ Две версии приложения: Lite и Intellect
Lite-версия — это легкий и быстрый клиент, предназначенный для просмотра камер в реальном времени и базовой работы с архивом. Идеально подходит для пользователей, которым не нужна видеоаналитика и расширяемость.
Intellect-версия — включает все возможности приложения: видеоаналитику на базе нейронных сетей (с поддержкой GPU), систему плагинов
🎬 Профессиональный Архив: Полная переработка для скорости и удобства
Переход на HLS-плеер: Мы отказались от старого метода воспроизведения в пользу современного HLS (HTTP Live Streaming). Это обеспечивает плавное воспроизведение, быструю и точную перемотку, а также стабильную работу на высоких скоростях.
Интуитивный Экспорт Клипов: Добавлен новый, удобный способ экспорта видеофрагментов. Теперь вы можете легко отметить начальную (content_cut) и конечную точки на таймлайне и сохранить нужный клип всего парой кликов.
Плавное Масштабирование Таймлайна: Навигация по архиву стала еще приятнее! Мы реализовали плавное, анимированное зумирование временной шкалы при использовании колеса мыши, которое фокусируется на точке под вашим курсором.
📺 Автоматическое Переключение SD/HD Потоков
Возвращен и улучшен популярный функционал! Приложение теперь автоматически использует экономичный SD-поток для предпросмотра в сетке и мгновенно переключается на качественный HD-поток при разворачивании видео на полный экран. Это значительно снижает нагрузку на сеть и процессор.
📦 Ручное Управление Обновлениями с Changelog
Мы передали контроль над обновлениями в ваши руки. Теперь вы можете вручную проверить наличие новой версии в Настройки -> Общие. Если обновление доступно, вы увидите список изменений (changelog) прямо в приложении и сможете сами принять решение о скачивании и установке.
🚀 Исправления и улучшения производительности:
Мгновенный запуск воспроизведения в архиве: Благодаря переходу на remuxing (-c copy) вместо перекодирования, HLS-поток для файлов H.264 готовится за доли секунды. Больше нет долгого ожидания "Подготовка видео...".
Поддержка архивов в H.265 (HEVC): Система теперь автоматически определяет кодек видеофайла. Если это H.265, включается быстрое перекодирование в совместимый H.264, обеспечивая воспроизведение.
Стабильное ускоренное воспроизведение: Исправлена критическая ошибка, из-за которой воспроизведение останавливалось на высоких скоростях (4x, 8x и выше).
Точная перемотка и обновление времени: Исправлена проблема, при которой плеер "забывал" позицию и сбрасывался на начало после перемотки или смены скорости. Отображаемое время теперь обновляется корректно.
Стабильный запуск: Исправлена ошибка, из-за которой приложение могло падать при запуске из-за неправильного порядка инициализации.
Спасибо за вашу поддержку и использование приложения!

2.8.2

20 Aug 10:53

Choose a tag to compare

Hello everyone! This is a major update focused on fixing key issues, improving the user experience, and adding powerful new features. Thank you to everyone who reported bugs and provided logs—your help is invaluable!
✨ Key New Features
🎉 Built-in Issue Reporting System
We understand the importance of reporting issues quickly and accurately. Now, you can do it in just a few clicks!
Easy Submission: A new "Report an Issue" button is now available in the General Settings menu (⚙️).
Attach Screenshots: Visually demonstrate what went wrong by attaching up to 5 images from your computer.
Automatic Data Collection: System logs and an anonymized configuration are automatically attached to your report, significantly speeding up diagnostics and bug fixes.
🚀 HLS-based Archive and Accurate Timeline
The archive functionality has been completely reworked for maximum performance and convenience.
Instant Seeking: Recordings are now converted on-the-fly into an HLS stream, enabling instant seeking on the timeline without delays or buffering, even for very large files.
Accurate Recording Duration: The application now uses ffprobe to determine the real duration of each video file. The visual length of a recording on the timeline now precisely matches its actual length.
Smooth and Responsive Timeline: The timeline logic has been rewritten from scratch. Zooming and scrolling are now smooth and predictable.
🧩 New Plugins: "Object Counter" & "Face Detector"
Two new plugins have been added to the application's modular system:
Object Counter: When analytics are enabled, this plugin displays a counter of detected objects in the corner of the video cell (e.g., "Person: 2").
Face Detector: Automatically detects people in the frame, crops their faces, and saves them as .jpg files to a configurable folder. A smart cooldown prevents saving hundreds of identical images.
🐛 Fixes & Stability Improvements
Fixed Stream Conflict with Duplicate Cameras: Each cell in the grid now has its own independent stream process. Switching quality (HD/SD) in one cell no longer affects others.
Automatic Restart for Dropped Streams: If a camera connection is lost, the application now automatically attempts to restart the stream with an increasing delay, significantly improving stability.
Fixed Authentication Error for NETIP (Xiongmai) Cameras.
Resolved numerous technical issues related to the HLS implementation, dependencies (ERR_REQUIRE_ESM, ENOENT), Content Security Policy (CSP), and ffmpeg crashes (Invalid data found).
Optimized Analytics Data Transfer: The mechanism for exchanging data with the Python analytics script has been overhauled. Moving from base64 to temporary file paths has dramatically improved reliability and performance.
🎨 UI/UX Enhancements
Frameless Window Design: The native OS window frame has been removed for a more modern look.
Context Menu for Camera Groups: Manage groups (rename, delete) by right-clicking on the group header.
Improved Camera Discovery: The ONVIF discovery mechanism is now faster and more reliable.
Full Localization: New features, including plugins and the reporting system, are fully translated into Russian and English.
System dialogs have been replaced with custom modals that match the application's style.
PTZ controls and the stats overlay no longer overlap.

✨ Ключевые нововведения
🎉 Встроенная система отчетов об ошибках
Мы понимаем, как важно быстро и точно сообщать о найденных проблемах. Теперь это можно сделать в несколько кликов!
Простая отправка: В меню общих настроек (⚙️) появилась кнопка "Сообщить о проблеме".
Прикрепление скриншотов: Наглядно покажите, что пошло не так, прикрепив до 5 изображений с вашего компьютера.
Автоматический сбор данных: К отчету автоматически прикрепляются системные логи и анонимизированная конфигурация, что значительно ускоряет диагностику и исправление ошибок.
🚀 Архив на базе HLS и точный таймлайн
Работа с архивом была полностью переработана для максимальной производительности и удобства.
Мгновенная перемотка: Записи теперь "на лету" конвертируются в HLS-поток, что обеспечивает мгновенную перемотку без задержек и буферизации, даже для очень больших файлов.
Точная длительность записей: Приложение теперь использует ffprobe для определения реальной длительности каждого видеофайла. Визуальная длина записи на таймлайне теперь точно соответствует её фактической продолжительности.
Плавный и отзывчивый таймлайн: Логика работы таймлайна полностью переписана. Масштабирование (зум) и прокрутка теперь работают плавно и предсказуемо.
🧩 Новые плагины: "Счётчик объектов" и "Детектор лиц"
Модульная система приложения пополнилась двумя новыми плагинами:
Счётчик объектов: При включенной аналитике отображает в углу ячейки счётчик обнаруженных объектов (например, "Человек: 2").
Детектор лиц: Автоматически обнаруживает людей в кадре, вырезает их лица и сохраняет в виде .jpg файлов в настраиваемую папку. Умный кулдаун предотвращает сохранение сотен одинаковых снимков.
🐛 Исправления и улучшения стабильности
Исправлен конфликт потоков при дублировании камер: Теперь каждая ячейка в сетке имеет свой независимый процесс трансляции. Переключение качества (HD/SD) в одной ячейке больше никак не влияет на другие.
Автоматический перезапуск "упавших" потоков: Если соединение с камерой теряется, приложение теперь автоматически пытается перезапустить поток с увеличивающейся задержкой, что значительно повышает стабильность.
Исправлена ошибка аутентификации для камер NETIP (Xiongmai).
Устранены многочисленные технические проблемы, связанные с внедрением HLS, зависимостями (ERR_REQUIRE_ESM, ENOENT), политикой безопасности контента (CSP) и падениями ffmpeg (Invalid data found).
Оптимизирована передача данных аналитики: Переход от base64 к передаче путей к временным файлам кардинально повысил надежность и производительность аналитики.
🎨 Улучшения интерфейса (UI/UX)
Безрамочный дизайн окна: Убрана стандартная рамка ОС для более современного вида.
Контекстное меню для групп камер: Управляйте группами (переименование, удаление) через клик правой кнопкой мыши.
Улучшенный поиск камер: Механизм обнаружения ONVIF-камер работает быстрее и надежнее.
Полная локализация: Новые функции, включая плагины и систему отчетов, полностью переведены на русский и английский языки.
Системные диалоги заменены на кастомные модальные окна в едином стиле приложения.
Элементы управления PTZ и блок статистики больше не перекрывают друг друга.
Мы призываем вас активно использовать новую функцию для сообщения о любых ошибках. Ваша обратная связь бесценна! Спасибо за вашу поддержку.

2.8.1

12 Aug 09:02

Choose a tag to compare

This is a major update focused on fixing critical bugs, improving stability, and adding long-awaited group management features. The main achievement of this release is the complete restoration and significant enhancement of the video analytics module.
✨ New Features
Full Group Management: You can now not only create camera groups but also fully manage existing ones!
Rename: Right-click on a group header to select the "Rename" option and give it a new name.
Delete: You can also delete a group via the right-click context menu. Important: Cameras from the deleted group will not be removed; they will be automatically moved to the "Ungrouped Cameras" section.
🔧 Enhancements & Changes
Analytics Provider Selection (GPU/CPU): A new selector has been added to the general application settings, allowing users to manually choose the engine for video analytics. This gives full control over performance and compatibility.
Auto (Recommended): The application will automatically select the best available GPU method (DirectML for Windows).
GPU (DirectML): Forces the use of the graphics card via DirectX.
CPU: Uses the central processor for maximum compatibility on any hardware.
Improved Default Stream Paths: When adding a new camera, the default paths for HD and SD streams are now set to /stream=0 and /stream=1. This format is common on many firmwares and reduces the need for manual editing during setup.
🐛 Bug Fixes
[Critical] Completely Fixed Video Analytics: Resolved the core issue that caused the analytics module to crash immediately upon launch.
Reason: The bug was caused by an incompatibility between the onnxruntime library and the new NumPy 2.x release, as well as unstable behavior with NVIDIA CUDA drivers in a packaged application.
Solution:
The NumPy dependency has been pinned to the stable 1.x version.
The launch mechanism has been completely reworked: the unstable dependency on CUDA has been removed in favor of the more reliable DirectML for Windows.
A robust fallback system has been implemented that automatically switches to CPU if GPU acceleration is unavailable for any reason.
The build script has been corrected to properly include all necessary libraries (.dll) and the model itself (yolov8n.onnx) in the executable file.
Fixed Frozen Input Fields Bug: Resolved an issue where text input fields in modal windows (e.g., when editing a camera) would become inactive after performing a confirmation-based action (like deleting another camera). The problem was caused by a conflict between native system dialogs and the application's main window. All confirmation dialogs are now part of the application, ensuring stable focus handling.
Corrected Confirmation Dialog UI: Removed the unnecessary text input field from the delete confirmation dialog. The dialog now has a clean look and serves its single purpose of confirming an action.

✨ Новые возможности (Features)
Полное управление группами камер: Теперь вы можете не только создавать группы, но и полноценно управлять существующими!
Переименование: Кликните правой кнопкой мыши на заголовок группы, чтобы выбрать опцию "Переименовать" и задать новое имя.
Удаление: Так же через правый клик можно удалить группу. Важно: камеры из удаленной группы не удаляются, а автоматически перемещаются в раздел "Камеры без группы".
🔧 Улучшения и изменения (Enhancements & Changes)
Выбор провайдера аналитики (GPU/CPU): В общих настройках приложения появился новый переключатель, позволяющий пользователю вручную выбрать движок для видеоаналитики. Это дает полный контроль над производительностью и совместимостью.
Авто (Рекомендуется): Приложение само выберет лучший доступный GPU-метод (DirectML для Windows).
GPU (DirectML): Принудительное использование видеокарты через DirectX.
CPU: Использование центрального процессора для максимальной совместимости на любом оборудовании.
Улучшенные пути к потокам по умолчанию: При добавлении новой камеры пути к HD и SD потокам теперь по умолчанию установлены в /stream=0 и /stream=1. Это соответствует формату многих прошивок и уменьшает необходимость ручного редактирования.
🐛 Исправления ошибок (Bug Fixes)
[Критическое] Полностью исправлена работа видеоаналитики: Устранена основная проблема, из-за которой модуль аналитики падал сразу после запуска.
Причина: Ошибка была вызвана несовместимостью библиотеки onnxruntime с новой версией NumPy 2.x, а также нестабильной работой с драйверами NVIDIA CUDA в упакованном приложении.
Решение:
Зависимость от NumPy была зафиксирована на стабильной версии 1.x.
Полностью переработан механизм запуска: убрана нестабильная зависимость от CUDA в пользу более надежного DirectML для Windows.
Внедрена отказоустойчивая система, которая автоматически переключается на CPU, если GPU-ускорение по какой-либо причине недоступно.
Скрипт сборки был исправлен для корректного включения всех необходимых библиотек (.dll) и самой модели (yolov8n.onnx) в исполняемый файл.
Исправлена ошибка с "замиранием" полей ввода: Устранена проблема, из-за которой поля для ввода текста в модальных окнах (например, при редактировании камеры) становились неактивными после выполнения действия, требующего подтверждения (например, удаление другой камеры). Проблема была вызвана конфликтом системных диалоговых окон с основным окном приложения. Теперь все диалоги подтверждения являются частью приложения, что обеспечивает стабильную работу.
Исправлен интерфейс диалога подтверждения: Убрано лишнее поле для ввода текста из окна подтверждения удаления. Теперь диалог выглядит чисто и выполняет только одну функцию — подтверждение действия.

2.8.0

10 Aug 11:27

Choose a tag to compare

New Release: Performance, Stability & Full-Featured File Manager!
This release is one of our biggest updates yet, focusing on dramatically improving performance, stability, and adding powerful new tools for camera management.
🚀 Major New Features
Full-Featured File Manager: We've added a dual-pane file manager that works over a direct SSH connection to your camera. You can now easily manage files on your device: download recordings, upload scripts, create directories, and delete unnecessary files using native scp and ls commands.
Advanced Camera Discovery: The device discovery mechanism has been completely overhauled. In addition to standard UDP probing, we now use a deep TCP port scan across your local network. This allows the app to find even those ONVIF cameras that don't respond to standard discovery requests, making the search significantly more reliable.
⚡️ Performance & Stability Enhancements
Archive Timeline on Canvas: The archive timeline has been completely rewritten to use the Canvas API instead of hundreds of DOM elements. This has resulted in a massive performance boost: the timeline now renders instantly and operates smoothly, even with thousands of events and recordings per day.
Analytics Bounding Boxes on Canvas: The rendering of object detection bounding boxes has also been moved to Canvas. This significantly reduces CPU load during video analytics, making the UI more responsive.
Smart Stream Reconnection: Instead of constantly retrying to reconnect upon losing connection to a camera, an exponential backoff algorithm is now used. This greatly reduces network and camera load when a device is temporarily unavailable.
Configuration Saving Optimization (Debounce): Multiple rapid changes to the configuration (e.g., moving cameras in the grid) no longer trigger an immediate save-to-disk operation. The configuration is now saved once after all actions are complete, making the interface feel much more responsive.
Robust JSON Parsing: Improved handling of JSON responses from cameras. The application is now protected from crashes that could occur due to receiving malformed data.
🐞 Bug Fixes
Fixed a Critical Timezone Bug: Resolved an issue where recordings in the archive could be displayed with incorrect timestamps due to timezone discrepancies. All recordings and events on the timeline are now displayed correctly according to your local time.

Новый релиз: Производительность, стабильность и файловый менеджер!

🚀 Новые Возможности
Полнофункциональный файловый менеджер: Добавлен двухпанельный файловый менеджер, работающий через прямое SSH-соединение с камерой. Теперь вы можете легко управлять файлами на устройстве: скачивать записи, загружать скрипты, создавать папки и удалять ненужные файлы, используя нативные команды scp и ls.
Расширенный поиск камер: Механизм обнаружения камер был полностью переработан. В дополнение к стандартному UDP-зондированию теперь используется глубокое сканирование TCP-портов в локальной сети. Это позволяет находить даже те ONVIF-камеры, которые не отвечают на стандартные discovery-запросы, значительно повышая надёжность поиска.
⚡️ Производительность и Стабильность
Архив на Canvas: Таймлайн в архиве полностью переведён с сотен DOM-элементов на рендеринг через Canvas. Это привело к колоссальному приросту производительности: теперь таймлайн отрисовывается мгновенно и плавно работает даже с тысячами событий и записей за день.
Рамки аналитики на Canvas: Отрисовка рамок детекции объектов (bounding boxes) также переведена на Canvas. Это существенно снижает нагрузку на CPU во время работы видеоаналитики, делая интерфейс более отзывчивым.
Умное переподключение к потокам: Вместо постоянных попыток переподключения при потере связи с камерой теперь используется алгоритм экспоненциальной задержки. Это значительно снижает нагрузку на сеть и саму камеру, если она временно недоступна.
Оптимизация сохранения конфигурации (Debounce): Множественные быстрые изменения в конфигурации (например, перемещение камер в сетке) теперь не вызывают немедленное сохранение на диск. Запись происходит один раз после завершения всех действий, что делает интерфейс значительно более отзывчивым.
Стабильность парсинга: Улучшена обработка JSON-ответов от камер. Приложение теперь защищено от сбоев, которые могли возникнуть из-за получения некорректно сформированных данных.
🐞 Исправления
Исправлена критическая ошибка с часовыми поясами: Устранена проблема, из-за которой записи в архиве могли отображаться с неверным временем из-за расхождений в часовых поясах. Теперь все записи и события на таймлайне отображаются корректно в соответствии с вашим локальным временем.

v2.7.9 - Умный Архив, Уведомления и Стабильная Видеоаналитика

31 Jul 14:11

Choose a tag to compare

Этот релиз представляет собой крупное обновление, которое кардинально улучшает работу с архивом, добавляет систему уведомлений, предоставляет мощные инструменты для управления конфигурацией и, самое главное, исправляет работу функции видеоаналитики.
✨ Новые возможности (Features)

  1. Интерактивный архив с календарем и событиями (Feature: Advanced Archive)
    Работа с архивом стала интуитивно понятной и быстрой благодаря полному переосмыслению интерфейса:
    Календарь с подсветкой активности: Экран архива теперь оснащен интерактивным календарем. Дни, в которые были записи или зафиксированы события аналитики, автоматически подсвечиваются.
    Визуализация событий на таймлайне: На временную шкалу теперь наносятся цветные маркеры событий (обнаружение человека, автомобиля и т.д.), что позволяет визуально идентифицировать ключевые моменты.
    Список событий и быстрая навигация: Справа от плеера появился список всех событий за выбранный день. Клик по любому событию мгновенно перемещает воспроизведение на этот момент.
    Фильтрация событий: Добавлена возможность фильтровать события по их типу (например, показывать только моменты с обнаружением людей).
    Динамическая шкала времени: Приближайте таймлайн колесиком мыши, и шкала будет автоматически детализироваться для точного поиска.
  2. Система Desktop-уведомлений (Feature: Notifications)
    Теперь вы будете в курсе событий, даже если приложение свернуто:
    Уведомления от видеоаналитики: Приложение отправляет нативные desktop-уведомления при обнаружении объектов.
    Уведомления о статусе записи: Система информирует о начале, успешном завершении или ошибке записи видео.
    Настраиваемость и "умный" кулдаун: Уведомления можно полностью отключить в настройках. 30-секундный период "затишья" для одной камеры предотвращает спам.
  3. Экспорт и импорт конфигурации (Feature: Config Management)
    В общих настройках появились инструменты для полного управления конфигурацией:
    Экспорт: Сохраняйте все настройки (камеры, группы, раскладки, пользователи и др.) в один json-файл для резервного копирования или переноса.
    Импорт: Восстанавливайте всю конфигурацию из ранее сохраненного файла с автоматической перезагрузкой приложения.
    🔧 Улучшения и исправления (Improvements & Fixes)
    🐞 Ключевое исправление: Стабильная работа видеоаналитики. Полностью решена проблема, из-за которой аналитика не отключалась после включения.
    Надежная сборка: Исправлен процесс сборки (PyInstaller), который ранее создавал нерабочий исполняемый файл analytics.exe. Теперь сборка на GitHub Actions проходит корректно для Windows и Linux.
    Корректное управление процессом: Улучшен менеджер процессов в main.js. Теперь он использует нативные системные команды (taskkill для Windows) для гарантированного завершения дочернего процесса аналитики.
    Непрерывная работа: Скрипт analytics.py теперь работает в непрерывном цикле, как и положено, до его принудительной остановки.
    Надежная запись по событиям: Исправлена ошибка, из-за которой запись, инициированная аналитикой, могла прерываться из-за несовместимого аудиокодека (pcm_mulaw).
    Корректная авто-остановка записи: Внедрен умный таймер. Запись по событию продолжается заданное в настройках время после последнего обнаружения и автоматически прекращается.
    Исправлена локализация: Устранены проблемы, из-за которых новые элементы интерфейса в модальных окнах не переводились без перезапуска.
    Прочие улучшения: Устранены мелкие дефекты UI, обновлены зависимости проекта.

✨ New Features

  1. Interactive Archive with Calendar and Events (Feature: Advanced Archive)
    Calendar with Activity Highlighting: The archive now features an interactive calendar that highlights days with recordings or analytics events.
    Event Visualization on Timeline: Colored markers for detected events (person, car, etc.) are now displayed directly on the timeline.
    Event List & Quick Navigation: A clickable list of all events for the selected day allows for instant seeking.
    Event Filtering: Filter events by type (e.g., show only person detections) for a more focused search.
    Dynamic Timeline Scale: Zooming with the mouse wheel now dynamically adjusts the time scale for precise navigation.
  2. Desktop Notification System (Feature: Notifications)
    Video Analytics Alerts: Receive native desktop notifications when objects are detected.
    Recording Status Updates: Get notified when a recording starts, stops, or fails.
    Customizable & Smart: Notifications can be disabled in settings, and a 30-second cooldown per camera prevents alert spam.
  3. Configuration Export & Import (Feature: Config Management)
    Export: Save your entire application configuration (cameras, groups, layouts, users, etc.) to a single json file.
    Import: Restore your complete setup from a backup file with an automatic application restart.
    🔧 Improvements & Fixes
    🐞 Core Fix: Video Analytics Stability. Completely resolved the critical bug where the analytics feature could not be toggled off after being activated.
    Reliable Build Process: Fixed the PyInstaller build process that previously generated a non-functional analytics.exe. The GitHub Actions workflow now correctly builds the executable for both Windows and Linux.
    Robust Process Management: The process manager in main.js now uses native system commands (taskkill on Windows) to ensure the analytics child process is reliably terminated.
    Continuous Operation: The analytics.py script now runs in a continuous loop as intended until explicitly stopped.
    Reliable Event-Based Recording: Fixed an issue where recordings triggered by analytics could fail due to an incompatible audio codec (pcm_mulaw).
    Correct Auto-Stop for Recordings: Implemented a smart timer to ensure event-based recordings continue for the user-defined duration after the last detection and then stop gracefully.
    Fixed Localization: Addressed bugs where new UI elements in modal windows would not translate without an app restart.
    Other Improvements: Corrected minor UI glitches and updated project dependencies.

2.7.8

25 Jul 14:44

Choose a tag to compare

Этот релиз включает в себя кардинальную переработку интерфейса, внедрение мощных функций видеоаналитики на базе YOLOv8, улучшенное воспроизведение аудио и множество исправлений, направленных на повышение стабильности и производительности.
🎉 Главное в релизе: Переработка интерфейса и система вкладок
Мы полностью переосмыслили способ взаимодействия с камерами, отказавшись от статичной сетки в пользу гибкого интерфейса с вкладками.
Система вкладок для раскладок: Создавайте неограниченное количество раскладок («Офис», «Дом», «Склад») и переключайтесь между ними, как в браузере.
Полное управление раскладками:
➕ Создание на лету: Нажмите «+» рядом с вкладками, чтобы мгновенно создать новую пустую раскладку.
✏️ Переименование и удаление: Управляйте раскладками через удобные кнопки на панели инструментов.
🖱️ Drag-and-Drop: Меняйте порядок вкладок простым перетаскиванием.
Улучшенный дизайн: Вкладки и дочерние окна (файловый менеджер, SSH) получили современный, единый стиль без рамок, улучшающий навигацию и внешний вид.
Автоматическая миграция: Приложение само обновит ваш старый файл конфигурации до нового формата, сохранив все камеры и настройки.
✨ Новые возможности
🔊 Воспроизведение звука в реальном времени
Прослушивание в сетке: Включайте звук с камер прямо в окне мониторинга с помощью новой кнопки на ячейке.
Один активный поток: Звук может быть активен только на одной камере одновременно, чтобы избежать какофонии. При выборе другой камеры звук автоматически переключается на неё.
🧠 Видеоаналитика на базе YOLOv8 и запись по событиям
Движок обновлен до YOLOv8: Переход на более точную и современную модель нейросети обеспечивает значительно лучшее качество детекции объектов.
Гибкие настройки аналитики: В настройках камеры появилась вкладка "Аналитика", где можно:
Включить или выключить анализ для конкретной камеры.
Выбрать типы объектов для детекции (например, только "человек", "машина"), чтобы избежать ложных срабатываний.
Автоматическая запись по детекции: Приложение теперь умеет автоматически начинать запись видео при обнаружении выбранного объекта.
📂 Интерактивный архив с событиями
Визуализация событий на таймлайне: На временной шкале архива теперь отображаются цветные маркеры, показывающие, когда и какой объект был обнаружен.
Интерактивный список событий: Клик по событию в боковой панели мгновенно перематывает видео на нужный момент.
Фильтрация и навигация: Фильтруйте события по типу объекта и быстро переходите к нужному моменту, кликая в любую точку на таймлайне.
⚙️ Удобство и настройки
Функция «Запомнить меня»: Включайте автоматический вход в систему на доверенных устройствах. Учетные данные безопасно хранятся в системном хранилище ОС (Keychain/Credential Manager).
Настройка качества трансляции: В общих настройках теперь можно задать качество (q:v) и частоту кадров (fps) для всех потоков, чтобы найти баланс между качеством картинки и нагрузкой на систему.
🚀 Оптимизация и архитектурные улучшения
Централизованное управление процессами FFmpeg: Внедрен processManager, который отслеживает все дочерние процессы. Это решает проблему "зомби"-процессов и гарантирует корректное завершение всех стримов и записей при выходе из приложения.
Рефакторинг модальных окон: Логика всех модальных окон была разделена на отдельные модули по принципу единственной ответственности, что сделало кодовую базу чище и проще для поддержки.
Параллельный опрос статусов камер: Статусы онлайн/офлайн теперь запрашиваются одновременно, что значительно ускоряет обновление интерфейса при большом количестве камер.
Атомарное резервирование портов: Устранена потенциальная "гонка состояний" при одновременном запуске нескольких потоков, что исключает назначение одного порта двум разным процессам.
🛠️ Исправления ошибок
КРИТИЧЕСКОЕ ИСПРАВЛЕНИЕ: Записи, созданные вручную или автоматически по аналитике, были исправлены и теперь гарантированно воспроизводятся. Процессы записи корректно завершаются, предотвращая повреждение файлов.
Файловый менеджер: Полностью переработан для использования протокола SCP (вместо неработающего SFTP). Теперь скачивание и загрузка файлов на камеру работают стабильно. Устранена критическая ошибка Object has been destroyed, приводившая к падению.
Автоматический вход: Исправлена "гонка состояний" при запуске, из-за которой функция "Запомнить меня" не всегда срабатывала.
Синхронизация времени в архиве: Улучшена логика расчета временных меток, чтобы события и записи отображались с корректным временем.
Кодирование учетных данных: Имя пользователя и пароль теперь корректно кодируются в RTSP-ссылке, что решает проблемы со специальными символами.

This release introduces a fundamental UI overhaul, powerful YOLOv8-based video analytics, enhanced audio playback, and numerous fixes focused on improving stability and performance.
🎉 Highlights: Complete UI Overhaul & Layout Tab System
We've completely reimagined how you interact with your cameras, moving from a static grid to a flexible, tabbed interface.
Tabbed Layout System: Create unlimited layouts (e.g., "Office," "Home," "Warehouse") and switch between them like browser tabs.
Full Layout Management:
➕ Create on the Fly: Click the "+" icon next to the tabs to instantly create a new, empty layout.
✏️ Rename & Delete: Manage your layouts with convenient toolbar buttons.
🖱️ Drag-and-Drop: Reorder tabs with a simple drag-and-drop action.
Modernized Design: Tabs and child windows (File Manager, SSH) now feature a modern, unified, borderless design for improved navigation and aesthetics.
Seamless Migration: The application will automatically update your old configuration file to the new format, preserving all your cameras and settings.
✨ New Features
🔊 Real-time Audio Playback
In-Grid Listening: Enable audio from cameras directly in the monitoring grid with a new button on each cell.
Single Active Stream: Audio can only be active on one camera at a time to prevent cacophony. Sound automatically switches when you select another camera.
🧠 YOLOv8-Powered Analytics & Event-Based Recording
Engine Upgraded to YOLOv8: Migrated to a more accurate and modern neural network model for significantly better object detection.
Flexible Analytics Settings: A new "Analytics" tab in camera settings allows you to:
Enable or disable analysis for each camera.
Select specific object types to detect (e.g., only "person," "car") to reduce false positives.
Auto-Recording on Detection: The application can now automatically start recording video when a configured object is detected.
📂 Interactive Archive with Events
Event Visualization on Timeline: The archive timeline now displays colored markers indicating when and what type of object was detected.
Interactive Event List: Clicking an event in the sidebar instantly seeks the video to that moment.
Filtering & Navigation: Filter events by object type and quickly jump to any point in a recording by clicking on the timeline.
⚙️ Convenience & Settings
"Remember Me" Feature: Enable auto-login on trusted devices. Credentials are securely stored in the OS native keychain (macOS Keychain / Windows Credential Manager).
Stream Quality Configuration: A new "Streaming" tab in general settings lets you configure quality (q:v) and framerate (fps) for all live feeds to balance image quality and system load.
🚀 Optimizations & Architectural Improvements
Centralized FFmpeg Process Management: A new processManager tracks all child processes, solving the "zombie" process issue and ensuring all streams and recordings terminate correctly on exit.
Modal Handler Refactoring: The logic for all modal windows has been split into separate modules following the single-responsibility principle, making the codebase cleaner and more maintainable.
Parallel Camera Status Polling: Online/offline statuses are now fetched concurrently, significantly speeding up the UI updates, especially with many cameras.
Atomic Port Reservation: Eliminated a potential race condition during the simultaneous startup of multiple streams, preventing two processes from being assigned the same port.
🛠️ Bug Fixes
CRITICAL FIX: Recordings, whether started manually or by analytics, were fixed and are now guaranteed to be playable. Recording processes now terminate gracefully, preventing file corruption.
File Manager: Completely overhauled to use the SCP protocol (instead of the non-functional SFTP). File downloads and uploads to cameras now work reliably. Fixed a critical Object has been destroyed crash.
Auto-Login: Fixed a startup race condition that sometimes prevented the "Remember Me" feature from working correctly.
Archive Time Sync: Improved timestamp calculation logic to ensure events and recordings display with the correct time.
Credential Encoding: Usernames and passwords are now correctly encoded in the RTSP URL, resolving issues with special characters.

2.6.1

21 Jul 10:45

Choose a tag to compare

Релиз v2.6.1: Гибкие права доступа, новый интерфейс и переработка ключевых функций
Этот релиз является одним из самых значительных в истории проекта. Мы не только кардинально обновили внешний вид приложения, но и внедрили гибкую систему управления правами доступа, полностью переработали ключевые механизмы, такие как архив записей и обнаружение камер, а также исправили критические ошибки, которые мешали стабильной работе.
✨ Новые возможности и ключевые улучшения

  1. Гибкая система управления правами доступа (Permissions)
    Мы перешли от жестких ролей к полноценной системе разрешений, что превращает приложение в многопользовательскую платформу с настраиваемыми уровнями доступа.
    Проблема: Старая система имела только две роли: "Администратор" (может всё) и "Оператор" (может очень мало).
    Решение: Теперь администратор может тонко настраивать права для каждого пользователя с ролью "Оператор" индивидуально. В специальном модальном окне можно разрешить или запретить такие действия, как:
    Просмотр архива
    Экспорт записей из архива
    Добавление, редактирование и удаление камер
    Доступ к настройкам камер
    Управление сеткой и раскладками
    Результат: Полный контроль над действиями пользователей, повышение безопасности и гибкости использования.
    P.S. По умолчанию в системе присутствует пользователь "Администратор" с логином/паролем : admin/admin
  2. Современный безрамочный интерфейс
    Приложение избавилось от стандартной рамки окна операционной системы, что обеспечивает более чистый и целостный пользовательский опыт.
    Безрамочный дизайн: Интерфейс стал более лаконичным и современным.
    Пользовательские элементы управления окном: В заголовок интегрированы кастомные кнопки для сворачивания, разворачивания и закрытия приложения.
    Перетаскиваемый заголовок: Вся область заголовка (за исключением кнопок) теперь является перетаскиваемой.
    SSH-терминал: Добавлена интеграция с буфером обмена (Копирование/Вставка через Ctrl+Shift+C / Ctrl+Shift+V).
  3. Масштабируемый и интерактивный архив
    Функциональность архива записей была полностью переработана, чтобы сделать его мощным и удобным инструментом.
    Масштабирование временной шкалы: Теперь вы можете приближать и отдалять временную шкалу с помощью колеса мыши.
    Точное выделение: Масштабирование позволяет с максимальной точностью выделить нужный фрагмент для экспорта.
    Динамические метки: Метки времени на шкале автоматически адаптируются под выбранный масштаб.
  4. Надежное обнаружение камер в сети (ONVIF Discovery)
    Механизм поиска камер был полностью заменен на более эффективный и стабильный.
    Проблема: Старый метод поиска через UDP-рассылку был ненадежен и часто блокировался брандмауэрами.
    Решение: Реализован новый метод, который последовательно сканирует все IP-адреса в локальных подсетях и пытается установить прямое ONVIF-соединение.
    Результат: Этот подход позволяет находить камеры даже в сетях со строгими настройками безопасности.
    ✅ Исправления критических ошибок
    Исправлена бесконечная "потеря связи" при подключении к камере. Логика сохранения была изменена, и теперь пароль не затирается пустой строкой при редактировании камеры.
    Исправлена рассинхронизация времени в архиве. Приложение теперь корректно обрабатывает часовые пояса и синхронизирует временную шкалу с реальным временем записи.
    Исправлено некорректное отображение потребления ресурсов (ЦП и ОЗУ). Теперь приложение суммирует метрики со всех своих дочерних процессов, отображая точные данные.
    Исправлена проблема с отображением записей в архиве. Устранена ошибка парсинга формата даты из имени файла, и теперь все записи корректно отображаются.
    🛠️ Внутренние улучшения
    Надежный менеджер состояний: Улучшена логика управления состоянием приложения для предотвращения гонок состояний и повышения предсказуемости кода.
    Корректное удаление камер: Функция удаления камер теперь работает надежно и корректно сохраняет все изменения в конфигурации.
    🚀 Что дальше?
    Теперь, когда визуальная составляющая и ключевые функции стабилизированы, мы возвращаемся к нашей дорожной карте и начинаем работу над системой уведомлений о событиях в реальном времени!
    Текст для релиза на GitHub (на английском)
    Release v2.6.1: Flexible Permissions, Modern UI & Major Feature Overhaul
    This is one of the most significant releases in the project's history. We've not only given the application a major visual facelift with a modern, frameless design but have also introduced a flexible permission system, completely overhauled key features like the recordings archive and camera discovery, and fixed critical bugs that hindered stable operation.
    ✨ New Features & Key Improvements
  5. Flexible Permission System for Users
    We have moved from rigid roles to a full-fledged permission system, transforming the application into a multi-user platform with customizable access levels.
    Problem: The old system had only two roles: "Administrator" (can do everything) and "Operator" (very limited).
    Solution: Administrators can now finely tune permissions for each "Operator" user individually. A new modal allows enabling or disabling actions such as:
    Viewing the archive
    Exporting clips from the archive
    Adding, editing, and deleting cameras
    Accessing camera settings
    Managing the grid and layouts
    Result: Full control over user actions, enhanced security, and greater flexibility.
    P.S. By default, the system has an "Administrator" user with login/password : admin/admin
  6. Modern Frameless User Interface
    The application now runs in a frameless window, shedding the native OS title bar for a cleaner, more integrated user experience.
    Frameless Design: The interface is more streamlined and modern.
    Custom Window Controls: Custom buttons for minimizing, maximizing, and closing are integrated directly into the header.
    Draggable Header: The entire header area (except for interactive elements) is now draggable.
    SSH Terminal: Added clipboard integration (Copy/Paste via Ctrl+Shift+C / Ctrl+Shift+V).
  7. Scalable and Interactive Archive
    The recordings archive has been completely re-engineered to be a powerful and user-friendly tool.
    Timeline Zooming: You can now zoom in and out of the timeline using the mouse wheel.
    Precise Selection: Zooming makes it much easier to select the exact clip you want to export.
    Dynamic Labels: Timestamp labels on the timeline automatically adapt to the current zoom level.
  8. Robust Network Camera Discovery (ONVIF)
    The camera discovery mechanism has been replaced with a more effective and stable method.
    Problem: The old method using UDP broadcast was unreliable and often blocked by firewalls.
    Solution: A new method now scans all IP addresses in local subnets and attempts to establish a direct ONVIF connection.
    Result: This approach finds cameras even on networks with strict security settings.
    ✅ Critical Bug Fixes
    Fixed infinite "Connection lost" loop. The camera saving logic has been fixed to prevent accidentally overwriting the password with an empty string during edits.
    Fixed time desynchronization in the archive. The application now correctly handles timezones, syncing the timeline with the actual recording time.
    Fixed incorrect display of resource consumption (CPU & RAM). The app now aggregates metrics from all its child processes for accurate reporting.
    Fixed an issue where recordings would not appear in the archive. Corrected a parsing error for the date-time format in filenames.
    🛠️ Internal Improvements
    Robust State Manager: The application's state management logic has been improved to prevent race conditions.
    Reliable Camera Deletion: The camera deletion feature now works reliably and correctly saves configuration changes.

2.5.0

16 Jul 03:21

Choose a tag to compare

Версия 2.5.0: Исправления стабильности и потоков
Описание релиза:
Это важное обновление, направленное на повышение стабильности и исправление критических ошибок, о которых сообщало сообщество. Настоятельно рекомендуется к установке всем пользователям.
🚀 Что нового:
Надежная работа в Linux: Полностью переработана логика запуска видеопотоков в Linux. Теперь приложение должно корректно работать на большинстве дистрибутивов "из коробки" без необходимости в ручной установке видеодрайверов.
Мгновенное закрытие потоков: Исправлено "зависание" при закрытии видеопотока в ячейке по кнопке "X". Теперь удаление камеры из сетки происходит мгновенно и без задержек.
Стабильное переключение потоков: Восстановлена корректная работа переключения между основным (HD) и дополнительным (SD) потоками.
Сохранение раскладки: Улучшена логика сохранения состояния сетки. Расположение камер теперь должно корректно восстанавливаться после перезапуска приложения.
Общие улучшения стабильности: Проведен рефакторинг кода, отвечающего за управление потоками, что повысило общую стабильность и отзывчивость интерфейса.
Спасибо всем, кто сообщал об ошибках и предоставлял логи! Ваша помощь неоценима в развитии проекта.

Release Description :
This is an important update focused on improving stability and fixing critical bugs reported by the community. It is highly recommended for all users.
🚀 What's New:
Reliable Linux Performance: The video stream launch logic for Linux has been completely reworked. The application should now work correctly on most distributions "out of the box" without requiring manual video driver installation.
Instant Stream Closing: Fixed the "freezing" issue when closing a video stream in a grid cell using the "X" button. Removing a camera from the grid is now instant and lag-free.
Stable Stream Switching: The functionality for switching between the main (HD) and secondary (SD) streams has been restored and now works reliably.
Layout Saving: Improved the grid state saving logic. The camera layout should now restore correctly after restarting the application.
General Stability Improvements: Refactored the stream management code, leading to better overall stability and UI responsiveness.
A huge thank you to everyone who reported bugs and provided logs! Your help is invaluable to the project's development.

2.4.9

15 Jul 11:34

Choose a tag to compare

v2.4.9 Release: Improved Linux support and stability
This release makes significant improvements to the build and launch of the application on modern Linux distributions, as well as fixes a number of critical issues that users have encountered. The application should now run out of the box on most systems, including Ubuntu 22.04+ and derivatives (KDE Neon, Pop!_OS, etc.).
Key changes and fixes
For Linux users:
Fixed startup failure on modern distributions: Fixed a critical bug The SUID sandbox helper binary was not configured correctly. Now the application starts without having to manually use the --no-sandbox flag.
The dependency on libfuse2 has been eliminated: The AppImage package now contains all the necessary libraries to run. Users no longer need to manually install libfuse2 into the system, which resolves the error loading issue. libfuse.so .2.
Improved desktop integration: Thanks to the use of a custom wrapper script AppRun.sh The application is launched correctly from the application menu after its integration into the system.
General improvements:
🔧 Updated build configuration: package.json and workflow on GitHub Actions have been updated to use modern and reliable CI/CD practices, which increases the stability and predictability of builds.
Code cleanup: Obsolete and duplicate options have been removed from configuration files.
When launching from the terminal, the --no-sandbox flag must be used.