Strumenti Utente

Strumenti Sito


raspberry:camera

Questa è una vecchia versione del documento!


collegamento

ovvero come usare la “raspberry pi camera”.
Per verificare il corretto collegamento eseguire il seguente comando:

raspistill -v -o test.jpg

Come si può immaginare viene salvata un'immagine “test.jpg”
la apriamo con un visualizzatore immagini e il risultato ci farà capire se tutto è ok.
All'esecuzione del comando si sarà anche acceso il led rosso anteriore che si attiva durante l'utilizzo della periferica.
In modo analogo è possivile registrare un video con il seguente comando:

raspivid -o video.h264 -t 10000

che registrerà in formato h264 un video di durata 10000 millisecondi ovvero 10 secondi.

attivazione periferica

per poter usare il modulo camera con altri programmi video è necessario attivarla come periferica video.
ossia dobbiamo vederla come device /dev/video0
se la cerchiamo tra i device non la troveremo
Quindi è necessario usare il seguente comando per attivare il modulo:

sudo modprobe bcm2835-v4l2

infatti ora la potremo trovare come /dev/video0 1 2 ecc… nel caso di più dispositivi video
il precedente comando ha effetto fino al prossimo riavvio poi dovremo rieseguirlo per averla a disposizione
quindi editiamo il file /etc/modules e aggiungiamo in fondo bcm2835-v4l2

programmi

Ora ci si può sbizzarrire utilizzando diversi software per fare test e video

motion

Il sistema più semplice per fare videosorveglianza è l'utilizzo di motion

apt-get install motion

Questo software permette di registrare video o scattare foto quando viene rilevato del movimento.
Esso se opportunamente configurato fa anche streaming video visualizzabile da remoto tramite browser o altro player video.
Tutto sta nel file di configurazione /etc/motion/motion.conf
Di default motion attende di essere mandato in esecuzione semplicemente con il comando motion
E vedremo che si accenderà il led anteriore della camera e inizierà a registrare immagini e video nel percorso di default /var/lib/motion
Occhio però che nel giro di poco tempo riempirà tutto lo spazio di archiviazione disponibile.
Infatti oltre a creare video scatta continuamente immagini e con il parametro “output_pictures” si può decidere se farglielo fare oppure no.
Altra sezione importante è quella relativa lo stream video per il controllo via web delle opzioni di motion e della visualizzazione delle immagini in live.
Di default non è possibile visualizzare lo stream video da un'altro PC
Per abilitarlo cambiare il parametro “stream_localhost” da “on” a “off”
In questo modo sarà possibile vedere lo streaming live sulla porta 8081 da un'altro PC.
La qulità di default dello streaming fa veramente schifo (1frame per secondo).
Però i video registrati sono effettivamente di qualità discreta.
Per migliorare la qualità dello streaming bisogna cambiare il parametro “stream_maxrate” da 1 ad almeno 10.
Questo però comporta un uso maggiore della rete che si può monitorare tramite l'installazione di uno di questi programmi da riga di comando:
iftop
bmon
In modo analogo è possibile attivare la visualizzazione delle opzioni per la gestione di motion via web
Per abilitarlo cambiare il parametro “webcontrol_localhost” da “on” a “off”.
Infine dobbiamo dire che per rendere attivo all'avvio motion, bisogna mettere il parametro “daemon” a “on”
e inserire all'interno del fiel /etc/rc.local il comando motion in una nuova riga

utilizzo risorse

riguardo l'utilizzo delle risorse possiamo dire che con la configurazione appena suggerita si ha con motion attivo un consumo CPU del 50% e un utilizzo della rete di circa 500Kb.
Il problema è quando c'è molto movimento che provoca dei picchi nel processore fino al 90 e passa %. Se aumento anche i framerate aumenta pure l'uso della rete che a 15 fps arriva a 750 Kb.
Tutto ciò con un raspberry pi mod B+ V1.2, ma con un Raspberry Pi 3 model B+ la CPU non va oltre il 33% e la rete comunque dai 750 agli 800 Kb.
Tutto aumenta con l'aumentare della risoluzione e della qualità.
ad esempio con una risoluzione di 1024×768 il processore con rpi3 arriva a 62% e la rete con lo streaming a 15 fps arriva fino a 1,6 Mbs

esperienza con la pi camera

ATTENZIONE: test effettuati con l'immagine de le 27 maggio 2015 senza aver fatto l'upgrade e i repo non modificati
seguito le istruzioni su:
http://tnw513.altervista.org/blog/ip-camera-raspberry-pi/
e
http://elinux.org/RPi-Cam-Web-Interface

installare il seguente software per ottenere un'interfaccia web per la visualizzazione dello stream video:

git clone https://github.com/silvanmelchior/RPi_Cam_Web_Interface.git \\

ma sarebbe meglio per la mia guida scaricare tutto dal mio mirror locale.
poi entrare nella directory

cd RPi_Cam_Web_Interface

cambiare i seguenti diritti

chmod u+x RPi_Cam_Web_Interface_Installer.sh

e lanciare l'installatore:

./RPi_Cam_Web_Interface_Installer.sh install

affinche funzioni tutto al primo colpo scegliere apache come web server di default

Altro sistema per vedere il flusso con zoneminder è quello di installare vlc
QUindi una distro pulita installare solo vlc dopo l'update:

apt-get update
apt-get install vlc

e lanciare

raspivid -o - -t 9999999 -w 320 -h 240  | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/pi.sdp}' :demux=h264

oppure

raspivid -o - -t 99999 -hf -w 640 -h 360 -fps 25|cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8090}' :demux=h264

oppure altro modo con http

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

altro sistema;

raspivid -rot 180 -w 640 -h 360 -fps 31 -t 0 -o - | cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8080}' :demux=h264

altro con dd

dd if=/dev/video1 bs=1M | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' --demux=h264

altro con raspivid:

raspivid -w 640 -h 360 -fps 31 -t 0 -o - | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' --demux=h264

sistema con ncat e mplayer
lanciare prima il client dal pc in attesa:

nc -l -p 5001 | mplayer -fps 31 -cache 1024 -

poi lanciare dal raspberry:

raspivid -t 999999 -o - | nc 192.168.1.156 5001

quest'ultima è la soluzione migliore in quanto non si blocca mai

sistema con flusso di rete tcp ma da aprire con mplayer, vlc non ci riuscirebbe:
da raspberry:

raspivid -t 0 -w 1280 -h 1024 -hf -ih -fps 4 -o - | nc -k -l -p 8554

da pc

mplayer -fps 4 -demuxer h264es ffmpeg://tcp://miovps.it:8554

Questi stream possono essere aperti con vlc in flusso di rete
altrimenti per la mia esigenza andare su zoneminder e aggiungere un nuovo monitor remodo di tipo ffmpeg
nella seconda scheda mettere nel percorso sorgente: rtsp:indirizzoip:8554/pi.sdp e con la versione 1.30 di zoneminder scegliere come “metodo remoto” RPT/Unicast
L'unico problema è che con queste impostazioni la qualità del video fa schifo. e non so dove si possa migliorare. però almeno funziona.
===== MODULO RASPI CAM ===== ho notato che il mio raspberry pi 2 b+ con su installato raspbian 9 non abiulitava automaticamente il modulo per la raspicam integrata, Ovvero anche se abilitavo il modulo con raspi-config al riavvio successivo non trovavo il device /dev/video0.
Il motivo è che il modulo bmc2835-v4l2 non viene caricato automaticamente quindi bisogna:
editare il file /etc/modules ed aggiungere in fondo
bmc2835-v4l2 Per disabilitare il led modificare il file /boot/config.txt
disable_camera_led=1 ===== fatto esperienza anche con MOTION ===== bisogna studiarlo bene, ma ho capito che se si vuole registrare le immagini bisogna togliere il commento all'opzione “target_dir” e indicare il percorso in cui si vuol far registrare le immagini.
e inoltre bisogna accertarsi che non sia commentato il seguente parametro e impostato su on:
ffmpeg_output_movies on

raspberry/camera.1552134607.txt.gz · Ultima modifica: 2023/04/17 14:25 (modifica esterna)