Autor
|
Tema: Software multicaptura webcam (Llegit 2867 vegades)
|
meteo_rodadater
Cumulus Humilis
   
Desconnectat
Gènere: 
Missatges: 262

|
Com s`ha de compondre el mosaic d`imatges que ara captura, en una pàgina web?
|
|
|
|
|
En línia
|
|
|
|
|
|
meteo_rodadater
Cumulus Humilis
   
Desconnectat
Gènere: 
Missatges: 262

|
Va molt bé.He mirat el que ha fet el programa durant la tarda i queda perfecte. Estàs fent una eina molt útil per a tothom. Agraït,mols gràcies.
|
|
|
|
|
En línia
|
|
|
|
casacota
Cumulus Congestus

Desconnectat
Missatges: 1345

|
Crec que ja ho tindríem, només demano a qui li interessi que ho provi i a veure si funciona.
Aquí he afegit un annexe i unes instruccions:
http://www.casacota.cat/teranyina?num=1159025635/0
Cal configurar la cosa primer, editant els valors correctes en aquestes línies:
################################################################################ ############### edita aquesta secció segons les teves necessitats ############## ################################################################################ $servidor = "ftp.casacota.cat"; # posa el nom del teu servidor ftp $carpeta = "/arxiuwebcam"; # carpeta dintre del servidor $usuari = "webcam"; # usuari del servidor $contrasenya = "prova"; # contrasenya del servidor $interval = 10; # interval d'actualització de les webcams en minuts $numero = 48; # número de imatges que volem que hi hagi per cada webcam, màxim 998 - si en vols més, modifica el script $lloc = "C:/perl/webcam/"; # en principi no cal tocar això $webcam[0] = "http://www.svt.es/meteoroda/image.jpg"; # les webcams que tenim. Important: totes amb un nom diferent! $webcam[1] = "http://www.svt.es/meteoroda/webcam/webcam.jpg"; $webcam[2] = "http://www.casacota.cat/webcam/sm.jpg"; # posar-ne tants amb números consecutius com webcams tenim, tots amb URL completa ################################################################################ ################## no toquis res a partir d'aquesta línia ###################### ################################################################################ Cal sobretot configurar les dades corresponents al compte FTP que tinguem, el que diu el script per força generaria un error ja que tinc el port FTP tancat a nivell de router.
Suposo que hi hauran problemes, no he tingut la paciència ni el temps de provar-ho gaire... si no us ho podeu arreglar vosaltres mateixos, ja intentaré ficar-hi mà.
El script sencer, és ben curt, gràcies a l'eficiència de Perl:
use File::Copy; use LWP::Simple; use Net::FTP;
################################################################################ ############### edita aquesta secció segons les teves necessitats ############## ################################################################################ $servidor = "ftp.casacota.cat"; # posa el nom del teu servidor ftp $carpeta = "/arxiuwebcam"; # carpeta dintre del servidor $usuari = "webcam"; # usuari del servidor $contrasenya = "prova"; # contrasenya del servidor $interval = 10; # interval d'actualització de les webcams en minuts $numero = 48; # número de imatges que volem que hi hagi per cada webcam, màxim 998 - si en vols més, modifica el script $lloc = "C:/perl/webcam/"; # en principi no cal tocar això $webcam[0] = "http://www.svt.es/meteoroda/image.jpg"; # les webcams que tenim. Important: totes amb un nom diferent! $webcam[1] = "http://www.svt.es/meteoroda/webcam/webcam.jpg"; $webcam[2] = "http://www.casacota.cat/webcam/sm.jpg"; # posar-ne tants amb números consecutius com webcams tenim, tots amb URL completa ################################################################################ ################## no toquis res a partir d'aquesta línia ###################### ################################################################################
$interval = $interval * 60; $numero = "0$numero" if ($numero < 10); $numero = "0$numero" if ($numero < 100); my $forquilla = ($interval and ($^O !~ /mswin32/i)); do { my $pid = $$; my $nanoenforquillat; if ($forquilla) { my $nano; $SIG{CHLD} = 'IGNORE'; $nano = fork; die "fallada a webcam: $!\n" unless defined $nano; $nanoenforquillat++ if (!$nano); } if ($nanoenforquillat or !$forquilla) { &webcam; } exit if ($nanoenforquillat); sleep ($interval); } while $interval; 0; sub webcam { # &digueshora; # reserva per a possibles variants... # if ($minuts =~ "[0-6]0" || $minuts =~ "[0-6]5"){ &arxiuwebcam; # } } sub arxiuwebcam { $ftp = Net::FTP->new($servidor); die "no s'ha pogut establir la connexió $!" unless $ftp; $ftp->login($usuari, $contrasenya); $ftp->cwd($carpeta); $ftp->binary(); for ($i = 0; ($i < 999); $i++) { if ($webcam[$i] ne "") { $arxiu = $webcam[$i]; $arxiu =~ s{^.*/}{$1}; getstore($webcam[$i], $lloc . "001" . $arxiu); $ftp->delete($numero.$arxiu); for ($ii = $numero; ($ii > 0); $ii--) { $iii = $ii - 1; $ii = "0$ii" if ($ii < 10); $ii = "0$ii" if ($ii < 100); $iii = "0$iii" if ($iii < 10); $iii = "0$iii" if ($iii < 100); $ftp->rename($iii.$arxiu,$ii.$arxiu); } $ftp->put($lloc."001".$arxiu); } else { last; } } $ftp->quit; } sub digueshora { my ($segon,$minut,$hores,$dia,$mes,$any); ($segon,$minut,$hores,$dia,$mes,$any) = (localtime(time))[0,1,2,3,4,5]; $hora = $hores; $hores = "0$hores" if ($hores < 10); $dia = "0$dia" if ($dia < 10); $mes = $mes + 1; $mes = "0$mes" if ($mes < 10); $any += 1900; $avui = ("$dia.$mes.$any\_$hores\_UTC"); $segons = $segon; # $segons = "0$segons" if ($segons < 10); $minuts = $minut; $minuts = "0$minuts" if ($minuts < 10); $avuim = "$dia.$mes.$any\_$hores\-$minuts"; }
|
|
|
|
|
En línia
|
|
|
|
|
|
casacota
Cumulus Congestus

Desconnectat
Missatges: 1345

|
Ja he trobat la primera fallada. Qui s'hagi baixat el segon arxiu abans del dia 25 de setembre a les 0:22, que s'el torni a baixar... per menys de 100 imatges enmagatzemades anava bé, però pel damunt hagués donat un error.
|
|
|
|
|
En línia
|
|
|
|
casacota
Cumulus Congestus

Desconnectat
Missatges: 1345

|
Segona fallada. Nova versió penjada a les 00:44 del dia 25. Qui ho hagi baixat abans... que hi torni.
Tot bé menys a l'arribar al número màxim... s'hagués bloquejat el FTP!
|
|
|
|
|
En línia
|
|
|
|
casacota
Cumulus Congestus

Desconnectat
Missatges: 1345

|
Una cosa: ara el script es baixa les imatges del servidor web.
No tinc ni idea de com funcionen les càmeres Axis, però possiblement també poden lliurar les imatges via http local, cosa que seria millor: no carregaria tant la línia. En aquest cas caldria esbrinar quina IP ténen i reemplaçar el http://www.itotelnomdelservidoretc per alguna cosa com http://192.168.1.69 (o la IP que sigui)
De l'altra manera també funcionarà, però això serà més ràpid i no farà que el PC/navegació s'en ressenteixi tant.
|
|
|
|
|
En línia
|
|
|
|
meteo_rodadater
Cumulus Humilis
   
Desconnectat
Gènere: 
Missatges: 262

|
Les captures de les imatges amb l' aplicació que em bas enviar funciona sense cap error.Necessites dades de l' Axis? Quan puguis ja em diràs alguna cosa.
Joan
|
|
|
|
|
En línia
|
|
|
|
|
|
|