|
|
|
ДНЕВНИКИ
Назад >>
Сергей ШИБКА
>>
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)
[ Назад ]
|
|
|