Caméra de surveillance et de détection 100 % dans le navigateur : elle analyse le flux d'une ou plusieurs caméras (ou d'un partage d'écran), repère les mouvements, enregistre, compte les personnes et peut diffuser en direct. Aucun envoi d'image vers un tiers : le traitement est local (sauf upload/diffusion que vous activez).
✅ Ce que le script PEUT faire
Détecter le mouvement en temps réel, sensibilité réglable.
Ex. : surveiller une allée ; le badge MOTION s'allume dès qu'une silhouette passe.
Enregistrer automatiquement (Auto-REC) dès qu'un mouvement franchit le seuil, et couper après le calme.
Ex. : un colis déposé devant la porte déclenche un clip, qui s'arrête seul.
Pré-enregistrer les secondes avant le déclenchement.
Ex. : capter un oiseau dès son entrée dans le cadre, pas une fois déjà posé.
Filtrer les clips : durée min/max, pause entre deux enregistrements.
Ex. : éviter 200 micro-clips quand un arbre bouge au vent.
Limiter à une zone (ROI) tracée à la souris/au doigt.
Ex. : ne surveiller que la porte du garage et ignorer la rue passante.
Distinguer le mouvement de la caméra de celui de la scène (heuristique, compensation, gyroscope, OpenCV).
Ex. : une caméra sur trépied qui vibre au vent ne déclenche pas l'enregistrement.
Visualiser le mouvement en « contraste de phase » : superpose l'image courante et l'inverse de la précédente (décalage d'1 image) — fond gris où rien ne bouge, seuls les objets en mouvement ressortent.
Compter les personnes entre deux instants (actuel, pic simultané, total estimé), avec Pause.
Ex. : combien de visiteurs passent devant un stand entre 14 h et 15 h.
Incruster l'horodatage + télémétrie dans la vidéo, au fuseau horaire de votre choix.
Ex. : une preuve datée à l'heure locale (America/Toronto) gravée dans le fichier.
Enregistrer en local sans boîte de dialogue, dossier mémorisé entre les sessions.
Ex. : tous les clips atterrissent dans /Captures sans rien cliquer (Chrome/Edge).
Prendre une photo instantanée du cadre.
Capturer le son du micro : à l'enregistrement et/ou à la diffusion, au choix.
Envoyer automatiquement les captures vers serveur/FTP/cloud (Drive, Dropbox, OneDrive) via config.php.
Diffuser en direct sur YouTube/Facebook via le pont stream-bridge.js (Node + ffmpeg).
Mémoriser les réglages et changer de caméra/source sans interrompre les activités en cours.
Capturer l'écran comme source (partage d'écran), au même titre qu'une caméra.
Ex. : surveiller un tableau de bord affiché à l'écran et enregistrer s'il change.
Gérer plusieurs caméras : vignettes en direct (clic = basculer, survol = agrandir l'aperçu), slots sur 1–9 (double-appui pour affecter la source active), et surveiller le mouvement sur toutes.
Ex. : 4 caméras en vignettes ; celle qui bouge s'entoure de rouge.
Prendre une photo automatique à chaque détection — rangée au même endroit que les vidéos.
Choisir une seule fois la destination à la 1ʳᵉ capture : ordinateur, en ligne, ou les deux.
Ex. : au 1ᵉʳ mouvement, vous choisissez « les deux » → tout part en local et dans le cloud.
Configurer le cloud en quelques clics (modale : OAuth Drive/Dropbox/OneDrive, FTP), protégée par mot de passe admin.
Afficher une jauge de mouvement plein écran (vert sous le seuil, orange proche, rouge au‑dessus).
S'adapter au processeur : cadence abaissée automatiquement si surcharge, et réglages définition/FPS.
⛔ Ce que le script NE PEUT PAS faire
Diffuser en RTMP depuis le navigateur seul : il faut le pont (Node+ffmpeg), impossible sur un hébergement mutualisé — à lancer sur MAMP ou un VPS.
Ex. : sur un Apache mutualisé, tout marche sauf le direct.
Reconnaître l'identité des personnes : pas de reconnaissance faciale, pas de « qui », seulement « combien ».
Ex. : il ne dira pas « c'est Paul », juste « 1 personne ».
Compter exactement si les gens se croisent ou ressortent puis reviennent : le total est une estimation.
Ex. : une personne qui sort et revient peut être comptée deux fois.
Reconnaître autre chose que « personne » : pas de plaques, races d'animaux, objets précis (le modèle est réglé sur les personnes).
Voir dans le noir : c'est une caméra classique, sans lumière il n'y a rien à analyser.
Enregistrer sans dialogue sur Safari/iOS (API non supportée) → repli sur le téléchargement classique.
Accéder caméra/micro/dossier sans HTTPS (ou localhost) : contexte sécurisé obligatoire.
Garantir le plein FPS avec OpenCV ou la détection de personnes activés sur une machine modeste (coût processeur).
Suivre/identifier un objet précis dans la durée : il détecte le mouvement et les personnes, il ne « piste » pas une cible nommée.
🎬 Cas concrets
1. Surveillance d'entrée de garage Zone (ROI) sur la porte · Auto-REC · pré-enreg 3 s · dossier local mémorisé. → Un clip horodaté à chaque ouverture, rangé automatiquement, sans fausse alerte sur la rue.
2. Comptage de visiteurs à un événement Détecter personnes · Démarrer à l'ouverture · Pause à midi · Arrêter à la fermeture. → Total estimé de passages + pic de fréquentation, avec début/fin horodatés.
3. Caméra mobile / drone Activer Stabilisation (gyroscope + flux optique OpenCV). → L'enregistrement ne se déclenche plus à chaque mouvement de la caméra, seulement sur la scène.
4. Direct YouTube d'un événement, avec son Pont sur un VPS (WSS) · cocher Diffuser le son · cliquer YouTube. → Le canvas traité (incrustations comprises) part EN DIRECT avec l'audio micro.
5. Preuve horodatée Incrustation horodatage au fuseau local · enregistrement local. → Des fichiers datés à l'heure exacte gravée dans l'image.
6. Plusieurs caméras + sauvegarde locale et cloud Vignettes activées · « surveiller toutes » · au 1ᵉʳ mouvement, choisir « Les deux ». → La caméra qui bouge est signalée, et chaque capture est enregistrée en local et en ligne sans rien redemander.
⌨️ Raccourcis clavier
Cliquez sur une touche pour la réassigner, puis appuyez sur la nouvelle (touche unique, sans combinaison). Échap annule.
Fonction
Touche
Sources (non modifiables) : 1–9 sélectionner le slot · double-appui = affecter la source active à ce slot (avec échange) · 0 source par défaut (simple = y aller · double = définir l'actuelle). La capture d'écran est une source comme une caméra.
Stockage cloud
URI de redirection OAuth à enregistrer dans la console de chaque service :
Où enregistrer les captures ?
Un mouvement vient de déclencher une capture. Choisissez une seule fois la destination — les suivantes y seront enregistrées automatiquement.
« Ordinateur » propose un dossier (mémorisé). « En ligne » utilise les destinations activées dans ⚙ Configurer le cloud.
Aucune destination cloud n'est encore active. Voulez-vous la configurer maintenant ?