Тесты проводились на базе 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
Но тесты продолжаются. Если есть желающие помочь в конфигурировании - велкам. Я открыт к совместному творчеству.