Differenze tra le versioni di "Appunti per un sistema di video, sorveglianza e streaming, indipendente"
Riga 94: | Riga 94: | ||
# Stop motion | # Stop motion | ||
− | + | /home/$USER/bin/RaspberryPi-motion-stop.sh | |
# Start motion | # Start motion | ||
Riga 116: | Riga 116: | ||
# Stop motion | # Stop motion | ||
− | + | /home/$USER/bin/RaspberryPi-motion-stop.sh | |
# Start camera e streaming (in ascolto, switch -l di 'nc') | # Start camera e streaming (in ascolto, switch -l di 'nc') |
Versione delle 12:51, 17 nov 2013
L'idea 'finale' e`/sarebbe, ottenere un sistema che sia indipendente, adattabile alle esigenze di ogniuno ed anche personalizzabile, diciamo un sistema di "video" completo e anche di piu`.
Network
Probabilmente non si e` notato, ma iniziamo da qua:
- Raspberry Pi Access Point con autenticazione WEP2, DNS e Firewall
- Questo e` stato realizzato per poter avere un sistema collegabile alla rete di casa/ufficio e controllabile da questa, ma non solo, il Raspberry Pi con la sua Onboard Camera deve [anche] essere raggiungibile in WiFi se desideriamo posizionarlo dove non e` presente una rete cablata, e raggiungibile solo tramite autenticazione (non vorrete che qualcuno vi spii o che veda che lo spiate). E` anche possibile utilizzare il Raspberry Pi come Access Point, quindi, potete anche usarlo per collegarvi ad una rete cablata. Insomma, ho cercato una soluzione che fosse di connessione a 360 gradi (piu` o meno).
Video motion
Il secondo punto e` stato implementare la soluzione mdi videosorveglianza motion-mmal:
- Motion con Raspberry Pi Onboard Camera
- Mi sono fermato alla sola registrazione video/foto sulla SD Card in caso di rilevazione di movimento, come scritto all'inizio, questa e` la soluzione 'indipendente', tipo lasciare tutta la notte il sistema acceso per monitoraggio scollegato da qualsiasi rete e magari collegato ad una batteria/ups di alimentazione.
Streaming
Be`, non e` detto che lo si voglia utilizzare solamente in questo modo, possiamo anche fare qualcos'altro, nelle modalita` d'uso ho previsto anche quella di streaming, dopo svariate prove ho trovato i parametri a me piu` congeniali/funzionali, attualmente e` pilotata in "manuale", ma potrebbe essere un'idea realizzarla con una interfaccia web.
Descrivero` (cerchero`) come ho strutturato ora il modo d'uso per "switchare" da uno all'altro tipo.
Modifiche e/o predisposizioni al file "/etc/rc.local" per l'esecuzione automatica del "firewall", del "motion" e dello "stream" (alcune gia` disattivate, capirete perche`):
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi # My add: iptables if [ -x /etc/init.d/iptables ];then . /etc/init.d/iptables start fi #if [ -x /home/pi/motion-mmalcam/motion ];then # su pi -c "/home/pi/motion-mmalcam/motion -n -c /home/pi/motion-mmalcam/motion-mmalcam.conf &" #fi #while true; do # raspivid -w 1920 -h 1080 -fps 12 -vf -hf -t 0 -o - | nc -l 10301 #done exit 0
Per "comandare" il Raspberry Pi ho pensato di utilizzare "ssh" (tralascio tutti i 'fallimenti' e le prove del come sono arrivato qua).
Per prima cosa ho scambiato la chiave di autenticazione, cosicche` non debba piu` inserire la password, confermando sempre con enter a qualsiasi richiesta:
ssh-keygen
Poi l'ho trasferita (vi chiedera` la password del Raspberry Pi):
ssh-copy-id pi@<NomeDelRaspberriPi o IP>
Ho avuto qualche difficolta` con i comandi "kill", quindi ho predisposto un file "/home/pi/motion-mmalcam/motion-kill.sh", questo e` il contenuto:
#!/bin/bash kill -6 $(pidof motion)
Se non lo avete fatto, rendetelo eseguibile:
chmod 700 /home/pi/motion-mmalcam/motion-kill.sh
Sul computer che uso per il controllo ho creato tre files eseguibili (ovviamente la directory "/home/$USER/bin" e` nel path di ricerca degli eseguibili).
- "/home/$USER/bin/RaspberryPi-motion.sh"
- L'avvio di motion-mmal
#!/bin/bash # Stop motion /home/$USER/bin/RaspberryPi-motion-stop.sh # Start motion ssh pi@<NomeDelRaspberriPi o IP> /home/pi/motion-mmalcam/motion -n -c /home/pi/motion-mmalcam/motion-mmalcam.conf &
- "/home/$USER/bin/RaspberryPi-motion-stop.sh"
- Lo stop di motion-mmal
#!/bin/bash # Stop motion ssh pi@<NomeDelRaspberriPi o IP> /home/pi/motion-mmalcam/motion-kill.sh sleep 2
- "/home/$USER/bin/RaspberryPi-stream.sh"
- Avvia lo streaming fra i due pc, ed il client video sul pc locale
#!/bin/bash # Stop motion /home/$USER/bin/RaspberryPi-motion-stop.sh # Start camera e streaming (in ascolto, switch -l di 'nc') ssh pi@<NomeDelRaspberriPi o IP> "raspivid -w 640 -h 360 -fps 12 -vf -hf -t 0 -o - | nc -l 10301" & sleep 2 # Start local player nc <NomeDelRaspberriPi o IP> 10301 | mplayer -fps 30 -demuxer h264es -