Храмы Высота ЧБ Люди Вокзалы Парк Зима. Снег Саратов Сад-огород. Хлеба Грибы Лес Зима. Снег Цветы Живность Кошки Река Хлеба Лес Зима. Снег Новый Год Небо. Облака Радуга Курьезы Река Хлеба Лес Зима. Снег Небо. Облака Курьезы Астро Зима. Снег Новый Год Шарм Эль Шейх. Тропикана Гранд Азур Кошки Ящерица Йошкар-Ола. Казань. Чебоксары Гуамское ущелье Майкоп Грибы Зима. Снег Лошади Сад-огород. Зима. Снег Должанка Египет Люди Санкт-Петербург Санкт-Петербург Финляндия Финляндия Греция. Родос. Детский Сад 158 Новый Год Авто Мото Макро Карта Дети Питание Шарм Эль Шейх. Тропикана Гранд Азур Астро Набережная Петрозаводска Карелия. Путешествия. Весна Макро Карта Отдых Лыжные прогулки Стихи CentOS Oracle SAMBA GlassFish LAMP Motion EJabberd Postfix. Dovecot. Amavisd Perl Jabber VLC M3U Ubuntu
Обои для рабочего стола. Лучшее качество 1600x1200.
ДНЕВНИКИ


Назад >> Сергей ШИБКА >> Raspberry Pi


16.02.2014 Трансляция видео потока с веб камеры

Использование Raspberry Pi в качестве транслятора видео потока с веб камеры и запись скриншотов в отдельное хранилище. Настройка проста и не вызвала никаких проблем.

Имеем плату Raspberry Pi, на её загрузочной флешке установлен дистрибутив wheezy-raspbian.

Пусть на внешнем хранилище IP адрес 192.168.0.120 и мы имеем тоже linux, а за файловое хранение будет отвечать samba, которая в локальной сети раздает папку video. Путь до сетевой папки выглядит так: \\192.168.0.120\video\. На Raspberry Pi будет IP адрес 192.168.0.104

Загружаемся. Подключаем камеру. Я пробовал Genius iSlim 310, Logitech HD Webcam C270 и Logitech HD Webcam C310 проблем с определением в системе не возникло.

Выполняем:
sudo su

Выполняем:
lsusb

Если камера обнаружена, видим её в списке устройств:
Bus 001 Device 004: ID 046d:081b Logitech, Inc. Webcam C310

Выполняем:
ls /dev/video*

Для камеры должно быть назначено устройство:
/dev/video0

Создаем папку для дальнейшего подключения к внешнему хранилищу:
mkdir /mnt/Arch/video/

Устанавливаем пакет Motion, будет установлен пакет motion и другие зависимости, необходимые для работы:
apt-get install motion

После установки настраиваем motion, открываем на редактирование конфиг файл /etc/motion/motion.conf

Приводим необходимое к виду:

# Start in daemon (background) mode and release terminal (default: off)
# Запуск демоном
daemon on

# Videodevice to be used for capturing (default /dev/video0)
# for FreeBSD default is /dev/bktr0
# Наша подключенная веб камера
videodevice /dev/video0

# v4l2_palette allows to choose preferable palette to be use by motion
# to capture from those supported by your videodevice. (default: 8)
# Предпочтительная палитра обработки видео устройством
v4l2_palette 6

# Make automated snapshot every N seconds (default: 0 = disabled)
# Создание скриншотов каждые 5 секунд
snapshot_interval 5

# Target base directory for pictures and films
# Recommended to use absolute path. (Default: current working directory)
# Путь куда будет идти сохранение полученных результатов
target_dir /mnt/Arch/video/cam1

############################################################
# Live Webcam Server
############################################################
# The mini-http server listens to this port for requests (default: 0 = disabled)
# Порт на котором будет идти показ потока с камеры
webcam_port 8085

# Quality of the jpeg (in percent) images produced (default: 50)
# Качество транслируемой картинки
webcam_quality 65

# Maximum framerate for webcam streams (default: 1)
# Частота кадров для трансляции потока
webcam_maxrate 5

# Restrict webcam connections to localhost only (default: on)
# Запрещать или разрешать внешнее подключение к трансляции
webcam_localhost off


Запускаем motion:
/usr/bin/./motion -n -c /etc/motion/motion.conf

-n /указывает, что не нужно запускать как демон/
/указывает путь и файл конфиг файла/

Если все нормально и нет ошибок, то зайдя браузером по адресу http://192.168.0.104:8085 мы увидим трансляцию видео потока идущего с нашей веб камеры. А в папке /mnt/Arch/video/cam1 мы увидим, что начали появляться файлы скриншотов.

Прерываем работу motion нажав Ctrl+C.

Скриншоты конечно пишутся, но сейчас они пишутся на системную флешку, а это не очень хорошо. Обычно она используется мелкого объема. Для работы системы достаточно «за глаза» 8 Гб. А вот для записи скриншотов и уж тем более видео, необходимо места больше, да и постоянная перезапись системной флешки не желательна, это её быстро «убьёт». Лучше использовать отдельную флешку или внешний USB диск. В Raspberry Pi есть два USB порта, один уже мы заняли веб камерой, а на второй порт можно подключить дополнительную флешку например на 32Гб или внешний USB диск. Подключение внешнего диска по USB обязательно потребует USB хаба с дополнительным питанием, т.к. питания от самого порта Raspberry Pi будет не достаточно. В нашем примере мы всю запись переадресовываем на файловое хранилище в нашей локальной сети.

И так. На Raspberry монтируем сетевой ресурс \\192.168.0.120\video\ в нашу папку /mnt/Arch/video/.

Создаем файл .smbcredentials в /home/pi, содержимое файла:

username=
password=


Выполняем:
mount -t cifs "//192.168.0.120/video" "/mnt/Arch/video" -o credentials=/home/pi/.smbcredentials,iocharset=utf8,dir_mode=0777,file_mode=0777

Теперь после монтирования все файлы будут писаться во внешнее хранилище (при условии, что там есть права на запись).

Для автомонтирования внешнего раздела и запуска motion создадим скрипты.

Создаем файл mount_share.sh в /home/pi, права на файл 755, содержимое файла:

#!/bin/sh

mount -t cifs "//192.168.0.120/video" "/mnt/Arch/video" -o credentials=/home/pi/.smbcredentials,iocharset=utf8,dir_mode=0777,file_mode=0777
/usr/bin/./motion -c /etc/motion/motion.conf


Создаем файл mount_share в /etc/cron.d, содержимое файла:

@reboot root /home/pi/./mount_share.sh

Перезапускаем наш Raspberry Pi:
reboot

Итого. Наш Raspberry Pi может транслировать видео поток на порту 8085 и сбрасывать скриншоты через каждые 5 секунд в папку /mnt/Arch/video, которая примонтирована к внешнему сетевому хранилищу.


комментарии (1)


[ Назад ]


© 2005 - 2024 * Сергей Шибка