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.
picoboard.pl liked this on Facebook.
osworld.pl liked this on Facebook.
Cyryl Sochacki liked this on Facebook.
Cyryl Sochacki liked this on Facebook.
W skrypcie zatrzymującym:
if pgrep mjpg_streamer
Jak sprawdzać inne uruchomione polecenia działające w tle np. screen lub po prostu „polecenie&”?
if pgrep screen
if pgrep program
Screen może uruchamiac wiele poleceń na raz. Jak to sprawdzić np. na podstawie nazwy z parametru screen -dmS nazwa polecenie
?
polecał bym ci najpierw sprawdzenie pid-a screen -r a dopiero killowanie po nim danego procesu
W takich sprawach pisz na forum
W skrypcie zatrzymującym:
if pgrep mjpg_streamer
Jak sprawdzać inne uruchomione polecenia działające w tle np. screen lub po prostu „polecenie&”?
if pgrep screen
if pgrep program
Screen może uruchamiac wiele poleceń na raz. Jak to sprawdzić np. na podstawie nazwy z parametru screen -dmS nazwa polecenie
?
polecał bym ci najpierw sprawdzenie pid-a screen -r a dopiero killowanie po nim danego procesu
W takich sprawach pisz na forum
ten sposób zadziała też dla kamer USB?