Можно скачать его через браузер по ссылке "http://www.bobtech.ro/get?download=36:mjpg-streamer-rpi", а можно с помощью wget:
wget http://www.bobtech.ro/get?download=36:mjpg-streamer-rpi
Полученный wget-ом файл со страшным названием переименовываем:
mv get\?download\=36\:mjpg-streamer-rpi mjpg-streamer-rpi.tar.gz
Ну и распаковываем:
tar -zxvf mjpg-streamer-rpi.tar.gz
3. Запускаем трансляцию
Делается это с помощью баш-скрипта прямо из папки с распакованным ранее архивом:
./mjpg-streamer.sh start
Если камера достаточно новая, и звезды на небе находятся в правильном положении, то видео поток станет доступен по URL вида:
http://raspberrypi:8080?action=stream
Также вы можете встроить это виде в html страничку используя тег img:
<img src="
http://raspberrypi:8080?action=stream
"/>
Именно так я и делал при создании умного дома и телеуправляемого робота. Просто поднимал веб-сервер на Raspberry, и создавал стартовую HTML страничку с указанным кодом.
Если не взлетело
К сожалению, на пути к трансляции видео вас могут подстерегать разные неприятности. Во-первых, скрипт mjpg-streamer.sh может не запуститься, если его настройки не поддерживаются камерой. Во-вторых, видео может жутко тормозить.
Настраиваем параметры баш-скрипта
Для этого открываем его редактором nano:
sudo nano ./
mjpg-streamer.sh
И видим там пять параметров:
VIDEO_DEV="/dev/video0" - идентификатор устройства.
FRAME_RATE="30" - частота кадров (FPS).
RESOLUTION="640x480" - разрешение
PORT="8080" - http порт
YUV="false" - флаг YUV кодирования
Три распространенные причины, по которым камера может вовсе не включиться:
- Камера не поддерживает указанное разрешение - попробуйте указать 320х240;
- Камера не поддерживает указанное значение FPS - попробуйте указать 15;
- Камера не поддерживает кодирование MJPEG - установите флаг YUV в значение true;
Распространенные причины по которым камера может тормозить:
- Камера не поддерживает аппаратное кодирование MJPEG - выкиньте камеру
- Указанные значения разрешения и FRAME_RATE не являются оптимальными - попробуйте перебрать другие значения
Полезные приложения
В ходе настройки видеотрансляции могут оказаться полезными следующие программы:
lsusb - показывает список всех подключенных USB устройств.
fswebcam - простое приложение для захвата видео и одиночных кадров с камеры. Кроме того, с помощью fswebcam можно узнать поддерживает ли ваша камера MJPEG кодирование. Устанавливается программа как обычно, через apt-get:
sudo apt-get install fswebcam
Затем делаем снимок с отчетом:
fswebcam --verbose
И получаем кучу букв, среди которых есть важная информация о поддерживаемых форматах. Например, у меня для камеры Logitech C110:
src_v4l2_set_pix_format,541: Device offers the following V4L2 pixel formats:
src_v4l2_set_pix_format,554: 0: [0x56595559] 'YUYV' (YUV 4:2:2 (YUYV))
src_v4l2_set_pix_format,554: 1: [0x47504A4D] 'MJPG' (MJPEG)
v4l2-ctl - приложение для настройки параметров камеры. Его также потребуется доустановить:
sudo apt-get install v4l-utils
После установки, можно посмотреть список доступных параметров:
v4l2-ctl --list-ctrls
Ну и попробовать их изменить:
v4l2-ctl --set-ctrl exposure_absolute=100
Но не рекомендую менять те параметры, о которых вы имеете слабое представление. Потом замаетесь заново учить камеру нормально видеть мир.
luvcview - приложение с графическим интерфейсом для интерактивного баловства с параметрами камеры. Ставим:
sudo apt-get install luvcview
Запускаем:
luvcview -s 640x480 -i 30
Меняя разрешение и частоту кадров, можно подобрать оптимальные значения, при которых камера будет давать наиболее быстрый поток. Также предостерегаю от неосторожного изменения настроек!
Напоследок отмечу, что мне с Logitech C110 удалось добиться только пяти кадров в секунду. При этом, я указал разрешение 640x480 и частоту кадров 30. В гугле я встречал заявления о 20 кадрах в секунду точно с такой же камерой! Как у них это получилось, для меня остается загадкой.
В следующий раз напишу о том, как удалось совместить описанный способ видеотрансляции и нашего учебного робота МР1 для создания телеуправляемой платформы.