Вот подошел момент когда я перепробовал различные схемы в организации подключения к своей плате Raspberry Pi 3 Model B камер, пока это были USB камеры, но на них же все не останавливается. А потому сегодня (06.03.2017) я разберу как к утилите motion прикрутить Webинтерфейс (имя ему: motionEye) и завести на мониторинг одну, несколько различных IP камер c USB камерами у меня что-то не задалось. Все действия будут происходить на моем миникомпьютере Raspberry Pi 3 Model B.

Хочу отметить что установленный дистрибутив на карту MicroSD относится к версии января 2017 года плюс моя заметка по первоначальной настройке:

Что ж начнем…

pi@raspberrypi:~ $ sudo apt-get update && sudo apt-get upgrade -y

pi@raspberrypi:~ $ sudo rpi-update

pi@raspberrypi:~ $ sudo reboot

pi@raspberrypi:~ $ uname -a && lsb_release -a

Linux raspberrypi 4.9.13-v7+ #974 SMP Wed Mar 1 20:09:48 GMT 2017 armv7l GNU/Linux

No LSB modules are available.

Distributor ID: Raspbian

Description: Raspbian GNU/Linux 8.0 (jessie)

Release: 8.0

Codename: jessie

pi@raspberrypi:~ $ sudo apt-get install python-pip python-dev curl libssl-dev libcurl4-openssl-dev libjpeg-dev libx264-142 libavcodec56 libavformat56 libmysqlclient18 libswscale3 libpq5 python-tornado python-jinja2 python-imaging motion v4l-utils -y

После устанавливаю утилиту ffmpeg посредством deb пакета:

pi@raspberrypi:~ $ wget https://github.com/Motion-Project/motion/releases/download/release-4.0.1/pi_jessie_motion_4.0.1-1_armhf.deb

pi@raspberrypi:~$ sudo dpkg -i pi_jessie_motion_4.0.1-1_armhf.deb

pi@raspberrypi:~ $ sudo pip install motioneye

pi@raspberrypi:~ $ sudo mkdir -p /etc/motioneye

pi@raspberrypi:~$ sudo cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf

pi@raspberrypi:~ $ sudo mkdir -p /var/lib/motioneye

pi@raspberrypi:~ $ sudo cp /usr/local/share/motioneye/extra/motioneye.systemd-unit-local /etc/systemd/system/motioneye.service

pi@raspberrypi:~ $ sudo systemctl daemon-reload

pi@raspberrypi:~ $ sudo systemctl enable motioneye

Created symlink from /etc/systemd/system/multi-user.target.wants/motioneye.service to /etc/systemd/system/motioneye.service.

pi@raspberrypi:~ $ sudo systemctl start motioneye

После проверяю, что в системе поднялся порт 8765 по которому доступен Webинтерфейс motioneye:

pi@raspberrypi:~ $ sudo netstat -tulpn | grep :8765

tcp 0 0 0.0.0.0:8765 0.0.0.0:* LISTEN 5144/python

Отлично, теперь запускаю браузер и в строке URL адреса указываю http://IP&DNS:8765 платы Raspberry Pi 3 Model B с другой системы, к примеру я со своей рабочей системы под управлением Ubuntu Trusty amd64 Gnome Classic.

pi@raspberrypi:~$ ip r

default via 10.7.8.1 dev eth0 metric 202

10.7.8.0/23 dev eth0 proto kernel scope link src 10.7.8.53 metric 202

И вот передо мной окно аутентификации в Web интерфейс:

Доступ во Frontend панели управления MotionEye

Чтобы авторизоваться используем дефолтные данные, где

Username: admin

Password: нет пароля

и нажимаем Login

По умолчанию если вы видите данное сообщение: «You have not configured any camera yet. Click here to add one…» это значит что ни одна камера пока не сконфигурирована.

Нажимаю по данной гиперссылке и добавляю IP камеру:

Добавляю сетевую камеру в MotionEye

Camera Type: Network Camera

URL: rtsp://10.7.7.48:554/cam/realmonitor?channel=1&subtype=0

Username: admin

Password: admin

Camera: здесь уже само подставилось: Rtsp Server/2.ORTSP/TCP Camera

и нажимаю OK

После чего как камера успешно добавилась в панели администрирования motionEye можно видеть какие параметры можно настраивать и сам видео поток получаемый с камеры в правой части:

Окно настройки камеры и отображаемый видеопоток

Хорошо, для эксперимента добавляю еще 2 камеры:

rtsp://admin:admin@10.7.7.55:554/cam/realmonitor?channel=1&subtype=0

rtsp://admin:admin@10.7.7.30:554/cam/realmonitor?channel=1&subtype=0

Проверяю температуру (пока кулер не подключал):

pi@raspberrypi:~$ vcgencmd measure_temp

temp=81.1'C

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

Добавил еще парочку IP камер:

rtsp://admin:admin@10.7.7.48:554/cam/realmonitor?channel=1&subtype=1

rtsp://admin:admin@10.7.7.79:554/cam/realmonitor?channel=1&subtype=0

pi@raspberrypi:~$ vcgencmd measure_temp

temp=82.7'C

Пока тестировал добавление камер, выявил, что не все можно подключить к Web-интерфейсу, подключаются только те камеры у которых: Тип = ONVIF(h264), в моем случае это были все из серии RVI, может еще какие, но под рукой у меня их нет.

Теперь если заходить на Web-интерфейс: http://10.7.8.53:8765, авторизоваться видно будет все добавленные камеры, что даже удобнее чем через связку утилиты ZoneMinder+Montage:

Но тут важно понимать, что сам ZoneMinder очень требователен к ресурсам, а Raspberry Pi 3 Model B этим не может похвастаться, у него просто другие задачи.

Вид отображаемых добавленных сетевых камер в Web интерфейсе

Прикольно да!

Чтобы включить запись видеопотока, нужно зайти в настройки камеры и переключить: Movies в положение ON, а тип записываемого видео:

Preserve Movies: Forever (хотя на свое усмотрение можно указать другое).

Активирую захват движения в камере и преобразование в видеопоток

А после для активации изменений нажать Apply.

Если камера пишет, то в интерфейсе MotionEye экран камеры отображается красным по контуру:

Если камера пишет видео то ее обрамление выделяется краснымЧтобы просмотреть видео которое было записано нужно в окошке камеры нажать на иконку стрелочки в право в круге:

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

Окно просмотра всех сохранненных видео роликов движения в камере

Просмотреть видео в окне нельзя, но скачивается оно в формате mp4 так что проблем с проигрыванием на компьютере/планшете/смартфоне быть не должно.

Местонахождение сохраняемых видео файлов в системе Raspbian:

pi@raspberrypi:~$ ls /var/lib/motioneye/

Camera1 Camera2 Camera3 Camera4 Camera5

Где Camera[1-5] это для каждой камеры создается свой каталог и он не удаляется если удалить камеру из Web-интерфейса.

Ниже пример содержимого из камеры Camera1 за текущую дату и видеофрагменты:

pi@raspberrypi:~$ ls /var/lib/motioneye/Camera1/2017-03-06/

16-09-22.mp4 16-10-59.mp4.thumb 16-15-28.mp4 16-29-42.mp4.thumb

16-09-22.mp4.thumb 16-11-43.mp4 16-15-28.mp4.thumb 16-51-50.mp4

16-10-59.mp4 16-11-43.mp4.thumb 16-29-42.mp4 16-51-50.mp4.thumb

В файле /etc/motioneye/motion.conf указаны какие камеры сейчас добавлены, а в месте с ними какие конфигурационные файлы под камеру используются.

pi@raspberrypi:~$ sudo nano /etc/motioneye/motion.conf

thread thread-5.conf

thread thread-1.conf

Внутри этих файлов, к примеру: thread-5.conf предопределен дефолтный путь место сохранения видеофайлов, в целях практического сохранения его лучше предопределить, либо на подключенный к Raspberry Pi 3 Model B внешний жесткий диск, либо в облако (OwnCloud,Dropbox,Yandex-disk). Диск практичнее, примотав его скотчем к плате или выделить под всю систему отдельный бокс.

pi@raspberrypi:~$ sudo nano /etc/motioneye/thread-1.conf

target_dir /var/lib/motioneye/Camera1

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

В ходе такого осмотра возможностей обнаружил для себя, что можно не только писать видео фрагменты, но и сохранять изображения:

Still Images: On

Preverse Pictures: Forever

Включаю настройку сохранения изображений движения в камере

После не забываем для принятия изменений нажать Apply.

pi@raspberrypi:~$ ls /var/lib/motioneye/Camera1/2017-03-06/

17-15-31.jpg 17-15-36.jpg 17-15-41.jpg 17-15-46.jpg 17-15-51.jpg

17-15-32.jpg 17-15-37.jpg 17-15-42.jpg 17-15-47.jpg 17-15-52.jpg

17-15-33.jpg 17-15-38.jpg 17-15-43.jpg 17-15-48.jpg 17-15-53.jpg

17-15-34.jpg 17-15-39.jpg 17-15-44.jpg 17-15-49.jpg

17-15-35.jpg 17-15-40.jpg 17-15-45.jpg 17-15-50.jpg

Сохраненные изображения смотрятся также при щелчке по соответствующему значку в экране камеры:

Для просмотра изображений нажимаем на соответствующий элемент менюСледом открывает, что-то вроде проводника по изображениям по аналогии с видео файлами:

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

Если изображений много, то при просмотре их можно листать

Для обновления на новую версию motionEye:

pi@raspberrypi:~ $ sudo pip install motioneye --upgrade

pi@raspberrypi:~ $ sudo systemctl restart motioneye

Для удаления MotionEye:

pi@raspberrypi:~ $ sudo pip uninstall motioneye -y

pi@raspberrypi:~ $ sudo rm -rf /etc/motioneye/

pi@raspberrypi:~ $ sudo rm /etc/systemd/system/motioneye.service

pi@raspberrypi:~ $ sudo rm -Rf /var/lib/motioneye

pi@raspberrypi:~ $ sudo apt-get remove --purge motion -y

pi@raspberrypi:~ $ ps aux | grep motion

root 441 1.2 2.9 64056 27800 ? Ssl 19:07 0:48 /usr/bin/python /usr/local/bin/meyectl startserver -c /etc/motioneye/motioneye.conf

root 932 0.0 1.3 27720 12528 ? S 19:07 0:00 /usr/bin/python /usr/local/bin/meyectl startserver -c /etc/motioneye/motioneye.conf

pi 4787 0.0 0.2 4280 2020 pts/0 S+ 20:11 0:00 grep --color=auto motion

pi@raspberrypi:~ $ sudo kill -9 441 932

Работает, теперь мне осталось прикупить несколько бюджетных камер (камеры должны поддерживать: ONVIF) из Китая и наладить их установку в необходимом мне месте моего дома. Итого я нашел то приложение которое может воплотить мою задумку, в частности: мониторинг за котлом, за периметром, за моими попугаями (Pirrura Frontalis). На этой ноте я прощаюсь, с уважением Олло Александр aka ekzorchik.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru