Moduł kamery dla Raspberry Pi powala nie tylko nagrywać wideo, czy robić zdjęcia, ale również na strumieniowanie obrazu do sieci. Wysyłanie obrazu z Raspberry Pi możliwe jest na kilka sposobów, ale dziś pokażemy jak streamować obraz za pomocą przystosowanej aplikacji mjpg-streamer dla Raspberry Pi.

Instalujemy bibliotekę libjpeg oraz pakiet cmake:

[bash]sudo apt-get install libjpeg62-dev cmake[/bash]

Klonujemy projekt git mjpg-streamer z obsługą modułu kamery z Raspberry Pi:

[bash]git clone https://github.com/jacksonliam/mjpg-streamer.git ~/mjpg-streamer[/bash]

Przechodzimy do katalogu mjpg-streamer-experimental:

[bash]cd ~/mjpg-streamer/mjpg-streamer-experimental[/bash]

Używamy wersji eksperymentalnej, która działa lepiej niżeli wersja stabilna. Obraz jest płynny i nie ma problemów z większa ilościa klatek.

Kompilujemy projekt:

[bash]make clean all[/bash]

Po poprawnym skompilowaniu, możemy już skopiować aplikację do katalogu /opt:

[bash]sudo mv ~/mjpg-streamer/mjpg-streamer-experimental /opt/mjpg-streamer[/bash]

Możemy odpalić streaming obrazu używając polecenia

[bash]LD_LIBRARY_PATH=/opt/mjpg-streamer/ /opt/mjpg-streamer/mjpg_streamer -i "input_raspicam.so -fps 15 -q 50 -x 640 -y 480" -o "output_http.so -p 9000 -w /opt/mjpg-streamer/www"[/bash]

a następnie przejść do adresu ip_maliny:9000. Polecenie uruchamia aplikację do streamowania obrazu z kamery z rodzielczością 640×480 używając przy tym 15 klatek oraz jakość obrazu ustawiony na 50%. Wartosci te możemy sobie zmieniać wg potrzeb.

Możemy stworzyć sobie skrypty, które będa uruchamiać i zatrzymywać aplikację.

[bash]
#!/bin/bash

if pgrep mjpg_streamer > /dev/null
then
echo "mjpg_streamer already running"
else
LD_LIBRARY_PATH=/opt/mjpg-streamer/ /opt/mjpg-streamer/mjpg_streamer -i "input_raspicam.so -fps 15 -q 50 -x 640 -y 480" -o "output_http.so -p 9000 -w /opt/mjpg-streamer/www" > /dev/null 2>&1&
echo "mjpg_streamer started"
fi
[/bash]

Skryp zatrzymujący strumieniowanie:

[bash]
#!/bin/bash

if pgrep mjpg_streamer
then
kill $(pgrep mjpg_streamer) > /dev/null 2>&1
echo "mjpg_streamer stopped"
else
echo "mjpg_streamer not running"
fi
[/bash]

Powyższego oprogramowania można użyć np. do monitorowania drukarki 3D.

Poprzedni artykułRaspberry Pi Model A+
Następny artykuł7 Days To Die ze wsparciem na Linuksa

13 KOMENTARZE

  1. W skrypcie zatrzymującym:
    if pgrep mjpg_streamer

    Jak sprawdzać inne uruchomione polecenia działające w tle np. screen lub po prostu „polecenie&”?

  2. W skrypcie zatrzymującym:
    if pgrep mjpg_streamer

    Jak sprawdzać inne uruchomione polecenia działające w tle np. screen lub po prostu „polecenie&”?

ZOSTAW ODPOWIEDŹ

Proszę wpisać swój komentarz!
Proszę podać swoje imię tutaj