Вот подошел момент когда я перепробовал различные схемы в организации подключения к своей плате 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 интерфейс:
Чтобы авторизоваться используем дефолтные данные, где
Username: admin
Password: нет пароля
и нажимаем Login
По умолчанию если вы видите данное сообщение: «You have not configured any camera yet. Click here to add one…» это значит что ни одна камера пока не сконфигурирована.
Нажимаю по данной гиперссылке и добавляю IP камеру:
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 этим не может похвастаться, у него просто другие задачи.
Прикольно да!
Чтобы включить запись видеопотока, нужно зайти в настройки камеры и переключить: 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.