![]() |
![]() |
#1 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Использование motion на роутерах считается экзотикой...
Может дело не "в размере" ![]() Так ли это, попробуем разобраться. Конкретная полезная информация по правильной настройке motion простым языком ![]() Основные технические характеристики роутера - это частота процессора и объем памяти. Развернуть для просмотраЗдесь мы можем видеть наиболее полную таблицу:
https://wiki.openwrt.org/toh/views/toh_extended_all Как мы видим, достаточно много девайсов имеют хар-ки CPU400 RAM64 Flash8-16 (аналогия с ПК - CPU RAM HDD) Motion в репозитарии OpenWRT - идет без возможности записи видео, только скриншоты - но и такой вариант может работать и быть полезным владельцу (CPU400 RAM64 Flash8). Для того, чтобы писать видео, достаточно иметь нужное железо. Прошивка с ffmpeg будет весить от 9M, нужен девайс с Flash16. CPU600 RAM64 Flash16 - было опробовано мной в течении года. Точно будет работать CPU400 RAM64 Flash16 - можно пробовать и на более слабом. Уважаемый коллега ShoM на DIR-320 с Logitech C270 "motion-ом балуется" ![]() http://shom.kz/openwrt-motion-detection/ А это CPU240 RAM32 Flash4. (Миф 1) - первый и самый главный, motion можно запускать только на девайсе с мощным процессором - "... пробовал мол я на своем 4-х ядерном ваш motion ... и то ..." [свернуть] ========================= ПРИСТУПАЕМ К ПОДГОТОВКЕ ПРОШИВКИ ========================= "Железка" готова, подключаем камеру в нашем случае Logitech C300 1280x1024 1,3Mp (единственный ее плюс ![]() Веб-камеры Логитек грешат слетом прошивки: http://remont-aud.net/forum/32-38701-1 И похоже меня это тоже не минуло ![]() Подключаемся к роутеру по ssh Вводим: Код:
v4l2-ctl --list-formats Развернуть для просмотраIndex : 0 Type : Video Capture Pixel Format: 'YUYV' Name : YUV 4:2:2 (YUYV) Index : 1 Type : Video Capture Pixel Format: 'MJPG' (compressed) Name : MJPEG Мы то радуемся, у нас камера поддерживает MJPG ![]() ![]() [свернуть] ========================= ПРИСТУПАЕМ К НАСТРОЙКЕ MOTION: ========================= Все стартуем... Код:
motion v4l2_palette 8 rotate 90 width 640 height 480 framerate 2 Смотрим: Код:
top Развернуть для просмотраНам нужно проследить (записать или заскриншотить) использование памяти и процессора в следующих режимах работы.
Здесь мое железо 800x600: - motion запущен стрима нет %VSZ %СPU 54% 38% - motion запущен стрим с ПК или планшета-телефона по Wi-Fi: %VSZ %СPU 54% 50% - motion запущен запись видео ролика при обнаружении движения: %VSZ %СPU 76% 97% [свернуть] Но день сменяет ночь и начинаются танцы на граблях (MJPEG): Развернуть для просмотраИли изображение 4- рится
![]() ![]() Или motion начинает писать все подряд пока проц "не устанет" перегреется. Или пока процесс motion-а не самоликвидируется (у нас есть аварийный скрипт). Начинаем выяснять, пробуем всякое, пробуем гораздо больше чем сильно всякое ![]() http://cyber-place.ru/showpost.php?p=34514&postcount=50 А ответ на поверхности, что такое MJPEG ? Правильно: по кадровый метод видео сжатия https://ru.wikipedia.org/wiki/MJPEG А ведь процессор помимо motion-а и обработки изображения с камеры, занят текущей работой роутера. Такой же вывод сделал ShoM http://shom.kz/openwrt-motion-detection/ MJPEG с motion-ом на DIR-320 с Logitech HD Webcam C270 - просто не стартует... [свернуть] Соответственно делаем: Наши основные настройки: v4l2_palette 15 rotate 90 width 640 height 480 framerate 2 Смотрим: Код:
top Развернуть для просмотраНам нужно проследить (записать или заскриншотить) использование памяти и процессора в следующих режимах работы.
Здесь мое железо 800x600: - motion запущен стрима нет %VSZ %СPU 62% 18% - motion запущен стрим с ПК или планшета-телефона по Wi-Fi: %VSZ %СPU 62% 38% - motion запущен запись видео ролика при обнаружении движения: %VSZ %СPU 78% 92% Увеличиваем разрешение под свои тех условия v4l2_palette 15 width 800 height 600 framerate 2 [свернуть] Самый распространенный YUYV (большой выбор вебкамер), то что нужно для motion. Все работает как часы, час - за часом, день за днем. Кто осилил "много букф" молодец ![]() P.S. Полученные видео ролики здесь прикрепить не получится, впрочем и по другим соображениям думаю не стоит ... Главное добиться постоянной стабильной работы, если начинаются сбои то: Развернуть для просмотра1. Отключите запись звука, на слабом железе лучше его вообще не писать.
Впрочем если вы стримите и делаете одно фото - можно и звук писать. 2. Уменьшайте качество видео. 3. Меняйте mpeg4 на swf. 4. Уменьшайте разрешение. [свернуть] © Ссылка на автора и форум http://cyber-place.ru обязательна Всем кто оказывал помощь большое спасибо !!! Отдельное спасибо sakatgg ![]() Последний раз редактировалось sunny; 15.03.2017 в 00:38. Причина: © Ссылка на автора и форум http://cyber-place.ru обязательна |
![]() |
![]() |
![]() |
#2 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
=========================
ПОДГОТОВКА ПРОШИВКИ ========================= Итак имеем девайс с хар-ками CPU600 RAM64 Flash16 и имеем самостоятельно собранную прошивку OpenWRT со следующими пакетами: Развернуть для просмотраBase system ---> <*> block-mount (используем флешку)
Kernel modules ---> Filesystems ---> <*> kmod-fs-ext4 (используем флешку) Kernel modules ---> USB Support ---> <*> kmod-usb-storage (используем флешку) Kernel modules ---> USB Support ---> <*> kmod-usb-storage-extras (используем флешку) Kernel modules ---> Sound Support ---> -*- kmod-sound-core (поддержка звука ядром) Kernel modules ---> Sound Support ---> <*> kmod-usb-audio (поддержка звука ядром) Kernel modules ---> Video Support ---> <*> kmod-video-core (поддержка видео ядром) Kernel modules ---> Video Support ---> <*> kmod-video-uvc (поддержка видео ядром) Kernel modules ---> Video Support ---> <*> kmod-video-videobuf2 (поддержка видео ядром) LuCI ---> 1. Collections ---> <*> luci (графическая оболочка, позволяет настраивать OpenWRT используя браузер) LuCI ---> 2. Modules ---> Translations ---> <*> Russian (ru) (для эстетов можно и французский накатить) LuCI ---> 3. Applications ---> <*> luci-app-commands (удобно и памяти хватает) LuCI ---> 3. Applications ---> <*> luci-app-mjpg-streamer (удобнее пользоваться тем что есть ![]() Multimedia ---> <*> ffmpeg (пакет позволяет motion-у писать видео) Multimedia ---> <*> mjpg-streamer (а чтобы был ![]() Multimedia ---> <*> motion-ffmpeg (герой темы) Network ---> Filesystem ---> <*> davfs2 (для подключения Яндекс Диска) Utilities ---> Editors ---> <*> nano (текстовый редактор для правки конфигов) Utilities ---> <*> alsa-utils (пишем звук) Utilities ---> <*> usbreset (сброс питания usb, необязательно) Utilities ---> <*> v4l-utils (тонкая настройка камеры, необязательно) [свернуть] Для сборки прошивки с motion-ffmpeg достаточно подложить правильный архив motion и конфиг, подробнее здесь: http://cyber-place.ru/showthread.php?t=2071 Скрипты Развернуть для просмотра1sh - сортирует папки YD (далее Яндекс Диск)
Код:
#!/bin/sh SRC_DIR="/mnt/ваше_название_YD/дежурная_папка" DST_DIR="/mnt/ваше_название_YD/$(date +%Y-%m-%d)/$(date +%Y-%m-%d_%H)" for F in ${SRC_DIR}/*; do SUB=$(date -d"$(stat -c%y "${F}")" +%Y%m%d) mkdir -p "${DST_DIR}/${SUB}" mv "${F}" "${DST_DIR}/${SUB}/" done 24 - день назад, 240 - 10 дней назад Код:
#!/bin/sh a=`echo | awk '{ print strftime( "%Y-%m-%d", systime()-60*60*720); }'` if [ -n "$a" ] then rm -rf /mnt/ваше_название_YD/$a else echo 'NOT DELETE' fi Начинает удалять старые файлы при наполнении накопителя более 90% (игнорирует папку lost+found) Код:
#!/bin/sh if [ $(df /mnt/sda1 | sed 's/.* \([0-9]\+\)%.*/\1/;$!d') -gt 90 ] then cd /mnt/sda1/ && ls -t | tail -n 2 | grep -v lost+found | xargs rm -rf $b else echo 'NOT DELETE' fi Код:
#!/bin/sh if grep -q 'https://webdav.yandex.ru /mnt/ваше_название_YD' /proc/mounts; then else echo 'y' | mount.davfs https://webdav.yandex.ru /mnt/ваше_название_YD fi Код:
#!/bin/sh if pgrep motion; then else motion fi [свернуть] Прописываются задания на запуск скриптов в cron. Так как своего носителя достаточного объема у роутера нет, все пишется на облако, в данном случае YD. Чем облако лучше регистратора с пятью винтами кратко: - стоит дешевле (интернет) - не потребляет электроэнергию - не требует обслуживания и замены вышедших из строя частей - с точки зрения безопасности - не сгорит, и не будет выведен из строя в случае криминальных посягательств Для записи на флешку (используя хаб) - ставим дополнительные пакеты (наверху). По хабу: http://cyber-place.ru/showpost.php?p=35474&postcount=17 Подготовка флешки: http://cyber-place.ru/showpost.php?p...&postcount=279 http://cyber-place.ru/showpost.php?p...&postcount=280 ========================= © Ссылка на автора и форум http://cyber-place.ru обязательна Всем кто оказывал помощь большое спасибо !!! Отдельное спасибо sakatgg ![]() Последний раз редактировалось sunny; 17.07.2017 в 16:12. Причина: поправил скрипт |
![]() |
![]() |
![]() |
#3 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
=========================
НАСТРОЙКА MOTION: ========================= Основные разрешения с которых следует начать настройку 320x240 и 640x480. Открываем конфиг motion-ffmpeg: Развернуть для просмотраКод:
nano /etc/motion.conf Код:
nano /etc/motion/motion.conf daemon on process_id_file /var/run/motion/motion.pid [свернуть] И видим самое главное: # V4L2_PIX_FMT_MJPEG : 8 'MJPEG' # V4L2_PIX_FMT_YUYV : 15 'YUYV' У нас есть 2 варианта, но нам то напели что MJPEG наше все ![]() Делаем: v4l2_palette 8 Далее: Развернуть для просмотраЯ "кручу" изображение на 90 градусов (индивидуально по умолчанию rotate 0)
rotate 90 width 640 height 480 framerate 2 поверьте больше и не будет, лучше выкрутить качество на максимум ffmpeg_variable_bitrate 2 здесь иной четырехядерник даст не более 5-15 ![]() motion работает с ip-камерой: netcam_url 78.134.89.54:8081/?action=stream или netcam_url http://50.199.22.21:84/mjpg/video.mjpg здесь должно быть отключено: #videodevice /dev/video0 если доступ по паролю: netcam_userpass юзер:пароль auto_brightness on (если помещение плохо освещается) подстройка уровня яркости камерой или motion-ом auto_brightness off (снимает нагрузку с роутера) threshold_tune on если отключаем off, по выставляем кол-во пикселей при изменении которых motion - детектирует движение threshold 1500 noise_tune on если отключаем off, по выставляем значение motion для определения разницы между движением и шумом. По умолчанию noise_level 32 noise_level 1 - будет писать все подряд noise_level 150 - будет писать с пропусками Там же можно настроить срабатывание по зонам и шаблону: ; area_detect value ; mask_file value lightswitch 40 значение игнорирования бликов (изменения яркости освещения на определенном участке) солнце вышло из-за тучи и лучи бликуют в окошко меняя уровень освещенности и делая засветку на определенном участке изображения, максимальное значение 100 minimum_motion_frames 1 минимальное кол-во кадров с которого motion детектирует движение pre_capture 0 кол-во кадров до post_capture 0 кол-во кадров после event_gap 60 время реализации сценария после детектирования движения чтобы отключить звук строго после окончания движения/записи видео ставим ноль (лучше 20) - но и видео получим более отрывистое... При записи звука лучше делать меньше от 20 до 60 Если пишем только видео - можно оставить дефолтное значение - 60 max_movie_time 60 размер ролика в секундах остановился в итоге на 30 max_movie_time 30 соответсвенно event_gap 30 памяти у роутера мало, а народ у нас ходит "косяками" могут и на площадке "задержаться" на час-два emulate_motion on (включаем эмуляцию движения для настройки, будет писать ролики по 60(30) секунд подряд) не забываем выключить после отладки: emulate_motion off output_pictures off (если настраиваем видео, нам пока не до этого) [свернуть] Настройка видео: Развернуть для просмотраffmpeg_output_movies on
ffmpeg_bps 400000 (начать настройку советую с этого значения, максимально 9999999) при этом здесь должно быть 0 ffmpeg_variable_bitrate 0 Когда/если все настроено, лучше делать так: ffmpeg_variable_bitrate 2 Если ваше железо тянет. # Codec to used by Здесь у нас 2 варианта: ffmpeg_video_codec swf или ffmpeg_video_codec mpeg4 можете пробовать конечно, но начать лучше с этих двух Начните лучше так, для слабого железа: ffmpeg_video_codec swf [свернуть] target_dir /mnt/ваше_название_YD/дежурная_папка Развернуть для просмотраимхо чем короче имена, тем лучше
Принцип записи и сортировки - /ваше_название_YD -- Содержит папки по дням такого вида 2016-10-10/ ![]() --- внутри часовые папки такого вида 2016-10-10_00 .. .. 2016-10-10_23 ![]() ---- внутри видео и фото такого вида 16_00-15-39.avi 15_09-18-49.swf 15_16-27-41.jpg ![]() Видео и фото пишутся в дежурную папку, из которой скрипт автоматически перетаскивает файлы каждые 15 минут по часовым папкам в текущую дневную папку. Соответственно пишем: snapshot_filename %d_%H-%M-%S picture_filename %d_%H-%M-%S movie_filename %d_%H-%M-%S timelapse_filename %d_%H-%M-%S [свернуть] Настраиваем стрим: Развернуть для просмотраstream_port 9889
меняйте стандартный 8081 проявите фантазию ![]() Еще одна "хитрая фишка" такое значение: stream_quality 50 в разрешении 800х600 снимает с процессора нагрузку на 10% по сравнению с: stream_quality 100 самое интересное, что качество картинки на большом разрешении не изменяется, а нагрузка на процессор падает stream_motion on stream_maxrate 2 stream_localhost off stream_auth_method 0 (если паролим то, method 1) Если стрим без авторизации: #stream_authentication ваш логин:ваш пароль Если после ввода пароля: stream_authentication ваш логин:ваш пароль Управление motion-ом с браузера: webcontrol_localhost off Настоящие индейцы правят конфиги руками ![]() [свернуть] Экзотика пишем звук: Развернуть для просмотраon_movie_start 'arecord -f S16_LE -c1 -r16000 /mnt/ваше наименование YD/дежурная папка/%d_%H-%M-%S.wav'
on_movie_end 'sh /usr/bin/akill' Убить процесс получается только скриптом akill: Код:
#!/bin/sh p=`pidof arecord`; kill -9 $p Можно улучшить качество - индивидуально... Выглядит так: ![]() Включать после отладки. [свернуть] ========================= Просматривать стрим motion-a можно как с ПК так и с девайса на Андроид, таким образом: Развернуть для просмотраСмотрим какое значение выставили здесь:
stream_port 9889 Смотреть: http://192.168.1.1:9889/ или http://192.168.1.1:9889/?action=stream [свернуть] ========================= value в настройках означает значение Развернуть для просмотраСоответственно если хотим использовать:
; netcam_url value или ; on_event_start value то вместо value ставим свое значение: netcam_url http://50.199.22.21:84/mjpg/video.mjpg [свернуть] ========================= Все настройки motion-а можно найти здесь: http://www.lavrsen.dk/foswiki/bin/vi...figFileOptions ========================= © Ссылка на автора и форум http://cyber-place.ru обязательна Всем кто оказывал помощь большое спасибо !!! Отдельное спасибо sakatgg ![]() Последний раз редактировалось sunny; 05.12.2017 в 11:42. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
======================================== ==========
Запись роутером с motion+ffmpeg сторонней IP камеры выглядит так ======================================== ========== Ищем в гугле трансляцию с ip камеры: Развернуть для просмотра[свернуть] Я использовал именно эту камеру, чтобы показать что ссылки могут отличаться и первоначальная ссылка: http://45.37.182.126/mjpeg/mjpeg4.html Если скопируем ее в конфиг motion-а - работать не будет. Идем в свойства изображения: Смотрим реальный адрес: http://45.37.182.126/goform/stream?cmd=get&channel=4 И разрешение: 640×480 Адрес можно скопировать так: И правим motion.conf Развернуть для просмотраКод:
nano /etc/motion.conf Код:
#videodevice /dev/video0 v4l2_palette 8 rotate 0 width 640 height 480 framerate 2 netcam_url http://45.37.182.126/goform/stream?cmd=get&channel=4 ffmpeg_variable_bitrate 2 Код:
target_dir /mnt/sda1 [свернуть] Нагрузка на железо в момент записи: И получаем результат: ![]() © Ссылка на автора и форум http://cyber-place.ru обязательна Admin спасибо ![]() Последний раз редактировалось sunny; 15.03.2017 в 00:41. |
![]() |
![]() |
![]() |
#5 |
Junior Member
Регистрация: 08.07.2017
Адрес: Новосибирск
Сообщений: 4
Вес репутации: 0 ![]() |
![]()
Добрый день!
Не запускается Motion, хотя раньше запускался. В режиме emulate_motion on запускается и работает. Перестал запускаться после перезагрузки. Новых пакетов не устанавливал, не переконфигурировал. Запись ведется в Яндекс диск. Прошивка CyberWrt, камера Logitech C270, системный раздел на внешней флешке. Что это может быть? |
![]() |
![]() |
![]() |
#6 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Vladis
После перезагрузки, должны отработать скрипты запуска подключения к YD и собственно сам motion. Сложно сказать точно ![]() 1. Если motion-у некуда писать, соответственно подключения к ЯД не произошло. Проверьте наличие папки lost+found - что ЯД восстанавливает автоматом, если пишете на флешку, раздел с удаленным lost+found может отваливаться, роутер его перестает видеть. 2. Слабый блок питания (просадка напряжения под нагрузкой). 3. Выходит из строя хаб. === Можно просто в добавить строчку в: Код:
nano /etc/rc.local Код:
echo 'y' | mount.davfs https://webdav.yandex.ru /mnt/Ваше название папки(YD) Пакеты для 15.05.1 для ramips_24kec во вложении: libffmpeg-full_2.6.9-1_ramips_24kec.ipk - прилепляться не захотел (4.8Mb) ![]()
__________________
Читаю ваши мысли по аватару ... Последний раз редактировалось sunny; 18.07.2017 в 21:31. |
![]() |
![]() |
![]() |
#7 | |
Junior Member
Регистрация: 07.08.2017
Сообщений: 2
Вес репутации: 0 ![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
На тот момент была рабочая ссылка, сейчас доступ заблокирован...
Или вам пояснить, как найти в сети трансляцию с ip-камеры ?
__________________
Читаю ваши мысли по аватару ... |
![]() |
![]() |
![]() |
#9 |
Junior Member
Регистрация: 07.08.2017
Сообщений: 2
Вес репутации: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
#10 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
dimauz
Да там все просто ![]() === Открываете стрим с камеры в браузере, открываете свойства изображения (информация об изображении). Сверяете ссылки - пробуете их прописывать в конфиг motion-а. Работает в motion - та что в свойствах. === Motion будет писать любой стрим, естественно по движению, ip-камера любая... Хоть с "Красной площади", здесь Питер: Много камер (потренироваться ![]() http://www.insecam.org/ === Не забываем чтить законодательство РФ - незнание законов, не освобождает от ответственности.
__________________
Читаю ваши мысли по аватару ... Последний раз редактировалось sunny; 26.08.2017 в 12:20. |
![]() |
![]() |
![]() |
Метки |
motion, роутер, openwrt, видеонаблюдение |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|