Всем хорошего дня, сегодня будет разбор, как в сервис домашнего видеонаблюдения подключить камеру, но не просто IP—камеру, а камеру Вашего смартфона. У Вас уже наверное скопилось множество техники которая более не используется (надеюсь Вы как и я не терпите продажу того чем не пользуетесь). Еще раз напомню что сервис MotionEye — это Web-ориентированная обертка вокруг утилиты видеонаблюдения Motion. В паре они образуют сервис для организации домашнего видеонаблюдения за квартирой, домом.
Итак, что используется в данной статье:
VM под QEMU+KVM:
Характеристики:
CPU = 2HDD = 50RAM = 2OC: 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: adminPassword: пустой, отсутствует
и нажимаю кнопку Login
После мне нужно создать пароль для этой административной учетной записи (т. е. Username: admin). Перехожу Settings — General Settings
Admin Username: adminAdmin 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: ekzorchikPass: 712mbddr@
видеопоток будет во вкладке браузера.
Если нажать на «Еще» — «RTSP/h264/ONVIF адреса» то подчерпнув из справки сведения, что
Адрес RTSP для вещания видео в формате h264: http://IP:PORT/H264/uLaw через RTSP: rtsp://ip:port/h264_ulaw.sdpH264/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 CameraURL: rtsp://172.33.33.14:8080/h264_ulaw.sdpUsername: ekzorchikPassword: 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-%SMovie Format: MPEG4 (.avi)Movie Quality: 75%Recording Mode: Motion TriggeredMaximum 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: OnLight Switch Detection: 0%Motion Gap: 5 (разрывать запись через 5 секунд после нефиксации движения) (seconds)Capture Before: 1 (frames)Capture After: 1 (frames)Minimum Motion Frames: 20 (frames)Mask: ONMask 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.



