usare una VStarcam ipcamera su Linux con vlc o mplayer
La webcam in questione è una IP camera outdoor, modello T7833WIP-X3, economica e ben fatta, l’unico neo è che per sfruttarla a pieno occorrerebbe usare internet Explorer installando un apposito ocx.
Usando Wireshark e guardando i sorgenti dell’interfaccia web alla fine ho tirato fuori le url dello stream h264 e per i parametri di configurazione.
La webcam ha due url per lo streaming: una in formato mjpeg, che arriva fino a 640×480, e l’altra per l’h264, che consente di arrivare a 720P ovvero 1280×960.
Iniziamo con un set di comandi per settare le caratteristiche dello stream, comandi che potranno essere lanciati da un terminale.
Ho usato utente e password di default nei vari esempi, cambiateli secondo i vostri settaggi
formato video
curl "http://<starmcam ip address>/camera_control.cgi?loginuse=admin&loginpas=888888¶m=0&value=<formato video>" Dove <formato video> 0 (vga) 1 (qvga) 3 ( 3 720P ) Es. curl "http://starcam/camera_control.cgi?loginuse=admin&loginpas=888888¶m=0&value=0" La webcam dovrebbe rispondere con var result="ok";
bitrate
curl "http://<starmcam ip address>/camera_control.cgi?loginuse=admin&loginpas=888888¶m=13&value=<bitrate in kbps>" <bitrate in kbps> formato HD: 128,256,384,512,640,768,896,1024,1280,1536,1792,2048,2560,3072,3584,4096 formato VGA: 128,256,384,512,640,768,896,1024 formato QVGA: 128,256,384,512 Es. curl "http://starcam/camera_control.cgi?loginuse=admin&loginpas=888888¶m=13&value=384" La webcam dovrebbe rispondere con var result="ok";
Frame rate
curl "http://<starmcam ip address>/camera_control.cgi?loginuse=admin&loginpas=888888¶m=6&value=<fps>" <fps> 1...30 Es. curl "http://starcam/camera_control.cgi?loginuse=admin&loginpas=888888¶m=6&value=25" La webcam dovrebbe rispondere con var result="ok";
A questo punto possiamo visualizzare lo stream mjpeg con il comando
curl -s "http://starcam.home.lan/videostream.cgi?user=admin&pwd=888888" | vlc - oppure vlc "http://starcam.home.lan/videostream.cgi?user=admin&pwd=888888"
oppure lo stream h264
curl -s "http://starcam.home.lan:80/livestream.cgi?user=admin&pwd=888888&streamid=0&audio=0&filename=" | mplayer -nocache -vc ffh264 -demuxer h264es -fps <fps> -noextbased - Dove <fps> deve essere quello che abbiamo settato con il comando descritto prima
La url per lo “snapshot” è questa
http://starcam.home.lan/snapshot.cgi?user=admin&pwd=888888
Vi sono poi tutta una serie di comandi addizionali per settare luminosità, contrasto, per spostare la webcam etc che possono essere facilmente dedotti analizzando il codice html/javascript dell’interfaccia web e che a richiesta posso mettere nel post, quello che mi interessava di più era scoprire la url e come visualizzare lo stream h264
Ad ogni modo per praticità ho scritto un programmino in python che consente di comandare l’ ipcam con una Linux box.
L’installazione è semplice: basta copiarlo e renderlo eseguibile
wget http://fabrizio.zellini.org/cam/cam.py chmod +x cam.py
Ho usato pygtk, mplayer e curl per cui installate eventualmente le dipendenze necessarie.
Poi si può lanciare così
./cam.py
Va necessariamente specificato almeno l’indirizzo del’ ipcam, il comando
./cam.py -h
mostra una schermata con le opzioni disponibili
Es. di utilizzo
./cam.py -a 192.168.0.200 -m VGA -b 384 -f 25
Verranno aperte due finestre, una con una bottoniera per spostare la webcam e fare zoom in e out, l’altra con lo streaming h264
Nessun commento
commenta | feed commenti [?] | trackback uri [?]