Raspberry Pi a Raspberry Camera

V tomto krátkém článku si ukážeme, jak použít oficiální Raspberry Pi kameru (tu na CSI rozhraní) jako bezpečnostní kameru. O zpracování obrazu se bude starat jiný software na vzdáleném serveru. Šikovný čtenář si v konfiguračním souboru nastaví sám, jak se bude kamera na Raspberry Pi chovat, každopádně ten je velice dobře popsaný.

Nejdříve je potřeba kameru zprovoznit v konfigurátoru:

raspi-config
Enable Camera -> Restart

# Zkouska 1
raspivid -o smazat

Pomocí VLC přehrávače můžeme streamovat video do sítě. Vezmeme výstup z programu raspivid a přeneseme ho do cvlc (VLC v příkazové řádce, bez grafického rozhraní). To vytvoří HTTP server na adrese Raspberry a portu 8080. Adresu Raspberry je možné získat z výstupu příkazu ip a.

# Zkouska 2
apt-get install vlc-nox
raspivid -o - -t 0 -w 640 -h 480 -fps 15 --vflip --hflip | cvlc stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8080}' :demux=h264

Software pro kamerový systém Motion

Nejdříve zapneme ovladač V4L pro kameru. Ten nám vytvoří soubor /dev/video0, který reprezentuje aktuální obraz z kamery. Rozhodně nedoporučuji UV4L (ten se používal dříve), protože si pak nerozuměl s programem motion a zobrazoval obraz velmi nekvalitně. Pak nainstalujeme program motion a nastavíme ho.

modprobe bcm2835-v4l2
apt-get install motion

Upravit soubor /etc/motion/motion.conf

daemon on
videodevice /dev/video0
width 640
height 480
framerate 15
threshold 150000
output_pictures off
ffmpeg_output_movies off
text_right
stream_maxrate 15

Motion se bude spouštět na pozadí jako démon. Obraz bude čerpat z /dev/video0 (to jsme vytvořili pomocí modprobe) a chceme ho ve formátu 640×480. Vyšší rozlišení způsobovalo padání programu. Tato konfigurace je speciální v tom, že neukládá žádné obrázky ani videa. Proto je threshold nastavený tak vysoko. Obyčejně se v pravém dolním rohu objevuje datum, ale ani to nás nezajímá. Potřebujeme pouze obraz, který bude zpracovávat jiný software. Samozřejmě je možné, aby detekci pohybu zaznamenávalo samotné Raspberry. Pak je ale třeba dát pozor, kam se budou zachycené snímky a videa ukládat. Rozhodně nedoporučuji na SD kartu, ale raději na síťový disk připojený pomocí sshfs. Posledním důležitým parametrem je maximální počet snímků poslaných za vteřinu. Standardně je nastaveno 1, my to zvýšíme na 15.

V konfiguračním souboru je nastavený port 8081, na kterém bude v prohlížeči vidět aktuální obraz z kamery (například na http://192.168.1.247:8081).

Program se spouští příkazem motion.

Nastavení spuštění kamery po restartu:

Po každém startu zavedeme modul pro ovládání kamery (vytvoří se soubor /dev/video0):

echo "bcm2835-v4l2" >> /etc/modules

Upravit soubor /etc/default/motion

start_motion_daemon=yes

mjpeg-streamer

Vynikající program mjpeg-streamer umožňuje jednoduše streamovat do několika výstupů. Dokumentace k jednotlivým výstupním (ale i vstupním) pluginům je uvedena v README.md v odkazu výše.

Instalaci provedeme standardně pomocí make (mně chyběly knihovny cmake a libjpeg-dev, proto je na začátku doinstalujeme).

sudo apt-get install cmake libjpeg-dev
make
sudo make install
export LD_LIBRARY_PATH=.
./mjpg_streamer -o "output_http.so -w ./www" -i "input_raspicam.so --width 1280 --height 720 --framerate 15 -vf"

Plugin pro Raspberry Pi přijímá (asi) většinu vstupních parametrů, takže je možné měnit rozlišení, rotovat obraz apod. Po spuštění příkazu mjpeg_streamer vypíše základní informace na standardní výstup a parametry nastavení kamery. Plugin HTTP spouští webový server na adrese 0.0.0.0:8080 a tam se dozvíte, jak se ke streamu připojit (např. přes VLC http://RASPI_IP_ADDR:8080/?action=stream).

Python Camera

Pomocí Pythonu lze naprogramovat různé chování kamery. http://picamera.readthedocs.io/en/latest/install.html

Linux streamování

Na počítači s monitorem:

nc -l 8000 | vlc --demux h264 -

Na Raspberry PI:

raspivid -w 640 -h 480 -t 0 -o - | nc PC_IP_ADDRESS 8000
Příspěvek byl publikován v rubrice Tutoriály se štítky a jeho autorem je Petr Pošvic. Můžete si jeho odkaz uložit mezi své oblíbené záložky nebo ho sdílet s přáteli.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *