У меня в квартире установлен аналоговый домофон Vizit, которому больше 10 лет. Уже давно хотел сделать автоматизацию для умного дома, которая при вызове от входной двери в подъезд с первого этажа мне в телеграм присылала бы фотографию набравшего номер квартиры.

Немного теории

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

Аудио (интерком Ln+ и Ln-)

  1. Ln+ (положительный аудиосигнал): по этому проводу передается положительная половина аудиосигнала. Он отвечает за передачу речевого сигнала от одного устройства к другому.

  2. Ln- (аудио-негативный): по этому проводу передается отрицательная половина аудиосигнала, который по сути является инверсией сигнала Ln+. Это помогает снизить шум и помехи, обеспечивая более четкую передачу звука.

Видео (GND и VIN1)

  1. GND (Земля): этот провод служит опорной точкой для видеосигнала. Это общее заземление, которое помогает стабилизировать видеосигнал и минимизировать электрические шумы.

  2. VIN1 (Видеовход): по этому проводу передается видеосигнал от камеры к монитору. Видеосигнал обычно представляет собой аналоговый композитный видеосигнал, который объединяет всю видеоинформацию (яркость, цвет, синхронизация и т. д.) в один сигнал.

Видеосигнал, передаваемый через VIN1, представляет собой стандартный аналоговый композитный сигнал. Это означает, что вся необходимая видеоинформация кодируется на одной несущей, которая затем декодируется принимающим монитором.

Это означает, что для того чтобы хоть что-то сделать с этим видеосигналом придётся подключить его к плате видеозахвата.

Физическое подключение

Мне понадобилась самая дешевая USB карта видеозахвата EasyCAP (HD), у разных продавцов она стоит от 300 до 600 рублей.

Kарта видеозахвата EasyCAP (HD) для ОС Win 10,8,7, XP / оцифровка / easycap
Kарта видеозахвата EasyCAP (HD) для ОС Win 10,8,7, XP / оцифровка / easycap

На самой плате понадобится только разъем "CVBS in" - расшифровывается как Composite Video Baseband Signal - это формат аналогового видеосигнала, который передает видео стандартной четкости, обычно с разрешением 480i или 576i.

Слаботочный щит до всех манипуляций
Слаботочный щит до всех манипуляций

Для подключения используется стандартный RCA (или тюльпан) разъем, но подумал и решил его срезать и использовать разъёмы как для 12 вольтового питания камер. Все равно на домофоне нет стандартного разъема, а витую пару проще заводить в разъем питания DC для камер видеонаблюдения.

"CVBS in" - расшифровывается как Composite Video Baseband Signal
"CVBS in" - расшифровывается как Composite Video Baseband Signal

После этого подключил параллельно через жилку витой пары на входящие клеммы GND и VIN1 блока Vizit BKM-440.

Подключение к блоку Vizit BKM-440
Подключение к блоку Vizit BKM-440

На этом с физическим подключением всё. Осталось понять как программно увидеть это изображение.

Программное подключение. Попытка №1

В качестве сервера умного дома у меня используется Home Assistant Operating System, установленная на Raspberry Pi 4 Model B. Изначально плату видеозахвата я воткнул в его USB порт.

       ▄██▄           _   _
     ▄██████▄        | | | | ___  _ __ ___   ___
   ▄████▀▀████▄      | |_| |/ _ \| '_ ` _ \ / _ \
 ▄█████    █████▄    |  _  | (_) | | | | | |  __/
▄██████▄  ▄██████▄   |_| |_|\___/|_| |_| |_|\___|          _
████████  ██▀  ▀██      / \   ___ ___(_)___| |_ __ _ _ __ | |_
███▀▀███  ██   ▄██     / _ \ / __/ __| / __| __/ _` | '_ \| __|
██    ██  ▀ ▄█████    / ___ \\__ \__ \ \__ \ || (_| | | | | |_
███▄▄ ▀█  ▄███████   /_/   \_\___/___/_|___/\__\__,_|_| |_|\__|
▀█████▄   ███████▀

Welcome to the Home Assistant command line.

System information
  IPv4 addresses for wlan0:
  IPv4 addresses for end0:  192.168.165.5/24
  IPv6 addresses for end0:  fe80::a1fb:ad4a:dcd3:4227/64

  OS Version:               Home Assistant OS 12.3
  Home Assistant Core:      2024.5.5

  Home Assistant URL:       http://homeassistant.local:8123
  Observer URL:             http://homeassistant.local:4357
~ # dmesg
...
[57002.035727] usb 1-1.3: new high-speed USB device number 4 using xhci_hcd
[57002.137540] usb 1-1.3: New USB device found, idVendor=534d, idProduct=0021, bcdDevice= 1.21
[57002.137569] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[57002.137583] usb 1-1.3: Product: AV TO USB2.0
[57002.137594] usb 1-1.3: Manufacturer: MACROSILICON
[57002.137604] usb 1-1.3: SerialNumber: 20150130
[57002.148506] hid-generic 0003:534D:0021.0001: hiddev96,hidraw0: USB HID v1.10 Device [MACROSILICON AV TO USB2.0] on usb-0000:01:00.0-1.3/input4
[57002.185721] usb 1-1.3: Found UVC 1.00 device AV TO USB2.0 (534d:0021)
[57002.186785] usb 1-1.3: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.
[57002.191729] usbcore: registered new interface driver uvcvideo
[57002.202828] usbcore: registered new interface driver snd-usb-audio
~ #

Плата обнаруживается как устройство с идентификатором USB ID 534d:0021.

Но дальше проблема - она не распознаётся как /dev/video0. После некоторых поисков нашёл решение, которое позволяет использовать команду modprobe uvcvideo для загрузки модуля ядра uvcvideo в работающее ядро.

Но у меня это решение вызывало только сообщение об ошибке «modprobe: невозможно изменить каталог на «/lib/modules»: такого файла или каталога нет» - это указывает на то, что команда «modprobe» не может найти каталог, в котором хранятся модули ядра.

Дальше я передумал предпринимать шаги по устранению этой ошибки, чтобы не повредить свою работающую систему, потому что там много всего установлено - не хотелось тратить время потом на восстановление.

Программное подключение. Попытка №2

Решил использовать другой микрокомпьютер для решения этой задачи - у меня ещё с 2017 года валялся Orange Pi Zero 512Mb. Поставил на него Armbian - дистрибутив операционной системы Linux, предназначенный для работы на одноплатных компьютерах и ffmpeg.

  ___  ____  _   _____
 / _ \|  _ \(_) |__  /___ _ __ ___
| | | | |_) | |   / // _ \ '__/ _ \
| |_| |  __/| |  / /|  __/ | | (_) |
 \___/|_|   |_| /____\___|_|  \___/

Welcome to Armbian_community 24.5.0-trunk.667 Jammy with Linux 6.6.31-current-su                                                                                        nxi

No end-user support: untested automated build

System load:   27%              Up time:       2 min
Memory usage:  16% of 490M      IP:            192.168.165.106
CPU temp:      74°C             Usage of /:    13% of 15G
RX today:      83.2 MiB

[ 4 security updates available, 4 updates total: apt upgrade ]
Last check: 2024-05-25 22:17

[ General system configuration (beta): armbian-config ]

Last login: Wed May 22 03:20:41 2024
root@orangepizero:~# dmesg
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.6.31-current-sunxi (armbian@next) (arm-linux-gnueabihf-gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #1 SMP Fri May 17 10:02:40 UTC 2024
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=50c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Xunlong Orange Pi Zero
[    0.000000] Memory policy: Data cache writealloc
[    3.820102] usb 2-1: new high-speed USB device number 2 using ehci-platform
[    3.836094] usb 3-1: new high-speed USB device number 2 using ehci-platform
[    3.982635] usb 2-1: New USB device found, idVendor=534d, idProduct=0021, bcdDevice= 1.21
[    3.982699] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    3.982727] usb 2-1: Product: AV TO USB2.0
[    3.982750] usb 2-1: Manufacturer: MACROSILICON
[    3.982772] usb 2-1: SerialNumber: 20150130

root@orangepizero:~# ffmpeg -sources |grep video
ffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)
  configuration: --prefix=/usr --extra-version=0ubuntu0.22.04.1 --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --arch=arm --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
Auto-detected sources for video4linux2,v4l2:
  /dev/video0 [AV TO USB2.0]
  /dev/video1 [AV TO USB2.0]

root@orangepizero:~# 

Консольная программа FFmpeg сразу после установки без дополнительных манипуляций отобразила что плата видео захвата доступна устройством /dev/video0.

Тестовое получение фото и видео от входной двери в подъезд с домофона Визит в Linux

Делаю запрос на поддерживаемые форматы устройства видеозахвата, расположенного в /dev/video0

root@orangepizero:~# ffmpeg -list_formats all -i /dev/video0
ffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)
  configuration: --prefix=/usr --extra-version=0ubuntu0.22.04.1 --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --arch=arm --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
[video4linux2,v4l2 @ 0x1f22080] Compressed:       mjpeg :          Motion-JPEG : 480x320 640x480 720x480
[video4linux2,v4l2 @ 0x1f22080] Raw       :     yuyv422 :           YUYV 4:2:2 : 480x320
/dev/video0: Immediate exit requested

root@orangepizero:~# mkdir output
root@orangepizero:~#

Команда Linux ffmpeg -loglevel error -i /dev/video0 -r 1 -t 5 output/grab-%d.jpg используется для захвата изображений с камеры которая, находится у входа в подъезд и сохранения их в виде файлов JPEG.

root@orangepizero:~# ffmpeg -loglevel error -i /dev/video0 -r 1 -t 5 output/grab-%d.jpg
root@orangepizero:~#
Эта картинка просто как иллюстрация
Эта картинка просто как иллюстрация

Команда Linux ffmpeg -y -i /dev/video0 -t 30 -pix_fmt yuv420p -c:v libx264 output/video.mp4 используется для захвата видео с камеры которая, находится у входа в подъезд и сохранения его в виде файла MP4.

root@orangepizero:~# ffmpeg -y -i /dev/video0 -t 30 -pix_fmt yuv420p -c:v libx264 output/video.mp4
ffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)
  configuration: --prefix=/usr --extra-version=0ubuntu0.22.04.1 --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --arch=arm --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 36448.666588, bitrate: 61440 kb/s
  Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 480x320, 61440 kb/s, 25 fps, 25 tbr, 1000k tbn, 1000k tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0x5de820] using cpu capabilities: ARMv6 NEON
[libx264 @ 0x5de820] profile High, level 2.1, 4:2:0, 8-bit
[libx264 @ 0x5de820] 264 - core 163 r3060 5db6aa6 - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output/video.mp4':
  Metadata:
    encoder         : Lavf58.76.100
  Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv420p(tv, progressive), 480x320, q=2-31, 25 fps, 12800 tbn
    Metadata:
      encoder         : Lavc58.134.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
frame=  250 fps= 24 q=-1.0 Lsize=       9kB time=00:00:09.88 bitrate=   7.5kbits/s dup=28 drop=0 speed=0.965x
video:5kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 71.028900%
[libx264 @ 0x5de820] frame I:1     Avg QP: 9.00  size:    78
[libx264 @ 0x5de820] frame P:63    Avg QP: 9.14  size:    25
[libx264 @ 0x5de820] frame B:186   Avg QP:12.67  size:    17
[libx264 @ 0x5de820] consecutive B-frames:  0.8%  0.0%  0.0% 99.2%
[libx264 @ 0x5de820] mb I  I16..4: 100.0%  0.0%  0.0%
[libx264 @ 0x5de820] mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  0.0%  0.0%  0.0%  0.0%  0.0%    skip:100.0%
[libx264 @ 0x5de820] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.0%  0.0%  0.0%  direct: 0.0%  skip:100.0%
[libx264 @ 0x5de820] 8x8 transform intra:0.0%
[libx264 @ 0x5de820] coded y,uvDC,uvAC intra: 0.0% 0.0% 0.0% inter: 0.0% 0.0% 0.0%
[libx264 @ 0x5de820] i16 v,h,dc,p: 95%  0%  5%  0%
[libx264 @ 0x5de820] i8c dc,h,v,p: 100%  0%  0%  0%
[libx264 @ 0x5de820] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x5de820] kb/s:3.80
root@orangepizero:~#

Продолжение в следующей части статьи

После того картинка появилась необходимо будет программно как будто создать IP-камеру на базе Armbian, которая состоит из карты видеозахвата, подключенной к /dev/video0 и транслировать RTSP с помощью MediaMTX (ранее назывался RTSP Simple Server).

Это позволит интегрировать RTSP поток в Home Assistant и в какую-нибудь систему видеонаблюдения, например Synology Surveillance Station.

А уже из Home Assistant можно легко сделать автоматизацию для умного дома, которая при вызове от входной двери в подъезд с первого этажа в телеграм присылала бы фотографию набравшего номер квартиры.

Про это как раз будет вторая часть этой статьи, которая будет опубликована в течении двух недель.

Автор: Михаил Шардин,

27 мая 2024 г.

Комментарии (57)


  1. vbifkol
    27.05.2024 03:02
    +6

    Когда-то очень давно меня был проект с прокидкой домофона в телевизионную сеть. Даже какой-то прототип делали, но забили - вариант что какая-нибудь бабулька сидит и постоянно пырится на всех входящих людям не зашел.


    1. basn63
      27.05.2024 03:02
      +1

      а на телек трансляция велась бы или только один кто-то мог смотреть?


      1. vbifkol
        27.05.2024 03:02
        +6

        Это в 2011 году было, делали транскодинг в ТВ-сигнал на какую-то стандартную частоту из неиспользовавшихся. Ну то есть на условно (точно не помню) 11 программе вещалось изображение с камеры домофона на весь подъезд, кто включил тот и смотрит, вне зависимости от того, какой телик - даже на ч/б с механическим селектором частоты.


        1. empenoso Автор
          27.05.2024 03:02
          +2

          Необычное решение, я про проводное подключение подумал


          1. vbifkol
            27.05.2024 03:02
            +3

            Не, проводное конечно же, не в эфир же гадить. Если забыли - аналоговое ТВ шло с коллективной антенны в общеподъездную шину, туда и подключались.


            1. sansar
              27.05.2024 03:02
              +1

              модулятор от сеги так в 3х подъездах использовал еще в том-же 11 году.


    1. empenoso Автор
      27.05.2024 03:02
      +1

      По моему иногда застройщики так делают сейчас


    1. starik-2005
      27.05.2024 03:02
      +1

      В нашем доме в подъезде одном на отдельный канал кабельного трансляция с камеры. Как сделали - ваще не в курсе, но работает. Может быть это та самая трансляция на ТВ-канал.


    1. Vitimbo
      27.05.2024 03:02
      +1

      У нас такое работает. Включаешь определенный канал на телевизоре и можешь 24*7 залипать в камеру на домофоне.


  1. legioner
    27.05.2024 03:02
    +3

    После того картинка появилась необходимо будет программно как будто
    создать IP-камеру на базе Armbian, которая состоит из карты
    видеозахвата, подключенной к /dev/video0 и транслировать RTSP с помощью MediaMTX (ранее назывался RTSP Simple Server).

    Я искал готовые устройства именно для цели захвата картинки с домофона в RTSP и даже нашел, но жаба пока пересиливает https://aliexpress.ru/item/1005003783248003.html


    1. empenoso Автор
      27.05.2024 03:02
      +3

      Ого! Даже не знал, что такие есть. В целом самодельное решение дешевле, но надо тратить время на настройку.


      Устройство по ссылке выше:


      1. Poison48
        27.05.2024 03:02
        +15

        Можно приобрести плату от простого китайского аналогово видео регистратора на 4 канала (меньше нет). Они все умеют отдавать поток в RTSP. Необходимо только корпус приколхозить\напечатать. Получится в 2 раза дешевле.


        1. legioner
          27.05.2024 03:02
          +2

          Они все умеют отдавать поток в RTSP

          Не знал, спасибо


          1. ArtRoman
            27.05.2024 03:02
            +1

            Я столкнулся с тем, что у этих дешёвых IP-камер вещание без мультикаста, и ограничение в 4 одновременных клиента.


            1. legioner
              27.05.2024 03:02

              Мне достаточно одного - лишь бы ZoneMinder показывал


        1. MaFrance351
          27.05.2024 03:02
          +2

          А ещё есть специальные девайсы - "видеосерверы", по сути просто начинка от IP-камеры, но вместо матрицы композитный вход.


      1. sekuzmin
        27.05.2024 03:02
        +1

        Это устройство стоит как половина Raspberry Pi 5. А с постоянным видеопотоком с камеры на Raspberry Pi 5 можно добавить face и т.п. recognition, записывать и транслировать видео куда хотите в удобном формате. И отсылать алерты в тот же телеграм в текстовом виде, если лицо успешно распознано, или в виде фото, если не распознано.


      1. Awalder
        27.05.2024 03:02
        +1

        У Beward тоже раньше были так называемые видеокодеры, B101S, B1018. Сейчас снято с производства, наверняка на авито можно найти. Прошивки русскоязычные.


      1. wolverin-a
        27.05.2024 03:02

        v4l2rtspserver из репозитория сделает тоже самое, настройка элементарная


  1. Cpsskipper
    27.05.2024 03:02
    +7

    Зачем усложнять? Берется NVR с поддержкой аналоговых камер и оттуда передается в HA по RTSP