Пытаюсь сваять систему видеонаблюдения на RPi. Подключил вебкамеру, установил motion. Все вроде работает, видео и картинки по движению пишутся. Теперь надо отправить картинку по почте аттачем. Поставил mutt, поскольку другие методы аттач из командной строки или скрипта вроде не позволяют (по крайней мере не нашел, а UU в sendmail не вариант). И вот этот самый mutt не желает вызываться из motion по событию ни напрямую, ни скриптом. В терминале от рута или пользователя команда отправки почты срабатывает нормально, а из motion никак. Пробовал искать, нашел только совет воспользоваться тем самым UU в Sendmail. Вопрос. Есть ли возможность это побороть? Или есть ли другой способ отправить почту с нормальным аттачем из командной строки?
Создал подкаталог "/home/motion", в ней Mail. После вызова mutt из motion стал создаваться файл Sent, содержащий письмо с аттачем. Но по адресу письмо не отправляется. Почему?
В переменных окружения что-нибудь не выставлено или еще чего не соответствует. Запускайте вместо такой-то команды свой скрипт и в нем разруливайте ситуацию.
Мало того, что оно не от всех пользователей работает, так оно еще не хочет письма с вложением jpg отправлять. С чего бы это, интересно?
Во-первых, оказалось, что mutt "не любит" скрытых пользователей (у которых оболочка по умолчанию прописана как /bin/false). Пришлось для пользователя motion ее исправить на /bin/bash. Нехорошо, конечно, но пока сойдет. Во-вторых, оказалось, что exim4, который установился вместе с mutt в качестве mta, почему-то "не любит" письма с изображениями во вложениях. Пришлось перенастроить mutt на использование внешнего сервера smtp. Использовал yandex, для которого пришлось создать дополнительный аккаунт на яндексе. Все в результате заработало, как ожидалось (разве что motion очень уж долго создает снимок в режиме best). Решение, надеюсь, временное, буду искать что-то более человеческое.
Долой mutt, долой exim4. Поскольку все равно внешним сервером приходится пользоваться, перевел все на sendemail, который, оказывается, тоже умеет аттачи делать. И для motion не надо указывать шелл.
1. Разрешение видео 640х480 с вебкамеры motion на Pi не тянет. Не всегда успевает писать события, иногда "рвет" видео. Возможно, от этого получилось бы избавиться упрощением настроек (сократить объем видео до и после события, упростить обработку движения и выбор кадра для сохранения в виде картинки, благо настроек много, не про все пока прочитал), но решил пока этим не заниматься. Можно вообще от видео отказаться, только фото с определенным интервалом щелкать. Тогда успевает без вопросов, но при плохом освещении тогда получаются смазанные кадры, на которых вообще ничего не понятно, в то время как видео фиксирует что-то более осмысленное. Установил 320х240. Проблемы исчезли, хотя качество стало похуже. Лицо, конечно, с нескольких метров различимо, для помещения сгодится, а вот номер на машине с 10 метров уже не прочитаешь. 2. Распиновка разъема AV на Pi B+ (интересно, это в партии, из которой мой экземпляр, или по жизни так?) отличается от наиболее распространенной. Пришлось делать специальный кабель. Благо, все свелось к перепайке (поменял местами) двух контактов на штекере, тот, что ближе к корпусу штекера стал видео, тот. что второй от корпуса, стал землей, оставшиеся без изменений.
А камера, которая http://amperka.ru/product/raspberry-pi-camera-board с motion всяко лучше работает, чем любая USB. 640х480 точно успевает. Только пришлось использовать специально адаптированную версию motion, С этим связан вопрос. Есть ли что еще для организации видеонаблюдения с распознаванием движения для RPi с этой камерой? Пока нашел только спецверсию motion и проприетарный драйвер uv4l-raspicam.
Подскажите пожалуйста. Какие параметры точно у команды on_motion_detected Пишу python и путь к скрипту на питоне- не работает. Не выполняется скрипт.
У on_motion_detected единственный параметр - исполняемая команда. Проблемы могут быть с правами доступа к чему-либо (скрипт исполняется от имени пользователя motion) или с путями. Может быть что-то нужное из питона не установлено. Впрочем, я питон не пробовал. У меня скрипт для sh.
on_event_start sh /motion/motionmail.sh При этом подкаталог motion принадлежит пользователю и группе motion со всеми правами для пользователя motion. Файлы в нем, естественно, тоже. on_motion_detected теоретически должен работать так же, только, если я правильно понимаю, чаще, на все случаи детекции движения, в то время как on_event_start только при начале шевеления.
Очень любопытно. Правильно ли я понимаю, что Raspberry Pi не достаточно производительная для работы с видео. И пытаться захватывать видео поток, обрабатывать его добавляя текст и графику и отправлять на композитный выход (на видео регистратор) в режиме реального времени с разрешением 640х480 и выше не реально без потери качества?
Насколько я понял, там основные проблемы возникают с USB, на который все навешано, включая сеть. А работа с USB берет помимо прочего и ресурс процессора. Соответственно, если камера работает под USB, то большие разрешения просто не тянет. По крайней мере motion качественно справлялась только на 320 на 200, простая запись (без какой-либо обработки) на внешний винт - 640 на 480. А вот "родная" камера, которая подсоединяется к специальному интерфейсу, при простой регистрации на SD карту, которая с системой (опять же, подключена не через USB), вполне справляется даже с FULL HD. С дополнительной обработкой FULL HD в реальном времени, естественно, не потянет, а вот 640 на 480 вполне успевает. У меня по крайней мере специальная версия motion справляется, в том числе с ретрансляцией по Web с наложением текста (время).
Спасибо за развернутый ответ. У меня аналоговая, думал подключить видео захват на USB, налаживать данные и выдавать на видео регистратор. Цифровая пока мне не подходит, не понятно как передавать на большие расстояния, конечно вариантов тьма, но в контексте моего ROV решения пока не нашел. Или габариты, либо специфика кабеля, да и цена таких решений кусается. Придется пока остановится на MAX7456.
Мои эксперименты в этом направлении Видео наблюдение на Raspberry PI Трансляция с помощью Raspberry Pi
Я уже спрашивал у geher о возможности наложения текста и графики на видео поток высокого разрешения. Что нибудь изменилось с выходом Raspberry PI 2 (все таки многоядерный процессор и оперативной памяти побольше) или все по прежнему, как уже говорил geher? UPD. Наложение текста вроде есть Описание - http://www.stuffaboutcode.com/2013/07/raspberry-pi-car-cam-overlaid-with-obd.html UPD2. Решил приобрести Raspberry PI 2 и попробовать, если не получиться, хоть познакомлюсь Linux всю жизнь его обходил стороной.
помогите мне его настроить (мотион))я его установил на него захожу но картинки нет а камеру видит она рабоча я
сделайте доступным своё видеоустройство(камеру) выполнив из под ROOT (сначала смотрим подсказку): Код (Bash): root@debian-i:/home/igor/coding/ardiono# usermod --help Использование: usermod [параметры] ПОЛЬЗОВАТЕЛЬ Параметры: -c, --comment КОММЕНТАРИЙ новое значение поля GECOS -d, --home ДОМ_КАТ новый домашний каталог учётной записи -e, --expiredate ДАТА_УСТ установить дату окончания действия учётной записи в ДАТА_УСТ -f, --inactive НЕАКТИВНОСТЬ установить период неактивности пароля после устаревания учётной записи равным НЕАКТИВНОСТЬ -g, --gid ГРУППА принудительно назначить первичную ГРУППУ -G, --groups ГРУППЫ список дополнительных ГРУПП -a, --append добавить пользователя в дополнительные ГРУППЫ, указанные в параметре -G не удаляя пользователя из других групп -h, --help показать данное сообщение и закончить работу -l, --login НОВОЕ_ИМЯ новое значение имени учётной записи -L, --lock заблокировать учётную запись -m, --move-home переместить содержимое домашнего каталога в новое место (использовать только вместе с -d) -o, --non-unique разрешить создание учётной записи с уже имеющимся (не уникальным) UID -p, --password ПАРОЛЬ задать новый шифрованный пароль для учётной записи -R, --root КАТ_CHROOT каталог, в который выполняется chroot -s, --shell ОБОЛОЧКА новая регистрационная оболочка для учётной записи -u, --uid UID новый UID для учётной записи -U, --unlock разблокировать учётную запись -Z, --selinux-user SEUSER новое пользовательское сопоставление SELinux для учётной записи root@debian-i:/home/igor/coding/ardiono# потом по ней разрешение для пользователя: usermod -aG /dev/video0 RPi, где: /dev/video0 - ваше устройство (камера), с которым работаете; RPi - пользователь от имени которого запускается программа для работы с камерой. только уточните порядок - сам не помню (возможно устройство и пользователя в строке надо поменять местами) Потом запустите - но уже в новой сессии. если в этой же сессии, то просто укажите разрешение для устройства из под ROOT ну или sudo(я для себя заблокировал) chmod 777 /dev/video0 ваш motion (ну или что там) должен заработать с камерой. Простите, но после первого применения OpenCV всё, что похоже на motion снёс. Знаю одно точно "рвёт" кадры при сохранении не из-за производительности. Испытывал и применял на Raspberry Pi B+ которая из первых. Файлы сохранял в RamDisk... и большого разрешения файлы перезаписывались... но на это время их не надо читать - будут рваными. Понятно, что 320 на 240 меньше весят и времени записи надо меньше. Но даже OpenCV на этой модели работает сносно... для моих целей конечно (конверсия в чёрно-белое, адаптивная бинаризация, поиск контуров и т.п) в реальном времени.
Теперь вроде вопрос решен но есть другой вопрос: во всех статьях написано:"чтобы получить видео вне домашней сети настройте перенаправление портов в настройках роутера"Но что делать если его нет(роутера)