Raspberry Pi и mjpg-streamer или видеотрансляция
-
Это моя первая статья о Raspberry Pi.
Сначала думал сделать IP-камеру для наблюдения за машиной под окном, но угол обзора у камеры всего около 30 градусов. Потом думал сделать видеоняню и столкнулся с тем , что светочувствительность никакая. Даже ночник не помог. В итоге просто сделал камеру с доступом по сети ради простого любопытства.
Часть первая. Установка необходимого ПО
Что использовалось:
- Raspberry Pi, Raspberry Camera module,
- приложение для смартфона (на Android) IP Cam Viewer,
- программа захвата видео и трансляции в сеть mjpg-streamer
По поводу установки образа на «малину» я ничего писать не буду, поскольку это уже много раз описывалось.
Подразумевается, что Вы уже умеете это делать.
Итак приступим.
Подключаемся по SSH к «малине» и первое, что мы делаем это запускаем обновление
sudo apt-get update
sudo apt-get upgrade(процедура длительная, наберитесь терпения)
Затем заходим в raspi-configи включаем поддержку камеры
sudo raspi-config
меняем значение с Disable на Enable
Перезагружаемся, снова коннектимся и устанавливаем дополнительные библиотеки и приложения, которые нужны дляmjpg-streamer:
sudo apt-get install libjpeg8-dev sudo apt-get install cmake wget https://github.com/jacksonliam/mjpg-streamer/archive/master.zip
разархивируем
unzip ./master –d ./ms (ms я взял сам, чтобы не писать постоянно полное имя)
Переходим в папку
cd /ms/mjpg-streamer-master/mjpg-streamer-experimental
и собираем
make clean all
Изменяем файлstart.sh командой
sudo nano ms/mjpg-streamer-master/mjpg-streamer-experimental/start.sh
убираем две незакомментрованные строки и пишем вместо них вот эти
cd etc/ms/mjpg-streamer-master/mjpg-streamer-experimental ./mjpg_streamer -o "./output_http.so -w ./www" -i "./input_raspicam.so -x 640 -y 480 -fps 10 -ex auto -awb auto -vs -ISO 100"
должно получиться вот так
"./output_http.so -w ./www"– вывод изображения на вебсервер
"./input_raspicam.so -x 640 -y 480 -fps 10 -ex auto -awb auto -vs -ISO 100"-- захват видео с камеры и параметры захвата (640х480, 10 к/с, экспозиция АВТО, автобаланс белого, вертикальная синхронизация и ISO 100). На самом деле все эти параметры можно убрать, оставив только разрешение и частоту кадров, остальное эт просто опции.
Далее выходим из редактора nano командой Ctrl+X, затем Enter(соглашаемся с изменением) и Y(да). Находясь в папке mjpg-streamer-experimental запускаем наш скрипт
./start.sh
Должно запуститься и в консоли увидите следующее:
и светодиод на камере должен загореться.
Выход командойCtrl+C. Скрипт остановится и светодиод погаснет.
Далее с браузера заходим по такой ссылке:http://ip-address-raspberry:8080/?action=stream(где ip-address-raspberry – это IP Вашей «малины»)и попадаем на вебсервер, нажимаем на Stream.
Естественно Ваши устройства должны быть в одной сети: компьютер с Putty, «малина» и телефон с Ip Cam Viewer. Если Ваш комп не видит малину, Но Вы точно знаете что SSH имеет доступ, то вероятно у Вас роутер блокирует связь между устройствами. Я так однажды попал. Не наступайте на те же грабли
Теперь нам надо подключиться с телефона к нашей камере. Я использовал программу IP Cam Viewer, так как она содержит богатый функционал.
Что там нужно сделать, так это только добавить Вашу камеру :
нажимаем «меню», «управление камерами», затем «+» для добавления новой камеры, выбираем «стандартный адрес», Имя: любое; Производитель «Generic URL»; Модель «Generic URL»; URL «вписываем точно такой же адрес «: http://ip-address-raspberry:8080/?action=stream», затем нажимем «Тест» и если изображение с камеры получено, то сохраняем.
Теперь о настройках камеры. Сама камера тоже имеет много настроек изображения. Начиная от разрешения и частоты кадров, заканчивая наложением всяких эффектов. Подробно можно вязть описание с ресурса https://github.com/jacksonliam/mjpg-streamer/blob/master/README.md
Собственно с этого ресурса я взял всю информацию по настройке. Как Вы заметили, я взял разрешение камеры 640х480 и частоту кадров 10 к/с. Максимально возможные эти параметры 1920х1080х30.
Собственно вот результат:
А это на телефоне: