Всем хорошего дня, сегодня будет разбор, как в сервис домашнего видеонаблюдения подключить камеру, но не просто 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 к данной системе и произвожу связку следующих шагов для достижения цели поставленной в статье:

  1. Первоначальная установка внутри OC — Ubuntu 18.04 Server
  2. Установка MotionEyE
  3. Настройка смартфона (Huawei Honor C5)
  4. Действия по объединению 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

Авторизуюсь в MotionEyE

После мне нужно создать пароль для этой административной учетной записи (т. е. 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 доступ к фото, мультимедиа и файлам на устройстве: Разрешить

Видеопоток камеры смартфона в браузере через приложение 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

и в зависимости от того, куда я направляю свой смартфон в окне настроек MotionEyE при добавленной камере наблюдаю поставляемый ее видеопоток:

Заведенная камера смартфона в 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.

От ekzorchik

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