RTSP камеры в Home Assistant

03 февраля 2019, 09:46

Тесты проводились на базе 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


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


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

К списку блогов

Похожие записи

05 февраля 2019, 00:29
Строю свой первый дом и рассказываю о муках выбора, проводке под умный дом, оборудовании. 30.04.2019 - об уличной проводке
19 апреля 2019, 20:53
Требуется ваше мнение!
13 февраля 2019, 22:00
Подключение радио на Xiaomi Gateway к Home Assistant c дальнейшим использованием в автоматизациях
06 февраля 2019, 12:02
Автоматизированное открытие/закрытие окна
21 марта 2019, 11:59
Самое важное из апдейта Home Assistant 0.9 от 20.03.19.
21 февраля 2019, 21:12
Самое важное из апдейта Home Assistant 0.88 от 20.02.19.
04 апреля 2019, 12:45
Самое важное из апдейта Home Assistant 0.91-0.91.4 от 03.04.19.
07 февраля 2019, 21:12
Самое важное из апдейта Home Assistant 0.87 от 06.02.19.
19 января 2019, 20:49
Делюсь новостями по проекту.
15 января 2019, 20:54
Умная вытяжка.