- PVSM.RU - https://www.pvsm.ru -
На так давно я стал счастливым обладателем Raspberry Pi. С тех пор эксперименты не прекращаются. Сейчас балуюсь с камерой. В связи с этим захотелось реализовать трансляцию. Надеюсь, данная статья будет полезной таким же новичкам, как я.

Есть несколько способов разной степени сложности организовать трансляцию видео с камеры Raspberry Pi. Всё зависит от того, где именно вам необходимо принимать транслируемое. Рассмотрим некоторые из вариантов, двигаясь от простого к более сложному.
Самый простой способ организовать трансляцию видео с камеры Raspberry Pi — установка проигрывателя VLC media player [1] как на компьютере, так и на «малинке». Последнее делается следующей командой:
sudo apt-get install vlc -y
После этого запускаем запись видео и его трансляцию. На примере ниже видео размером 800 на 400 пикселей и частотой 24fps будет транслироваться в формате h264 через порт номер 8160:
raspivid -o - -t 0 -hf -w 800 -h 400 -fps 24 |cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8160}' :demux=h264
Запускаем на компьютере VLC, выбираем в меню «Открыть URL» и вписываем 192.168.0.9 [2]:8160 (замените 192.168.0.9 на реальный IP-адрес своего Raspberry Pi). Если установить VLC на Android-устройство, то этот способ тоже работает. Впрочем, для смартфонов есть и более удобный способ.

Это более удобный способ — приложение RaspiCam Remote [3]. Во-первых, оно не требует установки ничего дополнительного на Raspberry Pi (при использовании основных функций). Во-вторых, никаких манипуляций с запуском съёмки, как в предыдущем примере, тоже не требуется. Также приложение позволяет применять фильтры к картинке (если я правильно понял, на стороне Raspberry Pi) и сохранять снимки в галерею телефона. Для некоторых дополнительных функций нужно установить пару сторонних приложений на «малинку». В частности, для видео-трансляции с частотой 30fps потребуетcя VLC, а для использования UBS-камеры — fswebcam. В любом случае, приложение простое и полезное, чем и понравилось. Вдобавок это один из самых простых способов протестировать, работает ли камера.
Собственно, подошли к самому главному. Какой-никакой браузер есть сейчас почти на любом устройстве, подключенном к интернету. Трансляция в браузер — наиболее востребованный способ. Учитывая, что разные веб-браузеры до сих пор определяются с тем, какие видео-форматы они проигрывают, а какие нет, нам нет смысла вообще связываться с видео в прямом смысле. Дополнительным аргументом является отсутствие микрофона на камере «малинки» и, как следствие, звуковой дорожки как таковой. Поэтому наиболее разумным будет снимать фото, а не видео. Механизм простой: стандартной командой raspistill делаем с интервалом снимки и сохраняем в один файл, постоянно перезаписывая его. Также устанавливаем на Raspberry Pi веб-сервер, на котором запускаем веб-страницу с нашей фотографией. Понятное дело, что фото надо обновлять с таким же интервалом, с каким ведётся съёмка (в идеале). Делать это можно, например, Javascript`ом:
setInterval(function(){
$("#cam_image").attr("src", "output.jpg?time="+new Date().getTime());
},250);
Время в переменной time в данном случае передаётся только для того, чтобы избежать кэширования изображения.
Если вы далеки от веб-программирования, есть отличное готовое решение — RPi-Cam-Web-Interface [4]. Это целый пакет, который устанавливает и настраивает всё необходимое (в том числе и сервер) и даёт на выходе веб-сайт на локальном сервере с изображением с камеры и огромным количеством настроек (вплоть до возможности перезагрузить или выключить Raspberry Pi). Кроме того, этот пакет использует программный датчик движения Motion [5] и поддерживает устройства Pi-Pan и Pi-Light при наличии оных.
Перед установкой RPi-Cam-Web-Interface в обязательном порядке нужно обновить систему командой sudo rpi-update и перезагрузиться. После этого нужно скачать дистрибьютив:
git clone https://github.com/silvanmelchior/RPi_Cam_Web_Interface.git
cd RPi_Cam_Web_Interface
chmod u+x RPi_Cam_Web_Interface_Installer.sh
RPi-Cam-Web-Interface использует Apache в качестве сервера и поэтому устанавливает его. Мне, например, он не нужен, так как я предпочитаю lighttpd [6], который у меня уже установлен. В таком случае я открываю файл сценария и удаляю из инструкций установку Apache.
sudo nano ./RPi_Cam_Web_Interface_Installer.sh
Там же можно изменить каталог, в который будет установлен сайт. Теперь можно запускать установку:
./RPi_Cam_Web_Interface_Installer.sh install
После её окончания перезагружаемся и теперь, если в браузере набрать IP своей «малинки», откроется страница с изображением с камеры и настройками. По умолчанию приложение запускается автоматически. Это можно отключить и запускать его вручную. Вот список команд:
Подробнее об этом пакете можно почитать здесь [7] и здесь [8].
Автор: newkamikaze
Источник [9]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/raspberry-pi/85287
Ссылки в тексте:
[1] VLC media player: http://www.videolan.org/vlc/
[2] 192.168.0.9: http://192.168.0.9
[3] RaspiCam Remote: https://play.google.com/store/apps/details?id=com.pibits.raspberrypiremotecam
[4] RPi-Cam-Web-Interface: https://github.com/silvanmelchior/RPi_Cam_Web_Interface
[5] Motion: http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome
[6] lighttpd: http://www.lighttpd.net/
[7] здесь: http://www.raspberrypi.org/forums/viewtopic.php?f=43&t=63276
[8] здесь: http://elinux.org/RPi-Cam-Web-Interface
[9] Источник: http://habrahabr.ru/post/252587/
Нажмите здесь для печати.