Если у вас дома или в офисе стоит китайский видеорегистратор, вы наверняка знаете, как это бывает. Официальный клиент выглядит так, будто его не обновляли с 2012 года, работает только на Windows, а для домофона нужна ещё одна программа. Мне это надоело, и я навайбкодил своё приложение: eXUnity Observer.
Исходный код открыт на GitHub: github.com/ibuben/observer, а готовые сборки для Windows и Linux лежат на странице релизов.

Что умеет
Живое видео
- Сетка на 1, 4, 9, 16, 25, 36 или 64 камеры. Камеры можно менять местами, перетаскивая мышью.
- Любую камеру можно развернуть на всё окно или во весь экран.
- Основной поток даёт полное качество, дополнительный экономит сеть и процессор, когда камер на экране много.
- Звук с камер Xiongmai включается одной кнопкой на нужной ячейке.
- Поворотными камерами можно управлять: PTZ-джойстик прямо поверх картинки, зум и регулировка скорости.
- Снимок кадра делается в один клик.
- Аппаратное декодирование H.264 и H.265: на Windows через D3D11, на Linux через VA-API, VDPAU или CUDA. Если видеокарта не справляется, камера сама переключается на процессор.
Архив
- Поиск записей на диске регистратора за выбранный период, до 48 часов за раз.
- Воспроизведение на скорости 1×, 2×, 4×, 8× и 16×.
- Скачивание фрагмента сразу в MP4 со звуком, а не в проприетарный формат, для которого нужен отдельный плеер.
Журнал и конфигуратор (только для XM)
- Журнал событий регистратора: тревоги, детекция движения, пересечение линии, вторжение в зону и другие.
- Конфигуратор, в котором собраны почти все настройки регистратора: каналы, детекция, расписание записи, картинка, сеть, диски, пользователи и обслуживание, включая перезагрузку и форматирование. Опасные действия программа просит подтвердить.
Домофон Hikvision

Когда в домофон Hikvision звонят, программа показывает входящий вызов вместе с картинкой с выбранной камеры. Замок открывается свайпом прямо в окне программы, и звонку не нужно отдельное приложение.
Что поддерживается
| Xiongmai (XM) | Hikvision | |
|---|---|---|
| Живое видео | ✓ | ✓ |
| Звук | ✓ | ✓ |
| PTZ | ✓ | — |
| Архив и скачивание в MP4 | ✓ | ✓ |
| Журнал событий | ✓ | пока нет |
| Конфигуратор | ✓ | пока нет |
| Домофон: звонок и открытие замка | — | ✓ |
Xiongmai выпускает «начинку» для огромного числа регистраторов и камер, которые продаются под десятками брендов. Если ваш регистратор открывается через CMS, XMeye или iCSee и слушает порт 34567, скорее всего, он подойдёт.
Подключаться можно как по локальной сети, так и по белому IP-адресу. Облачные сервисы производителя для этого не нужны.
Как это устроено
Программа написана на Rust. Интерфейс сделан на egui, это быстрая библиотека, которая одинаково выглядит на всех системах.
- С регистраторами Xiongmai программа общается по их собственному бинарному протоколу (Sofia) напрямую, без SDK производителя и сторонних библиотек.
- С Hikvision она работает через RTSP для видео и ISAPI для домофона.
- Видео распаковывает ffmpeg: программа передаёт ему поток с регистратора и забирает готовые кадры.
Благодаря этому программа получилась лёгкой: архив весит около 5 МБ на Windows и 9 МБ на Linux, ставить её не нужно, а настройки хранятся в одном файле рядом с ней.
В комплекте есть и консольная утилита xm-nvr. С ней можно узнать модель и прошивку регистратора, найти записи или сохранить видео в файл, например из скрипта по расписанию:
xm-nvr search --host 192.168.1.10 --channel 1 \
--start "2026-10-06 00:00:00" --end "2026-10-06 23:59:59"
Как установить
Windows 10/11. Скачайте observer-v1.2.0-windows-x64.zip со страницы релизов и распакуйте его. Положите ffmpeg в C:\ffmpeg\ и запустите xm-view.exe.
Linux (Ubuntu 20.04 и новее, Debian 11 и новее, и другие дистрибутивы с glibc 2.31+):
sudo apt install ffmpeg
tar xzf observer-v1.2.0-linux-x64.tar.gz
cd observer-v1.2.0-linux-x64
./xm-view
Если хотите собрать программу сами, подробная инструкция для Windows, Ubuntu, Fedora и Arch есть в README.
Что дальше
В планах журнал и PTZ для Hikvision и возможно, поддержка dahua. Если программа не нашла общий язык с вашим регистратором или вам не хватает какой-то функции, напишите в Issues на GitHub. А если программа вам пригодилась, поставьте репозиторию звёздочку ⭐, а ещё лучше — донат. :)
