Грабли с видео-регистратором HiWatch DS-N208P(C)
Пользуясь статусом временно безработного, инвестировал некоторое время в приведение домашней инфраструктуры в порядок. А то всё на костылях, на соплях, никакой тебе автоматизации, всё вот этими вот руками... В общем, давно требовалось наведение порядка.
Дошли руки и до регистратора. Как всякая уважающая себя бытовая китайская техника, видео-регистратор (HiWatch DS-N208P(C)) обладает вполне приличным функционалом (8 портов для подключения камер с PoE, возможность просмотра через облако и вот это вот всё). Но китайская железка не была бы китайской, если бы не имела каких-то прибабахов.
Самый бесящий баг -- это невозможность просмотра видео из web UI регистратора. Всё работает, можно конфигурить регик, а вот картинки нет:

Ну точнее, в теории-то оно должно работать. Если скачать плагин прямо со страницы UI (справа вверху ссылка). Только плагин этот -- исключительно для Windows. Ну и к тому же не работает в современных браузерах. Я пробовал ставить его на Win7, бодался и так, и эдак, но успеха не случилось.
Второй косяк, который меня напрягал -- не работал HTTPS. Тоже вроде как настройка есть, вроде можно сгенерить само-подписаный сертификат прямо в UI, можно подсунуть свой, но... Но оно не работает.
Симптом такой: генеришь сертификат, включаешь HTTPS:

Оно включается. Заходишь браузером в веб-морду, браузер предупреждает, что сертификат само-подписаный. Нажимаешь "Пофиг, открывай", и дальше получается как-то так:

Технически, прошивка поддерживает TLS v1.3 и доезжает примерно до сюда:
ClientHello
↓
ServerHello
EncryptedExtensions
Certificate
CertificateVerify
Finished
↓
client Finished
Режимы и алгоритмы шифрования согласовываются, всё выглядит ОК:
SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / x25519 / RSASSA-PSS
Но затем, когда клиент (браузер или curl) шлёт HTTP-запрос:
GET /doc/page/config.asp HTTP/1.1 Host: 192.168.3.4 User-Agent: curl/8.18.0 Accept: */*
Вместо ответа регистратор выдаёт:
TLS alert: close_notify
И на этом соединение превращается в тыкву. При этом, если не использовать TLS 1.3 (ограничить версию до 1.2), то всё работает нормально. God bless LLMs! Без них я бы смог это задебажить и сам, но времени бы ушло на съём и анализ сетевого траффика куда больше.
К сожалению, в браузере нельзя ограничить версию TLS при подключении к одному конкретному хостнейму или IP. Только глобально, для всего браузера. Либо использовать множественные профили (Firefox такое поддерживает), и в одном из них вписать ограничение по версии TLS. Тоже решение такое себе, т. к. при подключении к регистратору придётся переключать профиль. Не то, чтобы мне часто нужно лазить в конфигуратор регистратора, но всё же...
В общем, долго ли коротко, но путём вдумчивого курения маниуалов удалось найти пост на 4pda, в котором автор утверждает, что можно прошить DS-N208P(C) прошивкой V4.76.107_250325, от другого регика, на платформе HWN-2104/2108. Учитывая, что у меня прошивка 22-го года, а эта, про которую пишут на форуме -- 2025-го, то имеет смысл попробовать и безотносительно бага с TLS...
Рискованно немного, есть шанс окирпичить девайс, но где наша не пропадала? Залил новую прошивку на флэшку, вставил в регик и запустил обновление. И о чудо! Всё прошло совершенно гладко. Сбросил все настройки в дефолт, настроил заново, и всё заработало. Можно стало заходить по https без приплясываний.
Особо разницу в прошивках я не изучал, но из заметного -- вынесли прямо на экран просмотра архива кнопку "Пропустить нормальные видеозаписи". Что в переводе с китайско-русского означает -- скипать во время просмотра интервалы, когда ничего не происходит, и сразу переходить к моменту, где в кадре зафиксировано движение. И тут же можно регулировать скорость просмотра, от 1х до 16х. Раньше для всего этого нужно было нажать кнопку, открывался диалог, ты там устанавливал скорость просмотра, закрывал диалог... В общем, много лишней возни.
Автор же сообщения на форуме утверждал, что у него заодно заработало отображение событий на линейке времени при просмотре архива. У HikVision есть мобильное приложение, и если подключить регик в их облако, то можно смотреть камеры и архив через приложение. Вот там на линейке с таймкодом, должны отображаться отметки, когда в кадре было движение. На самом регике (в его локальной консоли) именно так и происходит. Но вот в мобильном приложении это почему-то не работало. Архив можно было смотреть, а событий не видно. Автор утверждает, что после прошивки оно заработало. Но поскольку у меня план -- вообще отказаться от использования облаков, ибо нечего на изображении моей фазенды обучать свои ИИ-шницы, то это как бы не очень актуально.
Планирую с помощью ИИ накостылить свой локальный просмотр изображения с камер в прямом эфире и работу с архивом. Пока есть PoC на базе go2rtc, который отображает картинку с камер:

Если ткнуть в ссылку "stream", то выезжает картинка с камеры. Надо ещё поработать, чтобы можно было открывать 4 камеры в формате 2х2, но пока руки не дошли.
Comments
Comments powered by Disqus