OVH Cloud OVH Cloud

webcam

18 réponses
Avatar
ppellero
Bonjour,

je poss=E8de une webcam qui envoie une image toutes les 60s sur un site=20
tout va bien pas de probl=E8me.

J'installe une autre cam=E9ra sur un autre site mais voila le probl=E8me =
:=20
cette cam=E9ra ne sait pas envoyer des images avec le m=EAme nom. Chaque =

image a un nom diff=E9rent et mon script de la 1ere cam=E9ra ne convient =
pas.

Est-ce que quelqu'un aurait un d=E9but de script ou un script entier pour=
=20
afficher une image toutes les ni=E8mes seconde, des images qui arrivent=20
avec un nom diff=E9rent sur le site?

Merci de votre attention

Paul

8 réponses

1 2
Avatar
ppellero
Le 11/08/2010 17:45, ppellero a écrit :

Moi je pensais plutôt faire une boucle qui liste les images prése ntes
dans le répertoire et à chaque itération vérifier si l'heure et la
minute du fichier est la même que celle du système.
Si elle est différente on la supprime et si elle concorde on
l'affiche.???






<?php
$dir = './';
$ptr = opendir($dir);
while ($fichier = readdir($ptr))
{
if (is_file("$dir$fichier") && preg_match("%.jpg%",$fichier))
{
$date_fich = date ("H:i", filemtime($fichier));
//echo "$date_fich<br />";
$date_sys = date("H:i");
//echo "$date_sys<br />";
if ($date_fich != $date_sys){
unlink($fichier);
}else{
echo "<img src="$dir$fichier" />";
}
}
}

?>

Ce script marche bien mais il faudrait le relancer toutes les 60s et
c'est la que je cale car je pense qu'il faut du javascript pour
rafraichir la page.
Je vouerai une reconnaissance éternelle à qui me le complètera pour
relancer ceci à intervale régulier ;)

Paul
Avatar
SAM
Le 12/08/10 14:42, ppellero a écrit :
Le 11/08/2010 17:45, ppellero a écrit :

Moi je pensais plutôt faire une boucle qui liste les images présentes
dans le répertoire et à chaque itération vérifier si l'heure et la
minute du fichier est la même que celle du système.
Si elle est différente on la supprime et si elle concorde on
l'affiche.???






<?php
$dir = './';



Oulà ! les photos sont uploadées à la racine du site ?
Ça doit en faire du taf à en analyser tous les fichiers là, non ?

$ptr = opendir($dir);
while ($fichier = readdir($ptr))
{
if (is_file("$dir$fichier") && preg_match("%.jpg%",$fichier))



Y aura pas intérêt à ce que les photos de la belle-doche trainent par là ...
elle seront perdues pour la postérité ;-)

{
$date_fich = date ("H:i", filemtime($fichier));
//echo "$date_fich<br />";
$date_sys = date("H:i");
//echo "$date_sys<br />";
if ($date_fich != $date_sys){
unlink($fichier);
}else{
echo "<img src="$dir$fichier" />";
}
}
}

?>

Ce script marche bien mais il faudrait le relancer toutes les 60s et
c'est la que je cale car je pense qu'il faut du javascript pour
rafraichir la page.



Non, il faut soit :
- une balise meta refresh dans le head (comme donnée précédemment)
- un en-tête php de refresh (à piocher sur le site php.net/fr/)

Je vouerai une reconnaissance éternelle à qui me le complètera pour
relancer ceci à intervale régulier ;)



5 secondes avec mon mauvais ADSL sur Google et ...
<http://www.phpsources.org/scripts181-PHP.htm>

--
Stéphane Moriaux avec/with iMac-intel
Avatar
ppellero
Oulà ! les photos sont uploadées à la racine du site ?
Ça doit en faire du taf à en analyser tous les fichiers là, non ?



Non l'upload se fait dans un répertoire dédié : /www/webcam/.
Ce matin j'ai de suite regardé la quantité d'images uploadée durant la
nuit ce n'était pas catastrophique.
Je peut toujours lancer une tache ou deux pendant la nuit pour nettoyer
le répertoire.

Non, il faut soit :
- une balise meta refresh dans le head (comme donnée précédemment )
- un en-tête php de refresh (à piocher sur le site php.net/fr/)



J'ai trouvé hier dans mes archives un script de 4 lignes de javascript
qui fait l'affaire.

J'ai réglé la fréquence d'upload à 30s et le rafraichissement à 60s ce
qui fait que j'ai toujours une photo récente à afficher.
Pour afficher une vue de l'état de la mer dans une rade on a pas besoin
d'une précision absolue.
Pour l'instant ça marche bien il ne reste plus qu'a l'installer sur le
site définitif.
Je vous donnerai l'url quand elle sera opérationnelle.
Avatar
SAM
Le 13/08/10 11:44, ppellero a écrit :
Non, il faut soit :
- une balise meta refresh dans le head (comme donnée précédemment)
- un en-tête php de refresh (à piocher sur le site php.net/fr/)



J'ai trouvé hier dans mes archives un script de 4 lignes de javascript
qui fait l'affaire.



Pourquoi se confier au JS quand on a déjà une page en PHP ?

Sinon, oui, c'est facile de le faire en JS

<script type="text/javascript">
setTimeout('location="'+self.location.toString().split('?')[0]+'?'+ new
Date()+'"', 2000);
</script>

ou, plus simple :

<script type="text/javascript">
setTimeout('self.location.reload()', 2000);
</script>

--
Stéphane Moriaux avec/with iMac-intel
Avatar
ppellero
Pourquoi se confier au JS quand on a déjà une page en PHP ?

Sinon, oui, c'est facile de le faire en JS

<script type="text/javascript">
setTimeout('location="'+self.location.toString().split('?')[0]+'?'+ n ew
Date()+'"', 2000);
</script>

ou, plus simple :

<script type="text/javascript">
setTimeout('self.location.reload()', 2000);
</script>




Est-ce qu'il fonctionnerai plus vite en PHP vu qu'il s'exécute sur le
serveur?
C'est à essayer.
Avatar
SAM
Le 13/08/10 18:26, ppellero a écrit :

Pourquoi se confier au JS quand on a déjà une page en PHP ?

Sinon, oui, c'est facile de le faire en JS



Est-ce qu'il fonctionnerai plus vite en PHP vu qu'il s'exécute sur le
serveur?
C'est à essayer.



c'est à dire que ... sur le serveur tu es certain que ça fonctionne

en JS ça va dépendre du visiteur, s'il l'a désactivé: pas de refresh.

en meta refresh : Firefox 3.6 gueule ! (qu'on le fatigue ?)
et probable qu'en JS aussi il va pas aimer :-(

(en local, il est possible que Fx accepte le reload sans râler)

--
Stéphane Moriaux avec/with iMac-intel
Avatar
ppellero
Le 13/08/2010 22:41, SAM a écrit :
Le 13/08/10 18:26, ppellero a écrit :

Pourquoi se confier au JS quand on a déjà une page en PHP ?

Sinon, oui, c'est facile de le faire en JS



Est-ce qu'il fonctionnerai plus vite en PHP vu qu'il s'exécute sur l e
serveur?
C'est à essayer.



c'est à dire que ... sur le serveur tu es certain que ça fonctionne



J'ai essayé le refresh en PHP je n'arrive pas à le faire marcher
je pense que c'est du au fait que les images sont montrées dans un popu p.
la webcam est là http://agay-plongee.fr/.
Cette caméra de toute façon n'est pas bonne. Hier avec du soleil j'av ais
réglé le contraste et la luminosité, aujourd'hui qu'il pleut j'ai d u
refaire les réglages car l'image était noire.
Avatar
SAM
Le 14/08/10 16:47, ppellero a écrit :
Le 13/08/2010 22:41, SAM a écrit :

c'est à dire que ... sur le serveur tu es certain que ça fonctionne



J'ai essayé le refresh en PHP je n'arrive pas à le faire marcher
je pense que c'est du au fait que les images sont montrées dans un popup.



Je ne saurais le dire.

en JS, une seule ligne devrait suffire :

setTimeout(function(){location.reload(true);}, 60000);

la webcam est là http://agay-plongee.fr/.



Non, là (http://agay-plongee.fr/webcam/date_fich.php)
c'est ce qu'elle regarde ;-)

Cette caméra de toute façon n'est pas bonne. Hier avec du soleil j'avais
réglé le contraste et la luminosité, aujourd'hui qu'il pleut j'ai du
refaire les réglages car l'image était noire.



et à cette heure-ci ... pas grand monde qui passe ...



--
Stéphane Moriaux avec/with iMac-intel
1 2