Система видеонаблюдения.

Тема в разделе "Raspberry Pi", создана пользователем geher, 24 авг 2014.

  1. geher

    geher Гуру

    Пытаюсь сваять систему видеонаблюдения на RPi.
    Подключил вебкамеру, установил motion.
    Все вроде работает, видео и картинки по движению пишутся.
    Теперь надо отправить картинку по почте аттачем.
    Поставил mutt, поскольку другие методы аттач из командной строки или скрипта вроде не позволяют (по крайней мере не нашел, а UU в sendmail не вариант).
    И вот этот самый mutt не желает вызываться из motion по событию ни напрямую, ни скриптом.
    В терминале от рута или пользователя команда отправки почты срабатывает нормально, а из motion никак.
    Пробовал искать, нашел только совет воспользоваться тем самым UU в Sendmail.
    Вопрос. Есть ли возможность это побороть? Или есть ли другой способ отправить почту с нормальным аттачем из командной строки?
     
  2. geher

    geher Гуру

    Создал подкаталог "/home/motion", в ней Mail.
    После вызова mutt из motion стал создаваться файл Sent, содержащий письмо с аттачем. Но по адресу письмо не отправляется. Почему?
     
  3. Unixon

    Unixon Оракул

    В переменных окружения что-нибудь не выставлено или еще чего не соответствует. Запускайте вместо такой-то команды свой скрипт и в нем разруливайте ситуацию.
     
  4. geher

    geher Гуру

    Мало того, что оно не от всех пользователей работает, так оно еще не хочет письма с вложением jpg отправлять. С чего бы это, интересно?
     
  5. geher

    geher Гуру

    Во-первых, оказалось, что mutt "не любит" скрытых пользователей (у которых оболочка по умолчанию прописана как /bin/false). Пришлось для пользователя motion ее исправить на /bin/bash. Нехорошо, конечно, но пока сойдет.
    Во-вторых, оказалось, что exim4, который установился вместе с mutt в качестве mta, почему-то "не любит" письма с изображениями во вложениях. Пришлось перенастроить mutt на использование внешнего сервера smtp. Использовал yandex, для которого пришлось создать дополнительный аккаунт на яндексе.
    Все в результате заработало, как ожидалось (разве что motion очень уж долго создает снимок в режиме best).
    Решение, надеюсь, временное, буду искать что-то более человеческое.
     
  6. geher

    geher Гуру

    Долой mutt, долой exim4. Поскольку все равно внешним сервером приходится пользоваться, перевел все на sendemail, который, оказывается, тоже умеет аттачи делать.
    И для motion не надо указывать шелл.
     
  7. geher

    geher Гуру

    1. Разрешение видео 640х480 с вебкамеры motion на Pi не тянет. Не всегда успевает писать события, иногда "рвет" видео. Возможно, от этого получилось бы избавиться упрощением настроек (сократить объем видео до и после события, упростить обработку движения и выбор кадра для сохранения в виде картинки, благо настроек много, не про все пока прочитал), но решил пока этим не заниматься. Можно вообще от видео отказаться, только фото с определенным интервалом щелкать. Тогда успевает без вопросов, но при плохом освещении тогда получаются смазанные кадры, на которых вообще ничего не понятно, в то время как видео фиксирует что-то более осмысленное.
    Установил 320х240. Проблемы исчезли, хотя качество стало похуже. Лицо, конечно, с нескольких метров различимо, для помещения сгодится, а вот номер на машине с 10 метров уже не прочитаешь.
    2. Распиновка разъема AV на Pi B+ (интересно, это в партии, из которой мой экземпляр, или по жизни так?) отличается от наиболее распространенной. Пришлось делать специальный кабель. Благо, все свелось к перепайке (поменял местами) двух контактов на штекере, тот, что ближе к корпусу штекера стал видео, тот. что второй от корпуса, стал землей, оставшиеся без изменений.
     
    Последнее редактирование: 27 авг 2014
  8. geher

    geher Гуру

    А камера, которая http://amperka.ru/product/raspberry-pi-camera-board
    с motion всяко лучше работает, чем любая USB. 640х480 точно успевает.
    Только пришлось использовать специально адаптированную версию motion,
    С этим связан вопрос.

    Есть ли что еще для организации видеонаблюдения с распознаванием движения для RPi с этой камерой?

    Пока нашел только спецверсию motion и проприетарный драйвер uv4l-raspicam.
     
  9. agpecam

    agpecam Нуб

    Подскажите пожалуйста. Какие параметры точно у команды
    on_motion_detected
    Пишу python и путь к скрипту на питоне- не работает.
    Не выполняется скрипт.
     
  10. geher

    geher Гуру

    У on_motion_detected единственный параметр - исполняемая команда.
    Проблемы могут быть с правами доступа к чему-либо (скрипт исполняется от имени пользователя motion) или с путями.
    Может быть что-то нужное из питона не установлено.

    Впрочем, я питон не пробовал. У меня скрипт для sh.
     
  11. agpecam

    agpecam Нуб

    А можете выложить точно строку, как у Вас?
     
  12. geher

    geher Гуру

    on_event_start sh /motion/motionmail.sh
    При этом подкаталог motion принадлежит пользователю и группе motion со всеми правами для пользователя motion. Файлы в нем, естественно, тоже.
    on_motion_detected теоретически должен работать так же, только, если я правильно понимаю, чаще, на все случаи детекции движения, в то время как on_event_start только при начале шевеления.
     
  13. Alex19

    Alex19 Гуру

    Очень любопытно.

    Правильно ли я понимаю, что Raspberry Pi не достаточно производительная для работы с видео.

    И пытаться захватывать видео поток, обрабатывать его добавляя текст и графику и отправлять на композитный выход (на видео регистратор) в режиме реального времени с разрешением 640х480 и выше не реально без потери качества?
     
  14. geher

    geher Гуру

    Насколько я понял, там основные проблемы возникают с USB, на который все навешано, включая сеть. А работа с USB берет помимо прочего и ресурс процессора.
    Соответственно, если камера работает под USB, то большие разрешения просто не тянет. По крайней мере motion качественно справлялась только на 320 на 200, простая запись (без какой-либо обработки) на внешний винт - 640 на 480.

    А вот "родная" камера, которая подсоединяется к специальному интерфейсу, при простой регистрации на SD карту, которая с системой (опять же, подключена не через USB), вполне справляется даже с FULL HD.
    С дополнительной обработкой FULL HD в реальном времени, естественно, не потянет, а вот 640 на 480 вполне успевает.
    У меня по крайней мере специальная версия motion справляется, в том числе с ретрансляцией по Web с наложением текста (время).
     
    Alex19 нравится это.
  15. Alex19

    Alex19 Гуру

    Спасибо за развернутый ответ.
    У меня аналоговая, думал подключить видео захват на USB, налаживать данные и выдавать на видео регистратор.

    Цифровая пока мне не подходит, не понятно как передавать на большие расстояния, конечно вариантов тьма, но в контексте моего ROV решения пока не нашел. Или габариты, либо специфика кабеля, да и цена таких решений кусается.

    Придется пока остановится на MAX7456.
     
  16. Prochor

    Prochor Нерд

    ИгорьК нравится это.
  17. Alex19

    Alex19 Гуру

    Я уже спрашивал у 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 всю жизнь его обходил стороной:(.
     
    Последнее редактирование: 2 ноя 2015
  18. BAR__MEN

    BAR__MEN Гуру

    помогите мне его настроить (мотион))я его установил на него захожу но картинки нет а камеру видит она рабоча
    я
     
  19. Igor68

    Igor68 Гуру

    сделайте доступным своё видеоустройство(камеру) выполнив из под 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 на этой модели работает сносно... для моих целей конечно (конверсия в чёрно-белое, адаптивная бинаризация, поиск контуров и т.п) в реальном времени.
     
    Последнее редактирование: 27 дек 2016
  20. BAR__MEN

    BAR__MEN Гуру

    Теперь вроде вопрос решен но есть другой вопрос: во всех статьях написано:"чтобы получить видео вне домашней сети настройте перенаправление портов в настройках роутера"Но что делать если его нет(роутера):confused: