Recentemente mi e' capitato di lavorare con la telecamera in oggetto che ha uno zoom ottico di 12x con una risoluzione di 795x596 Pixel (reale 704x576 quindi niente di che rispetto alle comuni e economiche webcam 640x480) , autofocus
L'alimentazione viene fornita tramite Ethernet via POE
La rotazione e' di 360° sull'asse orizzontale e di 180° su quello verticale
Il sistema di gestione principale e' costituito da un programma in Silverlight che ovviamente non funziona via Linux (a meno di non rischiare la via Moonlight che francamente ho scartato) .. fortunatamente ci sono un po' di sostituzioni
Per la visualizzazione delle immagini si puo' tranquillamente usare VLC collegato in modalita' rtsp all'indirizzo
rtsp://192.168.1.100/profile2/media.smp
per utilizzare la modalita' PTZ ovvero la possibilita' di muovere la telecamera le cose sono piu' complicate
Sono disponibili dei comandi http
http://192.168.1.100/cgi-bin/ptz.cgi?movepan=100 (il parametro e' un angolo da 0° a 359°)
http://192.168.1.100/cgi-bin/ptz.cgi?movetilt=90 (il parametro e' un angolo da -5° a 185°)
http://192.168.1.100/cgi-bin/ptz.cgi?movezoom=3 (il parametro e' un valore da 1 a 12)
il problema grosso e' che non si puo' creare uno script (per esempio in Python) per muovere la telecamera in quanto in sistema monta un sistema di autenticazione via http che NON e' possibile disattivare (almeno su questo modello di camera)
Di seguito un esempio di codice Python per inviare comandi http che NON funziona a causa del sistema di autenticazione
--------------------------------------------------------------------
import pygame
import urllib
from pygame import *
pygame.init()
pygame.display.set_mode((500,500),OPENGLBLIT|OPENGL|DOUBLEBUF)
exitt = 0
inte = 4096
while not exitt:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exitt = True
if event.type == pygame.KEYDOWN and event.key == pygame.K_a:
params = urllib.urlencode({'movepan': '100'})
url = "http://192.168.1.4//cgi-bin/ptz.cgi?%s" % params
f = urllib.urlopen(url)
if event.type == pygame.KEYDOWN and event.key == pygame.K_s:
params = urllib.urlencode({'movepan': '200'})
url = "http://192.168.1.4//cgi-bin/ptz.cgi?%s" % params
f = urllib.urlopen(url)
--------------------------------------------------------------------
Come workaround ho installato apache sulla macchina ed ho creato una pagina fatta di soli link su http://localhost/index.html alle varie funzioni della camera
per esempio
<a href http://192.168.1.100/cgi-bin/ptz.cgi?movepan=100> Pan 100</a>
<a href http://192.168.1.100/cgi-bin/ptz.cgi?movepan=120> Pan 120</a>
<a href http://192.168.1.100/cgi-bin/ptz.cgi?movepan=140> Pan 140</a>
cliccando sul link, se non autenticati, la camera richiede l'autenticazione
In questo modo si sfrutta il browser per gestire il lato autenticazione http
Iscriviti a:
Commenti sul post (Atom)
Dockerizza Flask
Un esempio semplice per inserire in un container Docker una applicazione Flask Partiamo da una semplice applicazione che ha un file app.py ...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...
Nessun commento:
Posta un commento