Всем хорошего дня, сегодня будет разбор, как в сервис домашнего видеонаблюдения подключить камеру, но не просто IP
–камеру, а камеру Вашего смартфона. У Вас уже наверное скопилось множество техники которая более не используется (надеюсь Вы как и я не терпите продажу того чем не пользуетесь). Еще раз напомню что сервис MotionEye
— это Web
-ориентированная обертка вокруг утилиты видеонаблюдения Motion
. В паре они образуют сервис для организации домашнего видеонаблюдения за квартирой, домом.
Итак, что используется в данной статье:
VM под QEMU+KVM:
Характеристики:
CPU = 2
HDD = 50
RAM = 2
OC: ubuntu-18.04.2-live-server-amd64.iso (172.33.33.2)
Смартфон: Huawei Honor 5c (172.33.33.14)
Подключаюсь по SSH
к данной системе и произвожу связку следующих шагов для достижения цели поставленной в статье:
Первоначальная установка внутри OC — Ubuntu 18.04 Server
Установка MotionEyE
Настройка смартфона (Huawei Honor C5)
Действия по объединению MotionEye и смартфона
Шаг №1: Первоначальная установка внутри OC
В данном шаге я задействую свой скрипт преднастройки операционной системы которая была развернута через сервис PXE
(центральный физический сервер HP MicroServer Gen8: ESXi 6.0.0: VM: srv-pxe
) который у меня функционирует. Если Вам интересно, как дома или на работе использовать PXE
то прошу сюда: https://www.ekzorchik.ru/?s=pxe
или https://www.ekzorchik.ru/?s=fog
А роль где обкатываются настройки достается самосборному серверу. В вашем случае это Ось установленная где Вам угодно и настройки по дефолту.
ekzorchik@srv-bionic:~$ hg clone --insecure https://ekzorchik@172.35.35.8/hg/dproject
где 172.35.35.8
— это сетевой адрес в моей локальной сети сервиса на котором поднята связка централизованного хранения кода, т. е. Mercurial + Web
ekzorchik@srv-bionic:~$ sudo ./dproject/default
-> мой скрипт преднастройки системы на последующее использование.
Шаг №2: Установка MotionEyE
ekzorchik@srv-bionic:~$ sudo apt-get install motion ffmpeg v4l-utils python-pip python-dev curl libssl-dev libcurl4-openssl-dev libjpeg-dev -y ekzorchik@srv-bionic:~$ sudo pip install motioneye ekzorchik@srv-bionic:~$ sudo mkdir -p /etc/motioneye ekzorchik@srv-bionic:~$ sudo cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf ekzorchik@srv-bionic:~$ sudo mkdir -p /var/lib/motioneye ekzorchik@srv-bionic:~$ sudo cp /usr/local/share/motioneye/extra/motioneye.init-debian /etc/init.d/motioneye ekzorchik@srv-bionic:~$ sudo chmod +x /etc/init.d/motioneye ekzorchik@srv-bionic:~$ sudo update-rc.d -f motioneye defaults ekzorchik@srv-bionic:~$ sudo update-rc.d -f motion defaults ekzorchik@srv-bionic:~$ sudo /etc/init.d/motioneye start ekzorchik@srv-bionic:~$ sudo netstat -tulpn | grep :8765 tcp 0 0 0.0.0.0:8765 0.0.0.0:* LISTEN 4978/python
С основной системы (у меня ноутбук Lenovo E555 ОС: Ubuntu 18.04 Desktop
, браузер: Google Chrome
) запускаю браузер и в новой вкладке открываю URL
вида обращения к серверу где развернул сервис MotionEye
и порт, т. е. Получается: http://IP&DNS:8765 or http://172.33.33.2:8765
Авторизуюсь под дефолтными аутентификационными данными.
Username: admin
Password: пустой, отсутствует
и нажимаю кнопку Login
После мне нужно создать пароль для этой административной учетной записи (т. е. Username: admin
). Перехожу Settings — General Settings
Admin Username: admin
Admin Password: 712mbddr@
и по окончании внесения изменений в настройки нажимаю Apply
для их фиксации.
Также можно задать пароль на учетную запись через правку конфигурационного файла:
ekzorchik@srv-bionic:~$ sudo nano /etc/motioneye/motion.conf # @enabled on # @show_advanced off # @normal_password # @admin_username admin # @admin_password 202c31e6e1773bfbae218996cf491f76913f909e
и после не забывать сохранить внесенные изменения.
Где 202c31e6e1773bfbae218996cf491f76913f909e
— есть пароль 712mbddr@
, правда по какому алгоритму идет его составление я пока не разобрался. Но для целей автоматизации установки правка и добавление в файле всецело достаточно. И для активации перезапускаем сервис MotionEyE:
ekzorchik@srv-bionic:~$ sudo systemctl restart motioneye && sudo systemctl status motioneye | head -n5 ● motioneye.service - LSB: Start the motionEye server Loaded: loaded (/etc/init.d/motioneye; generated) Active: active (running) since Tue 2019-05-14 11:05:36 MSK; 17ms ago Docs: man:systemd-sysv-generator(8) Process: 5112 ExecStop=/etc/init.d/motioneye stop (code=exited, status=0/SUCCESS)
Шаг №3: Настройка смартфона (Huawei Honor C5
)
Подключаюсь к локальной сети через включенный модуль Wi-Fi
Т.к. у меня смартфон на базе Android
то установку дополнительно приложения позволяющего превратить его в камеру видеонаблюдения производим через сервис от Google: - «Play Market»
, тут через поиск нам нужно ПО
под именем: «IP Webcam
». Устанавливаем его, я использую пока бесплатную версию. Запускаем его, переходим (Настройки соединения) — Вещание в локальной сети — Логин/пароль
Логин: ekzorchik
Пароль: 712mbddr@
и нажимаю «OK
»
Предпочитаемое семейство адресов: IPv4
Порт HTTP & RTSP: оставляю дефолтным, т. е. 8080
Поддержка ONVIF: Включить поддержку ONVIF
и нажимаю «Запустить
» (Начать трансляцию
)
Следом будут один раз запущены уведомления о том, что для работы программы пользователь телефона должен или не должен дать соответствующее согласие:
Разрешить приложению IP Webcam Прямой доступ к камере для фотосъемки и видеозаписи: Разрешить
Разрешить приложенияю IP Webcam Прямой доступ к микрофону для записи звука: Разрешить
Разрешить приложению IP Webcam доступ к фото, мультимедиа и файлам на устройстве: Разрешить
И вот на экране телефона вижу то что видит камера и URL
адреса при обращении через браузер в локальной сети, т. е. Если запустить Google Chrome
и обратиться к телефону http://172.33.33.14:8080 & https://172.33.33.14:8080.
Авторизовавшись под заданными в приложении IP Webcam
данными, в моем случае
Login: ekzorchik
Pass: 712mbddr@
видеопоток будет во вкладке браузера.
Если нажать на «Еще
» – «RTSP/h264/ONVIF адреса
» то подчерпнув из справки сведения, что
Адрес RTSP для вещания видео в формате h264: http://IP:PORT/
H264/uLaw через RTSP: rtsp://ip:port/h264_ulaw.sdp
H264/HQ PCM через RTSP: rtsp://ip:port/h264_pcm.sdp
Веб-сервис ONVIF: http://ip:port/onvif/device_service
На этом базовая настройка приложения IP Webcam
завершена
Шаг №4: Действия по объединению MotionEye
и смартфона
Переключаемся к открытой вкладке с сервисом MotionEyE
и заводим видеопоток от смартфона:
http://IP&DNS:port && http://172.33.33.2:8765 — Settings — Add Camera
Camera Type: Network Camera
URL: rtsp://172.33.33.14:8080/h264_ulaw.sdp
Username: ekzorchik
Password: 712mbddr@
Camera: данное поле подставится само после авторизации
IP Webcam Server 0.4 RTSP/TCP Camera
и нажимаю кнопку «ОК
»
и в зависимости от того, куда я направляю свой смартфон в окне настроек MotionEyE
при добавленной камере наблюдаю поставляемый ее видеопоток:
Включаю расширенные настройки для добавленной камеры:
http://IP&DNS:Port && http://172.33.33.2:8765 — Camera1 — (General Settings) — Advanced Settings
из положения OFF
в положение ON
, а после Apply
.
Можно организовать поворотный штатив самоделкина с радиоуправлением. Об этом чуть позже.
Мои настройки Камеры в MotionEyE
(Video Device: ON)
Video Resolution: 1920x1080
(Video Streaming: OFF)
(Movies: ON)
Movie File Name: %Y-%m-%d/%H-%M-%S
Movie Format: MPEG4 (.avi)
Movie Quality: 75%
Recording Mode: Motion Triggered
Maximum Movie Length: 900 (seconds)
При дефолтных настройках если что-то попадает в объектив по типу движения происходит запись ролика который сохраняется по адресу в файловой системе.
Preserve Moview: Forever
если выставить значение Custom
, то можно указать как долго будут храниться видеозаписи в днях каталога камеры (/var/lib/motioneye/Camera1
)
«This will recursively remove all old media files present in the directory "/var/lib/motioneye/Camera1", not just those created by motionEye!»
(Motion Detection: ON)
Frame Change Threshold: 1%
Auto Noise Detection: On
Light Switch Detection: 0%
Motion Gap: 5 (разрывать запись через 5 секунд после нефиксации движения) (seconds)
Capture Before: 1 (frames)
Capture After: 1 (frames)
Minimum Motion Frames: 20 (frames)
Mask: ON
Mask Type: Editable (я отметил квадратиками на камере что включать в запись если обнаружится движение)
После сохраняю все настройки через нажатие на Apply
и теперь как-только в поле действие камеры попадает фиксация движения происходит запись в систему MotionEyE
.
На заметку: Советую не максимальные настройки разрешения камеры выставлять, а оптимальные, плюс меньше нагрузка на процессор смартфона и сервиса MotionEyE. IP Webcam — (Настройки IP Webcam) — Настройки видео — Разрешение видео: 960x720
Настройки фото — максимальные.
Если запись звука не нужна, то на смартфоне ее нужно отключить (Прочее) Режим звука — Выключить звук.
На заметку: Может так случиться что камеру по потоку RSTP
добавили, но вот настройки Video Streaming
не отображаются, максимум что можно сделать это включить и выключать. Посмотрев логи
ekzorchik@srv-bionic:~$ sudo tail -f /var/log/motion.log [1:ml1:Camera1] [ERR] [NET] netcam_rtsp_open_context: unable to open input(rtsp://ekzorchik:712mbddr@@172.33.33.14:8080/h264_ulaw.sdp): Server returned 401 Unauthorized (authorization failed)
наблюдаю что проблема в пароле 712mbddr@
точнее в спецсимволе, изменяю к примеру на Aa1234567
(на телефоне и перезавожу камеру в MotionEye
)
Если в логах ошибка:
ekzorchik@srv-bionic:~$ sudo tail -f /var/log/syslog May 14 12:18:31 srv-bionic motion: [1:ml1:Camera1] [ALR] [NET] netcam_start: Network Camera thread starting... for url (rtsp://172.33.33.14:8080/h264_ulaw.sdp) May 14 12:18:36 srv-bionic motion: [1:nc1:Camera1] [ALR] [NET] netcam_handler_loop: Camera handler thread [3] started May 14 12:18:58 srv-bionic motion: [1:ml1:Camera1] [ERR] [ENC] get_oformat: ffmpeg_video_codec option value mp4:h264_omx is not supported May 14 12:18:58 srv-bionic motion: [1:ml1:Camera1] [ERR] [EVT] event_ffmpeg_newfile: ffopen_open error creating (new) file [/var/lib/motioneye/Camera1/2019-05-14/12-18-58]: Operation now in progress ekzorchik@srv-bionic:~$ journalctl -f | grep ffmpeg May 14 12:18:58 srv-bionic motion[7548]: [1:ml1:Camera1] [ERR] [ENC] get_oformat: ffmpeg_video_codec option value mp4:h264_omx is not supported May 14 12:18:58 srv-bionic motion[7548]: [1:ml1:Camera1] [ERR] [EVT] event_ffmpeg_newfile: ffopen_open error creating (new) file [/var/lib/motioneye/Camera1/2019-05-14/12-18-58]: Operation now in progress ekzorchik@srv-bionic:~$ sudo systemctl restart motion && sudo systemctl status motion | head -n5
Итого я оформил в шагах, что нужно сделать дабы завести камеру смартфона в домашний сервис видеонаблюдения на базе MotionEyE
. Имеет смысл взять отслуживший свое смартфон или планшет, закрепить где-либо, подвести питание 220В
, настроить Wi-Fi
подключение к локальной сети, и запустить ПО, а после завести его на MotionEyE
. Для домашних целей вполне бюджетное решение. Ладно не будут дальше занимать Ваше время, а на этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.