ньюKAMIKAZE - Робота з камерою Raspberry Pi (частина 2) - Трансляція відео
Є кілька способів різного ступеня складності організувати трансляцію відео з камери Raspberry Pi. Все залежить від того, де саме вам необхідно приймати транслюється. Розглянемо деякі з варіантів, рухаючись від простого до складнішого.
VLC media player
Найпростіший спосіб транслювати відео з камери Raspberry Pi - установка програвача VLC media player як на комп'ютері, так і на "Малинці". Останнє робиться за допомогою такої команди:
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" і вписати http://192.168.0.9:8160 (замініть 192.168.0.9 на реальний IP-адресу свого Raspberry Pi). Якщо встановити VLC на Android-пристрій, то цей спосіб теж працює. Втім, для смартфонів є і більш зручний спосіб.
RaspiCam Remote
Цей більш зручний спосіб - додаток RaspiCam Remote . По-перше, воно не вимагає установки нічого додаткового на 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 . Це цілий пакет, який встановлює і налаштовує все необхідне (в тому числі і сервер) і дає на виході веб-сайт на локальному сервері з зображенням з камери і величезною кількістю налаштувань (аж до можливості перезавантажити або вимкнути Raspberry Pi). Крім того, цей пакет використовує програмний датчик руху Motion і підтримує пристрої 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 , Який у мене вже встановлено. В такому випадку я відкриваю файл сценарію і видаляю з інструкцій установку Apache.
sudo nano ./RPi_Cam_Web_Interface_Installer.sh
Там же можна змінити каталог, в який буде встановлений сайт. Тепер можна запускати установку:
./RPi_Cam_Web_Interface_Installer.sh install
Після її закінчення слід перезагрузаться і тепер, якщо в браузері набрати IP своєї "малинки", відкриється сторінка з зображенням з камери і настройками. За замовчуванням під час запуску програми автоматично. Це можна відключити і запускати його вручну. Ось список команд:
- ./RPi_Cam_Web_Interface_Installer.sh autostart_yes - включити автозавантаження
- ./RPi_Cam_Web_Interface_Installer.sh autostart_no - відключити автозавантаження
- ./RPi_Cam_Web_Interface_Installer.sh start - ручний запуск
- ./RPi_Cam_Web_Interface_Installer.sh stop - ручне відключення
- ./RPi_Cam_Web_Interface_Installer.sh remove - видалення RPi-Cam-Web-Interface і всіх додаткових додатків
Детальніше про цей пакет можна почитати тут і тут .
Автор: Lentyay
Jpg?