RPi 0 et Caméra, (et autres) avez-vous les mêmes résultats?

Je me suis monté un système de vidéo surveillance sans passer par Motion Eye, je me base sur FFMpeg pour effectuer mes stream vers mon serveur principal.

J’ai plusieurs types de caméra, sur divers appareil, mais ici je m’attarde a un problème que j’ai avec les Raspberry Pi Zero (1.x)

J’ai 3 caméras que j’ai testé, deux sont des modèle dédié au Raspberry (en Legacy) et une en USB. Et je n’ai clairement pas le même résultat.

Avec la USB, qui est en 720p MAX, j’ai aucun problème vraiment, elle n’est pas Infra Rouge, c’es pour cette raison que je ne préfère pas l’utiliser, et j’aimerais la garder disponible pour d’autres usages. Quand je lance le stream, en format MJpeg, j’ai un décalage normal (latency). Le stream peut tenir plusieurs jours sans problème.

Ma difficulté actuel est avec les modèle de caméra qui passe sur le port de la caméra du Raspberry.

Les problèmes existait AVANT une MaJ qui passe c’est caméra en Legacy, depuis, c’est pire.


Au sujet de cette MaJ; il ma fallu un certain temps pour comprendre pourquoi ma caméra a cesser de fonctionner du jour eu lendemain, après une MaJ, tout cesse de marcher, j’ai des erreurs avec la caméra et impossible de lancer le Stream, j’ai du prendre la caméra USB pour contourner le problème avant de me rendre compte qu’une option dans Raspi-Config doit être activé pour autoriser la Caméra Pi en « Legacy ».


Alors déjà, depuis le début, j’ai un Latency monstre, de 5 à 10 secondes, juste le démarrage de ma commande, ont voit que le Latency est causé par l’encodage. Mais ce Latency monstre n’est pas vécu si j’utilise une caméra USB. Les deux fournissent pourtant une sortie en MJpeg natif.

Mais mis a part ce lag énorme, surtout pour une caméra de surveillance, j’ai un nouveau problème qui est apparu; la coupure de la caméra.

Après un certains temps (entre 1 et 12 heures), le processus FFMpeg roule toujours mais la caméra émet plus aucun signal vidéo (écran noir), je dois fermer et relancer le stream pour retrouver une image, mais à chaque fois, le temps de vie de la session devient plus court, au point qu’il « plante » de plus en plus court. Ce qui abouti à un redémarrage du système pour retrouver un temps d’activité respectable.

Alors j’ai aussi testé avec une autre caméra Pi, sans Infra Rouge, pour savoir si ça marche mieux, mais c’est pire, déjà elle embarque qu’une fois sur deux, mais a les même performance, voir pire. Alors ce n’est pas le IR qui boit trop sur l’alimentation, et le type de caméra a l’air des problématique avec le RPi0.

Cette même caméra est sur un RPi 2B, et j’ai aucun lag, ni problème de plantage, alors le problème est vraiment du RPi 0.

J’ai testé avec un autre RPi0, même résultat, alors en effet, le RPi 0 est vraiment « Poche » pour gérer des caméra, pourtant j’ai Raspbian Lite sans rien d’autres, et j’ai que mis mon code et le FFMpeg 3.4 (requis par FFServer, sans passer par apt ) pour faire ce travail. Pas de GUI (le HDMI n’est pas connecté), pas de BT ou autres choses en USB.

Mais plus je passe du temps avec les RPi0, plus je me demande à quel type de projet je peut les utiliser.

SI ils ne sont pas assez robuste pour une caméra, qui sont trop lent pour un PiHole et affreux en affichage graphique (comme un desktop, même en mode Kiosk) alors a quoi peuvent-il servir ?

Dans mon cas, je fais pas de Domotique, je pilote rien depuis des RPi, j’ai pas d’automatisation. La plupart de mes projets consiste à créer des interface utilisateur via écran 3.5" ou des « clones » de produit, comme une caméra IP ou un NAS.

Sur le papier, il sont formidable; petit et avec un minimum de port, il sont pratique pour de petit projet comme caméra ou affichage de petite taille, dans les faits, la puissance étant affreuse, la seul chose logique semble la domotique, mais pourquoi que même sans tâche, le simple fait de ce connecter en SSH est 4 fois plus long que de le faire sur un RPi 2 ou 3 qui est travail plus intense ?

  • L’alimentation ? J’ai changer les câble USB et les chargeur, fournis du haut Ampérage (jusqu’à 5A); non, rien n’est mieux.
  • Carte SD ? J’ai des Kingston et des Sandisk, les Sandisk sont des 32GB qui sont très rapide avec mes autres RPi (non zéro). Petite taille (8GB), grande taille (64GB), rien n’y change, c’est lent.

Après, je ne peux rien retirer d’autres, non ?

Dans tout les projets que j’ai entrepris avec un RPi0, c’est catastrophique;

  • NASBOX : En boot tout marche, après un certains temps, les HDD en USB tombe un après l’autre, l’écran 3.5" perd en puissance et en réponse
  • DashCam : Impossible de faire des vidéo fluide, saut de frames importants, découpe irrégulière, aucune synchronisation du son possible. Décodage du son via un micro (mono) en GPIO est trop exigent pour lui.
  • piRateRadio (FM Broadcast) : Lag et plantage après plusieurs heures
  • retropie : Trop lent pour jouer, même au NES. Impossible de profiter du kit GamePI20, de plus, il perd le contrôle de certains touche quand il est allumé plus de 2 minutes, les reboot y change rien.
  • PiHole : Lenteur du réseau, temps de réponse affreux, Je me retrouve avec du 56K quand j’ai une connexion 50Mbps
  • Deskboard : Lenteur de l’affichage, lag dans toutes les actions, plantage des services en background et timeout éternel, capteur de température lent et lag sur la réponse (causant des erreurs de lecture de la sonde). Plantage du support BT et du mode audio BT après plusieurs heures, Reboot du service requis, si ce n’est pas de l’OS tout simplement.
  • Mode OTG : L’une des fonction intéressant du Raspberry Pi Zero, j’aurais pensé à une évolution du support pour en faciliter l’usage, mais au contraire, ont dirait que tout est fait pour compliquer les choses, depuis 1 an, je n’arrive plus a mettre un RPi0 en mode OTG. DU problème de pilote sous Windows au refus de démarrage du RPi ou du retour en mode normal et ignore le mode OTG, j’ai pourtant un adapteur pour faciliter la connexion et l’alimentation.
  • ModBros : Latency énorme, lag avec le temps, plante après un certains temps. Reboot fréquent et devient peux pratique

Alors, suis-je le seul à vivre ces problèmes avec le Raspberry Pi Zero (sans et avec le Wifi). J’utilise toujours Raspbian Lite, quand les image système ne sont pas disponible ou pour mes projets perso.

Les seuls projets qui ont aboutis est mon piAudioCast et le PCStat (lire depuis un serveur Web Windows un JSon pour en afficher les résultat sur l’écran du RPi). C’est pour ça que je tente plusieurs projets, car j’en commence un , tout a l’air de bien marcher, une fois en « production » tout plante.

Yo @levelKro
J’ai un Rpi Zero Wifi que j’utilise en surveillance vidéo.
RaspberryPiOS Lite,
Configuration d’un point d’accès,
Installation d’un serveur web et d’une galerie PHP
Script de photo toutes les X secondes/minutes
Ça me permet de faire des surveillances (je peux en faire des TimeLapses pour accélérer la vérification ultérieure)
ça fonctionne durant des séquences de 12h (jamais fait plus dernièrement).
J’ai testé aussi la prise de vidéo de 30 secondes puis pause puis … pour une « DashCam basique à la Nabla » = ça l’a fait cet été sur de petits trajets.
Mais oui, le 1 cœur (cœur de souris) rend l’appareil poussif (je fais tout en ssh).
Je trouve que MotionEye a de la latence avec toutes les caméras, mais c’est pire sur un Rpi même juste avec MotionEyeOS pour en faire une caméra IP.

Pas de souci pour un affichage dynamique avec juste RaspberryPiOS lite et un script avec OMXplayer (autrefois) ou CVLC (depuis Bullseye) pour juste faire tourner des vidéos en boucle.
(Jamais testé sur des journées complètes sur grand écran ; à essayer)

Bref, je te rejoins.
Un RpiZero de base = 5,22 euros quand je les ai acheté (avant la COVID) = sympa pour des tests.
Mais un Rpi3 ou 4 est tout de même plus confortable pour des projets.

P.S. : je n’ai jamais réussi à avoir un RpiZero2
P.S.2 : sur Rpi, je n’utilise que les caméras en CSI.

++

J’ai un RPi0 v2, il remplace un RPi0 v1 WH et tout mes problèmes sont réglé, vraiment c’est comme un RPi3 en plus petit, un beau résultat, j’ai rien à dire.

MotionEye, j’ai détesté, je tente toujours plus les images que de faire le setup moi même car justement je conçois que le Dev a optimisé l’image, et le résultat sera meilleur. Mais c’est d’une lenteur et d’un latency énorme, peux fiable et pas très stable sur le long terme.

Comme la, pour m’assurer un max de résultat, le server FFServer est sur un PC monté en serveur polyvalent. Je branche dessus plusieurs types de caméra, pour un total de 6, deux sont des caméras géré par un Raspberry, mais c’est les moins performantes.

En projet de Dashcam, j’avais mis a 15fps 720x480 sans encodage, qualité 0.75 avec des coupures aux 5 minutes. En final, j’avais des vidéo de 2minutes comme de 8 minutes. Le son, même avec des paramètres pour des frames sync avec priorité vidéo, j’avais aucune sync fiable avec plus de 10 secondes d’activité. Le démarrage, même en virant le réseau et un max de chose et sécurité, prenait 45 secondes au plus cours, pas du tout pratique en mode Dashcam régulier. Sous Raspberry Pi Zero 2; 15 secondes (respect).

J’ai déjà mis un desktop, mais je me suis vite demandé « Comment du monde peuvent utiliser ça ? C’est affreux! ». Mon Raspberry Pi 1 est plus fort dans bien des tâches.

En mode Kiosk Chrome c’est affreux, déjà que Chrome c’est pas fort sous RPi, avec un minimum ont dirait d’avoir de quoi qui sature le CPU. Pour du 1GHz 512Ram, … mis a part la compatibilité d’architecture, je me demande si Windows 95 arriverais à marcher. (lol)

Pour un test, j’ai essayé de passer mon Rpi0Wifi en desktop ; voir :

Je peux le dire : j’ai souffert !!!
Tout prend « des heures » (de longues minutes).
Et le démarrage en Desktop te laisse le temps de faire un AVC et de t’en remettre :sweat_smile:
Bref, je pense que PERSONNE n’utilise un Rpi0 en mode desktop !

Faudrait que je te partage mon « projet DashCam de bidouilleur » pour que tu les testes.
Mais c’est une fausse DashCam ; je l’allume avec une batterie de téléphone et je l’éteins à la main avec un bouton via GPIO :relaxed:
++