VTH2421F-P (без вызывной панели) - невозможно подключить IP-камеру

c-a-v

Member
Уважаемые знатоки! Прошу помощи.
Дано:
  1. видеопанель VTH2421F-P прошивка 4.510 (DH_VTHX421H_MultiLang_SIP_V4.510.0000000.0.R.220111)
  2. IP-камера Reolink RLC-420-5MP прошивка v3.0.0.136_20121101
  3. вызывной панели VTO НЕТ!
Задача:
Подключить IP-камеру к видеопанели и выводить на неё изображение с IP-камеры. Такой "колхоз" задуман с целью использования камеры вместо видеоглазка, поэтому хотелось бы обойтись вообще без вызывной панели.
VTH и камера подключены к одному POE-свитчу, находятся в одной сети. Изображение и звук с камеры прекрасно отображаются и в Android-приложении, и в win-клиенте Reolink на ПК и в VLC-плеере, и в Home Assistant. Короче, везде, что бы ни подключал отображается, но ...только НЕ на VTH2421F-P.

На камере создан отдельный пользователь, включен ONVIF, настройки для этого пользователя сделаны и на панели, но при попытке подключения - "Device offline".
Прилагаю скрины с настройками.

Помогите, пожалуйста, дайте совет как подружить указанные устройства. Можно ли обойтись без VTO?

24042405240624082409
 

Serg

Member
Мне не удалось напрямую соединить Reolink камеру и Dahua монитор. На камере у меня стоит последняя прошивка, на мониторе я не ставил последнюю. Вместе не работает, есть нюансы имплементации протокола ONVIF у разних производителей. Для информации - Dahua вышла из консорциума ONVIF, официальной сертификации у них нет. Поэтому, что они там пишут на коробке - это все маркетинг. В Dahua есть еще несовместимости - например VTO SIP server не работает корректно з библиотекой pjsip. А через промежуточний SIP server работает. Я даже на github баг написал, но его вряд ли исправят, я думаю ето проблема у Dahua.

Я знаю, в чем проблема совместимости, я думаю начинающий хакер сможет ето исправить, но у меня нет времени возится.

В моем случае я использую промежуточный прохи RSTP сервер на Raspberry Pi. Сервер емулирует endpoint Dahua камеры, так что монитор думает что ето его родная камера. Для меня это нормально, потому что я на том же сервере гоняю умный дом, управление отоплением, вентиляцией, завязал звонок с кнопки звонка на телефон без приложения производителя (не доверяю я китайским программам) и т.д.

Если интересно, могу скинуть конфигурацию прокси
 
Останнє редагування:

c-a-v

Member
...я использую промежуточный прохи RSTP сервер на Raspberry Pi. Сервер емулирует endpoint Dahua камеры, так что монитор думает что ето его родная камера. Для меня это нормально, потому что я на том же сервере гоняю умный дом, управление отоплением, вентиляцией, завязал звонок с кнопки звонка на телефон без приложения производителя (не доверяю я китайским программам) и т.д.
Если интересно, могу скинуть конфигурацию прокси
,
Serg, большое спасибо за ответ! ОЧЕНЬ полезная информация! У меня сходная ситуация и задействованное оборудование, Хоум Ассистант крутится на RPi 4, и именно туда я и планировал интегрировать свой "колхоз" в виде панели VTH и камеры Reolink. Пожалуйста, дайте небольшую инструкцию как правильно собрать и установить прокси на RPi ( на Ubuntu Desktop). Думаю, это рецепт будет полезен не только мне, но и другим пользователям, в т.ч. строящим свой "умный дом" из разнородного оборудования.
 

Serg

Member
Я использую live555 Media Server. Его надо собирать самому из исходников, стандартно его нет в репозитории

Добавил:
1. Мои конфигурационные файлы для RPi 4.
1.1. Koманда создания makefiles live server ./genMakefiles linux-rPi
pi@SmartHome:~/live555/live $ cat config.linux-rPI
COMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DNO_OPENSSL=1
C = c
C_COMPILER = cc
C_FLAGS = $(COMPILE_OPTS) $(CPPFLAGS) $(CFLAGS) -mcpu=cortex-a72+crypto -mtune=cortex-a72 -mfpu=neon-fp-armv8 -mfloat-abi=hard
CPP = cpp
CPLUSPLUS_COMPILER = c++
CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 $(CPPFLAGS) $(CXXFLAGS) -mcpu=cortex-a72+crypto -mtune=cortex-a72 -mfpu=neon-fp-armv8 -mfloat-abi=hard
OBJ = o
LINK = c++ -o
LINK_OPTS = -L. $(LDFLAGS)
CONSOLE_LINK_OPTS = $(LINK_OPTS)
LIBRARY_LINK = ar cr
LIBRARY_LINK_OPTS =
LIB_SUFFIX = a
LIBS_FOR_CONSOLE_APPLICATION =
LIBS_FOR_GUI_APPLICATION =
EXE =

1.2. Koманда создания proxy makefiles ./genMakefiles rPi
pi@SmartHome:~/live555/live555ProxyServerEx $ cat config.rPI
LIBRARIES_DIR = ../live/
INCLUDES_PREFIX = ../live/
INCLUDES = -I$(INCLUDES_PREFIX)/UsageEnvironment/include -I$(INCLUDES_PREFIX)/groupsock/include -I$(INCLUDES_PREFIX)/liveMedia/include -I$(INCLUDES_PREFIX)/BasicUsageEnvironment/include
COMPILE_OPTS = $(INCLUDES) -fPIC -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DNO_OPENSSL=1
C = c
C_COMPILER = cc
C_FLAGS = $(COMPILE_OPTS) -mcpu=cortex-a72+crypto -mtune=cortex-a72 -mfpu=neon-fp-armv8 -mfloat-abi=hard
CPP = cpp
CPLUSPLUS_COMPILER = c++
CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -Wno-deprecated -DBSD=1 -mcpu=cortex-a72+crypto -mtune=cortex-a72 -mfpu=neon-fp-armv8 -mfloat-abi=hard
OBJ = o
LINK = c++ -o
LINK_OPTS = -L.
CONSOLE_LINK_OPTS = $(LINK_OPTS)
LIB_SUFFIX = a
EXE =
DESTDIR =

2. Конфигурационный файл прокси. У Прокси много возможностей, но я использую только базовые
pi@SmartHome:/home $ cat /usr/local/etc/live555Proxy/live555Proxy.CameraProxy.cfg
[general]

verbosity = 0
stream_rtp_over_tcp = 0
server_tunneling_over_http = 0

rtsp_server_port = 60000

[auth]
username = YourUserNameForMonitor
password = YourPasswordForMonitor

[streams]
url = rtsp://ReolinkUser:password@Camera-Gate:554/h264Preview_01_sub
name = cam/realmonitor?channel=1&subtype=0&proto=Dahua3
# ^ channel number for monitor configuration channel 1

url = rtsp://ReolinkUser:password@Camera-Gate:554/h264Preview_01_main
name = Camera-Gate/Main

url = rtsp://ReolinkUser:password@Camera-Garden:554/h264Preview_01_sub
name = cam/realmonitor?channel=2&subtype=0&proto=Dahua3
# ^ channel number for monitor configuration channel 2

#url = rtsp://ReolinkUser:password@Camera-Garden:554/h264Preview_01_main
#name = Camera-Garden/Main

url = rtsp://ReolinkUser:password@Camera-Entrance:554/h264Preview_01_sub
name = cam/realmonitor?channel=3&subtype=0&proto=Dahua3
# ^ channel number for monitor configuration channel 3

url = rtsp://ReolinkUser:password@Camera-Entrance:554/h264Preview_01_main
name = Camera-Entrance/Main

3. Кофигурационний файл для systemd.
systemctl enable CameraProxy
systemctl start CameraProxy
systemctl status CameraProxy
● CameraProxy.service - Outside cameras RSTP Proxy
Loaded: loaded (/etc/systemd/system/CameraProxy.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-06-20 11:38:24 CEST; 1 months 0 days ago
Main PID: 854 (live555ProxySer)
Tasks: 1 (limit: 4915)
CPU: 7h 16min 34.479s
CGroup: /system.slice/CameraProxy.service
└─854 /usr/local/bin/live555ProxyServerEx -c /usr/local/etc/live555Proxy/live555Proxy.CameraProxy.cfg

cat /etc/systemd/system/CameraProxy.service
[Unit]
Description=Outside cameras RSTP Proxy
After=multi-user.target network-online.target

[Service]
Type=idle
User=cameraproxy
# Security advise is to create a separate user with nologin and run the proxy under its credentials
ExecStart=/usr/local/bin/live555ProxyServerEx -c /usr/local/etc/live555Proxy/live555Proxy.CameraProxy.cfg
Restart=always
RestartSec=60
WorkingDirectory=/home/cameraproxy
StandardOutput=inherit
StandardError=inherit

[Install]
WantedBy=multi-user.target

4. Фото конфигурации монитора
 

Вкладення

c-a-v

Member
3. Кофигурационний файл для systemd.
systemctl enable CameraProxy
systemctl start CameraProxy
systemctl status CameraProxy
● CameraProxy.service - Outside cameras RSTP Proxy
Loaded: loaded (/etc/systemd/system/CameraProxy.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-06-20 11:38:24 CEST; 1 months 0 days ago
Main PID: 854 (live555ProxySer)
Tasks: 1 (limit: 4915)
CPU: 7h 16min 34.479s
CGroup: /system.slice/CameraProxy.service
└─854 /usr/local/bin/live555ProxyServerEx -c /usr/local/etc/live555Proxy/live555Proxy.CameraProxy.cfg

cat /etc/systemd/system/CameraProxy.service
[Unit]
Description=Outside cameras RSTP Proxy
After=multi-user.target network-online.target

[Service]
Type=idle
User=cameraproxy
# Security advise is to create a separate user with nologin and run the proxy under its credentials
ExecStart=/usr/local/bin/live555ProxyServerEx -c /usr/local/etc/live555Proxy/live555Proxy.CameraProxy.cfg
Restart=always
RestartSec=60
WorkingDirectory=/home/cameraproxy
StandardOutput=inherit
StandardError=inherit

[Install]
WantedBy=multi-user.target
ОГРОМНОЕ спасибо за инструкции! Пробую, но пока не получилось... Не хватает знаний. Упустил или недопонял как и что именно должно оказаться в каталоге /usr/local/bin/live555ProxyServerEx ?
У меня этот каталог пуст и ошибка:
Код:
soho@RPi4:~$ systemctl status CameraProxy
● CameraProxy.service - Outside cameras RSTP Proxy
     Loaded: loaded (/etc/systemd/system/CameraProxy.service; enabled; vendor preset: enabled)
     Active: activating (auto-restart) (Result: exit-code) since Fri 2022-07-22 03:30:17 MSK; 8s ago
    Process: 6667 ExecStart=/usr/local/bin/live555ProxyServerEx -c /usr/local/etc/live555Proxy/live555Proxy.CameraProxy.cfg (code=exited, status=217/USER)
   Main PID: 6667 (code=exited, status=217/USER)
        CPU: 11ms
Поясните, пожалуйста, куда копать
 

Serg

Member
Прокси надо построить и проинсталировать, в том каталоге должны быть бинарники прокси:
  1. genMakefiles
  2. make
  3. make install
Если хотите могу прислать архив где все скомпилировано, сами себе поставите в нужний каталог. Но я б не доверял левым бинарникам, сам бы все делал :)
 
Останнє редагування:

c-a-v

Member
Если хотите могу прислать архив где все скомпилировано, сами себе поставите в нужний каталог. Но я б не доверял левым бинарникам, сам бы все делал
Serg, пришлите, пожалуйста! Сразу-то я не разглядел, что у вас собран не оригинальный live555 Media Server, а его "расширенная версия". И вот со сборкой её у меня проблема. Сколько ни бился, не собирается live555ProxyServerEx
 

Serg

Member
Если у вас собрался медіа сервер то вы уже почти все сделали. Только не забудьте сделать make install
Ex prоxy качать сдесь:
https://github.com/andreymal/live555ProxyServerEx, положить в директорию на том же самом уровне как и сервер. типа в одном каталоге 2 подкаталога: live - это оригинальный сервер, proxy - ето прокси.
config.rPI это файл конфигурации для прокси, в каталоге прокси надо запустить ./genMakefiles rPI; make; make install
 

mikhan

Member
На реолинке обновите прошивку на 2022 год, пофиксили много чего, в том числе теперь дахуа моник видит эти камеры через онвиф. Ранее тоже не работало.
Например у меня rlc-810a c прошивкой v3.1.0.956_22041507, vth2421 камеру показывает через онвиф

прошивки брать на сайте реолинка, автообновление в приложении НЕ работает
 

mikhan

Member
а, камера древняя, прошивок больше нет - тогда прокси...
 

c-a-v

Member
а, камера древняя, прошивок больше нет - тогда прокси...
да, всё верно, прошивка на камере установлена крайняя из доступных на сайте Reolink. Однако напрямую соединить с VTH не получалось.
Благодаря наводке от Serg соединил через прокси. Файлы конфигурации я отредактировал по-своему, ибо с теми, что указал Serg, лезли ошибки при сборке.
Сейчас всё удалось настроить, всё работает. Serg, большое спасибо!

Есть желание интегрировать VTH в Хоум Ассистант, но это уже офф-топик. Если у кого-то есть опыт, киньте линк в личку, пожалуйста!
 

Serg

Member
Дверные панели интегрируются существуюющим расширением https://github.com/rroller/dahua
Про монитор не знаю, не вижу что там можно интегрировать. Если показивать екран хасс то по моему легче дешевый планшет к стене прибить
 
Зверху