Блог

RTSP камеры в Home Assistant

Тесты проводились на базе Le Potato и Rock64 (с малиной вообще все плохо, попробовал поставить MotionEyeOs, в итоге жуткие тормоза (хотя сборка для малины) поэтому даже не стал продолжать)

Итак основная проблема это ffmpeg с аппаратным ускорением транскодирования.

для Le Potato гипотетически подходят сборки для AML905 TV боксов, но мне так и не удалось собрать вариант, в котором собрался бы amcodec который отвечает как раз за аппаратное ускорение

Одновременно с этим, установленный на Le Potato аддон motioneye в hassio вполне справлялся с обработкой потока и транскодированием. Со скоростью 15 кадров в секунду (но это штатная скорость motioneye для сетевых камер)

Rock64 более популярный девайс, поэтому для него есть аж собранный ffmpeg с полной поддержкой аппаратного ускорения

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

sudo add-apt-repository ppa:ayufan/rock64-ppa sudo apt-get update apt-cache policy ffmpeg

Получаем ответ

ffmpeg: Installed: 7:3.4.2-2 Candidate: 7:3.5~git20180113-1ayufan2 Version table: 7:3.5~git20180113-1ayufan2 500 500 http://ppa.launchpad.net/ayufan/rock64-ppa/ubuntu bionic/main arm64 Packages 7:3.4.4-0ubuntu0.18.04.1 500 500 http://ports.ubuntu.com bionic-security/universe arm64 Packages 500 http://ports.ubuntu.com bionic-updates/universe arm64 Packages *** 7:3.4.2-2 500 500 http://ports.ubuntu.com bionic/universe arm64 Packages 100 /var/lib/dpkg/status

И ставим самую старшую версию

sudo apt install ffmpeg=7:3.4.2-2

Потом ставим в хост motioneye. Зачем ? 

я пытался сделать более менее приемлемое качество при связке ffmpeg - ffserver но у меня ничего не получилось. То есть транскодинг в HLS работает просто великолепно. 1280*720 25к/с показывается просто божественно, гладко и четко, и если мы на смартфоне в Google Chrome открываем ссылку типа http://ip_камеры/playlist.m3u8 то все показывается просто замечательно. Но вот в НА это никуда не впихнуть. Опять же без перекодирования. От чего я и старался уйти, чтобы использовать стандартные варианты с mjpeg камерами без использования ffmpeg в НА. 

Но как только мы начинаем транскодить в MJPEG то все логи засыпает ошибками. 

При любых вариантах примененных мной конфигураций как ffmpeg так и ffserver

Поэтому я поставил в хост motioneye (тоже пляски с бубнами ибо официальный мануал кривой). 

Вот рабочий вариант (ffmpeg уже должен быть установлен):

apt-get install -y motion v4l-utils apt-get install -y python-pip python-dev python-setuptools curl libssl-dev libcurl4-openssl-dev libjpeg-dev libz-dev pip install motioneye mkdir -p /etc/motioneye cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf mkdir -p /var/lib/motioneye cp /usr/local/share/motioneye/extra/motioneye.systemd-unit-local /etc/systemd/system/motioneye.service systemctl daemon-reload systemctl enable motioneye systemctl start motioneye

Перезагрузка сервиса выполняется командой:

systemctl restart motioneye

Обновление:

pip install motioneye --upgrade

Логин admin, пароль пустой. Веб интерфейс живет по адресу http://ip_адрес:8765

Немного тонкостей:

Если добавить например две камеры, то mjpeg потоки будут жить по адресам:

http://ip_адрес:8081 для первой камеры

http://ip_адрес:8082 для второй камеры (и дальше по той же логике для остальных)

Что касается аддона hassio motioneye на Le Potato, то в принципе он справляется с нагрузкой, но начинает конфликтовать по портам с MQTT и Deconz. Причем что один что второй я переносил по портам - эффект минимальный. Где то они конфликтуют.

Что им там между собой не нравится я так и не понял, но глючило и тормозило все достаточно жестко. Но это скорее недостаток варианта сборки системы (HA + Deconz + MQTT и остальное и все в Docker)

Аппаратно к железке нет никаких претензий, она крутая.

Резюме

Мне удалось более менее сделать так чтобы RTSP камеры было видно в НА, но для этого камеры живут на MotionEye установленном на Rock64. 

LePotato + hassio в докер + motioneye пока не вывозят. И камеры периодически отваливаются и приходится их будить заходя в интерфейс motioneye

Но тесты продолжаются. Если есть желающие помочь в конфигурировании - велкам. Я открыт к совместному творчеству.

0

Вернуться назад
Вернуться назад