Publié le 18 mars 2014 - par

Un nouveau mode Vidéo rapide pour la caméra du Raspberry Pi

camerapi_250pxLa Fondation Raspberry Pi vient d’annoncer la disponibilité d’un nouveau mode de fonctionnement pour le module caméra Pi.

Celui-ci va permettre l’enregistrement de vidéos à 90 frames par seconde, ce qui devrait intéresser les utilisateurs de la caméra. C’est James H qui a publié cet article sur le site de la fondation. Je vous propose la traduction de cette annonce.

==== Traduction de l’article New Camera mode released ====

Remarque à l’attention de Liz UPTON (webmaster du site) : vous remarquerez qu’il n’y a ni photo ni vidéo dans cet article. C’est parce que nous aimerions que vous les fassiez pour nous, en utilisant le nouveau mode disponible pour la caméra. Filmez une vidéo en 90 fps en utilisant le module caméra et les informations ci-dessous, ralentissez-le à 30 fps et envoyez-nous un lien : si votre vidéo est particulièrement réussie, nous la ferons figurer ici et sur ​​la première page.

Lorsque l’appareil photo du Raspberry Pi est sorti, les plus attentifs d’entre vous ont remarqué que la caméra elle-même pouvait supporter différents modes utilisant des taux de rafraîchissement élevés, mais que le logiciel ne pouvait «seulement» gérer que 30 images par seconde en mode vidéo haute définition.

Il n’y a pas de limitation matérielle dans le Raspberry Pi lui-même. Il est tout à fait capable de gérer ces taux de rafraîchissement élevés, mais il restait un effort de développement à réaliser pour travailler sur ces nouveaux «modes» à l’intérieur du logiciel de la caméra. A l’origine, deux modes sont proposés : un mode de capture des images fixes qui offre la pleine résolution du capteur (2592 × 1944), et un mode vidéo 1080p (1920x1080p). Les mêmes observateurs attentifs verront que ces modes ont des proportions – le rapport de la largeur à la hauteur –  4:3 pour les images (comme le film 35 mm), 16:9 pour la vidéo (écran large).

Caméra du Raspberry Pi - Photo framboise314

Caméra du Raspberry Pi – Photo framboise314

Cela crée un problème lors de la prévisualisation pour la capture d’images fixes, puisque l’aperçu utilise le mode vidéo et peut fonctionner à 30 images par seconde (fps) – non seulement l’aspect de l’aperçu est différent, mais parce que le mode vidéo «rogne» l’image du capteur (c’est à dire prend une fenêtres au centre de 1920x1080px), le champ de vision en mode de prévisualisation est très différent de la capture réelle.

Il y a eu du boulot à faire pour développer de nouveaux modes utilisant des cadences élevées, et également rectifier le mode de prévisualisation des images fixes de sorte qu’il  corresponde à ce qui serait réellement capturé.

Enfin, quelques personnes chez Broadcom, avec l’aide d’Omnivision, le fabricant du capteur, ont trouvé un peu de temps pour finaliser ces modes, et pas seulement cela, puisque pendant qu’ils y étaient, ils ont rajouté quelques bonus ! (Remarque de Liz : La Fondation Raspberry Pi ne fait pas partie de Broadcom – nous ne sommes qu’un de leurs clients – mais nous avons une bonne relation et la Fondation est vraiment reconnaissante pour l’aide bénévole que certaines des personnes chez Broadcom nous offrent de temps en temps :  merci les gars !).

Le résultat est que nous avons maintenant les modes suivants disponibles :

  • 2592×1944 : 1 à 15 fps, vidéo ou photo, capteur complet et plein champ de vision, capture des images fixes par défaut
  • 1920×1080 : 1 à 30 fps, mode vidéo, 1080p30 recadré
  • 1296×972 : 1 à 42 fps, mode vidéo, format 4:3 binned, plein champ de vision. Utilisé pour prévisualiser les images fixes dans raspistill
  • 1296×730 : 1 à 49 fps, mode vidéo, format 16:9, binned, plein champ de vision (largeur), utilisé pour le 720p
  • 640×480 : 42.1 à 60 fps, mode vidéo, jusqu’à VGAp60 binned
  • 640×480  : 60,1 à 90 fps, mode vidéo, jusqu’à VGAp90 binned

J’ai introduit un nouveau mot dans la liste. Binned (condensé?). C’est ainsi que nous pouvons obtenir des cadences élevées. Le binning consiste en la combinaison de pixels du capteur dans un ‘bin‘ (boîte, coffre) dans le domaine analogique. En plus de réduire la quantité de données, cette opération peut également améliorer les performances en faible luminosité car elle moyenne le bruit du capteur en l’absence de bruit de quantification introduit par le convertisseurs analogique-numérique (ADC) (Ce sont les circuits électroniques dans le capteur qui convertissent l’information analogique, créée par les photons reçus, en valeurs numériques ).

Donc, si nous faisons un ‘bin‘ 2 × 2 sur le capteur, il envoie seulement un quart (2 × 2 = 4 = un quart !) de la quantité de données par trame au Raspberry Pi. Cela signifie que nous pouvons quadrupler (environ – il ya d’autres choses qui entrent en jeu), le nombre d’image (frame rate) pour la même quantité de données! Donc un simple bin 2×2 signifie théoriquement un quadruplement du nombre d’images, mais en diminuant de moitié la résolution X et Y. C’est ainsi que le mode 1296×972 fonctionne – c’est exactement un mode bin 2×2, il est donc toujours en proportion 4:3, utilise l’ensemble du capteur, et permet un mode de prévisualisation parfait pour les images fixes.

Nous avons également un mode très similaire, qui est le 1296×730. Il est utilisé pour l’enregistrement vidéo en 720p (l’image du capteur est mise à l’échelle par le GPU en 1280×720). Il s’agit d’un mode ‘bin‘ 2×2 avec une découpe (crop) supplémentaire, ce qui signifie également un nombre d’images (frame rate) légèrement augmenté car il y a moins de données à transférer.

Maintenant en réduisant encore plus la résolution de sortie par le capteur et en ‘sautant’ des pixels en combinaison avec le binning, nous pouvons obtenir des frame rate encore plus élevés, et c’est ainsi que la plus grande vitesse du mode VGA 640×480 fonctionne. Le mode le plus rapide est maintenant en résolution VGA à 90 images par seconde – trois fois le taux du 1080p30.

Alors, comment pouvons-nous utiliser ces nouveaux modes ?

Les applications de démonstration raspistill et raspivid travaillent déjà avec ces nouveaux modes. Vous pouvez spécifier la résolution dont vous avez besoin et la fréquence d’image, et le mode correct sera choisi. Il faudra installer la dernière version du firmware du GPU qui contient ces nouveaux modes en faisant

sudo rpi-update

Une chose à noter : le système essayera toujours de fonctionner au frame rate spécifié, en priorité sur la résolution. Par conséquent, si vous spécifiez une fréquence d’image élevée à une résolution qu’il ne peut pas gérer, il utilisera un mode basse résolution pour atteindre le nombre d’images et redimensionnera l’image pour l’amener à la taille demandée – cet ‘upscaling‘ est rarement joli à regarder. Il peut aussi être trop rapide pour l’encodeur vidéo, de sorte que certaines images peuvent être ignorés. Il faut donc toujours veiller à ce que la résolution que vous spécifiez permette d’atteindre le nombre d’images par secondes requis, pour obtenir les meilleurs résultats .

Voici donc un petit exemple, pour enregistrer un clip de 10s en VGA à 90fps

raspistill -w 640 – h 480 – fps 90 – 10000- t o test90fps.h264

Note du traducteur : je vous propose cette version corrigée :

raspivid -w 640 -h 480 -fps 90 -t 10000 -o test90fps.h264

Il y a également eu des changements mineurs du pilote v4L2 pour soutenir ces nouveaux modes. Ceux-ci devraient être inclus quand vous faites la mise à jour avec rpi-update pour obtenir le nouveau firmware du GPU.

Le pilote V4L2 supporte les nouveaux modes également. Tout en utilisant les requêtes normales, vous pouvez maintenant demander jusqu’à 90 fps. Donc, faire la même chose en streaming VGA à 90 fps vers H264 nécessiterait les commandes v4l2-ctl suivantes :

v4l2-ctl -p 90
v4l2-ctl -v width=640,height=480,pixelformat=H264
v4l2-ctl --stream-mmap=3 --stream-count=900 --stream-to=test90fps.h264

Il y a quelques conditions que vous devrez prendre en considération lors de l’utilisation des modes plus rapides, en particulier avec le pilote v4L.

  • Ils vont augmenter la charge sur le processeur ARM de façon assez importante car il y aura plus de sollicitations (callbacks) par seconde. Cela peut avoir des effets imprévisibles sur les applications V4L en sorte qu’elles pourraient ne pas être en mesure de suivre.
  • Le codec MJPEG ne fonctionne pas au-dessus du 720P40 – il va commencer à perdre des images, et surtout vers 45 fps, il peut planter sévèrement. Vous aurez été prévenu(e)s.
  • Le H264 fonctionne sans souci jusque 720P49, ou VGA @ 90fps

Cela dit, la plupart des gens ne devraient avoir aucun problème avec ces nouvelles fonctionnalités. Un grand merci à Dave Stevenson et Naush Patuck de Broadcom pour avoir trouvé le temps de les réaliser ! Merci également à Omnivision pour leur soutien permanent.

=========== Vidéo ==================================

La demande de James a été entendue puisque des vidéos sont disponibles :

Ces vidéos enregistrées à 90 fps et diffusées en 30 fps montre bien le ralenti ainsi obtenu.

Conclusion :

Une nouvelle avancée dans le logiciel, comme la Fondation l’avait annoncé. Je n’ai eu le temps de tester que la capture vidéo, si vous testez les autres modes et le V4L, faites en part dans les commentaires.

Share Button

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. .

20 réflexions au sujet de « Un nouveau mode Vidéo rapide pour la caméra du Raspberry Pi »

  1. Ping : Un nouveau mode Vidéo rapide pour la cam...

  2. Ping : Un nouveau mode Vidéo rapide pour la cam...

  3. Samy

    Bonjour
    j’ai vu votre site web très interressant je suis entrain de réaliser un projet et j’ai du mal je voudrai pouvoir réaliser un programme en C ou C++ qui pourra faire en sorte de prendre une photo avant et après un mouvement , j’ai bien tout ce qui faut mais je ne sais pas comment réaliser le montage ou encore au niveau du programme , si vous pourriez m’aider sa serait super sympa merci d’avance

    Répondre
    1. admin Auteur de l’article

      Bonjour Samy
      Pour le montage vous pouvez utiliser la caméra Pi ou une caméra USB (attention il faut qu’elle soit dans la liste de compatibilité du RasPi!).
      Voyez PiCamera je pense que ça devrait répondre à vos besoins si vous partez sur une camera PI. C’est en Python mais toutes les fonctionnalités sont accessibles par programme.
      Regardez déjà tout ça avant de démarrer et… à bientôt pour la suite?
      Cordialement
      François
      Pas sûr que vous trouviez un équivalent en C.

      Répondre
  4. Samy

    Bonjour
    Francois encore merci pour votre réponse , je voulais savoir si c’était possible de le faire sinon en C++ ? et si c’est possible de m’aider a le réaliser et je voudrai un montage si possible avec le capteur de mouvement et la raspberry pi ,
    merci encore j’attend votre réponse

    Répondre
  5. Syl20

    Bonjour,
    Question idiote… Comment fait-on pour passer de 90fps à 30fps?
    Merci d’avance car je suis très intéressé pour m’amuser à faire du slow motion.
    Cordialement, Syl20.

    Répondre
    1. admin Auteur de l’article

      Bonjour Syl20
      Il n’y a pas de question idiote…
      Vous filmez en 90fps et a la relecture, le film passe en 30fps
      ce qui crée automatiquement un ralenti de 3x
      Cordialement
      François

      Répondre
      1. Syl20

        Effectivement c’était si évident!
        Merci beaucoup ça fonctionne nickel!
        Je vais m’amuser bientôt avec un ballon rempli d’eau que je percerai et voir ce que ça donne…
        Et au fait… Super site!

        Répondre
  6. thierry

    Bonjour,

    est-il possible d’incruster la date ( du style 22/07/2014 15h30 ou autres formats) sur les vidéos et photos prises par cette caméra ?

    merci

    Répondre
  7. Patrick

    Bonjour, et merci, c’est une mine d’or votre site.
    Un test: répondez sans réflèchir… la première intuition étant souvent la meilleure.
    Pour embarquer Un Pi at sa caméra sur un drone, quelle solution vous vient à l’esprit pour renvoyer l’image au sol: Module Xbee ? ou wifi (portée 200 metres serait nécéssaire) ou embarquer un Smarthphone ? … et si vous avez en tete une docum
    entaztion précise sur ce sujet, je prend tout.

    Merci d’avance.

    Patrick

    Répondre
  8. Robert

    Bonjour,
    Merci pour pour cet article très interessant !
    J’aimerai savoir s’il est possible de se servir du capteur comme d’un capteur « linescan » , c’est a dire lire une seule ligne verticale de pixels à la frequence la plus rapide possible ?
    Ceci dans le but de réaliser un scanner …
    Merci d’avance !
    Robert

    Répondre
  9. olfa

    Salut, svp je suis en train de réaliser un projet domotique , j’ai besoin de connaitre comment je peux enregistrer une image à partir d’une vidéo (je travaille avec la webcam) lors de la détection du mouvement dans la maison!!!?
    Je commande la maison avec une page web, comment je peux intégrer ma vidéo de surveillance dans mon interface graphique!?

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour
      regardez du côté de « motion » ?
      vous devriez poser ces questions sur le forum qui est plus fréquenté que cette page…
      Cordialement
      François

      Répondre
  10. Jeremy Benoit

    est-il possible de faire en sorte de record a 30 / 60 fps en 720p et de voir ce que l’on filme en direct sur le raspberry pi ?

    Répondre
  11. Frane

    bonjour , je suis sur un projet avec la RASPCAM , j’ai réussis à faire fonctionné en mode photo par contre j’arrive pas en mode vidéo . y’a t-il des tutoriels ? Et j’aimerais savoir s’il est possible de faire le démarrage de la camera sur l’interface graphique, comme une application ? ou on est obligé de le faire en ligne de commande .

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour
      si raspistill fonctionne c’est que ça fonctionne 🙂
      quand vous dites je n’arrive pas en mode vidéo… ça donne peu d’infos sur ce qui se passe ????
      – vous ne savez pas comment faire ?
      – ça ne fonctionne pas ?
      Que se passe -t-il?
      – Avez vous un/des messages d’erreur ?
      – Quelle commande tapez vous ???
      sans infos difficile de vous aider
      voyez http://www.magdiblog.fr/domotique/kerberos-io-la-videosurveillance-pour-raspberry-pi/ ça pourra peut être vous aider ?
      cordialement
      François

      Répondre
      1. François MOCQ Auteur de l’article

        j avais oublié de répondre à la question sur le lancement. L interface caméra est rustique. L’image générée par le GPU vient simplement écraser le texte de la console. Pas possible d’intégrer une video venant directement de la caméra dans une fenêtre, à moins d’écrire un prog qui redimensionne l’image et gère les déplacements de la fenêtre ;). Pour le lancement c’est pareil… rustique mais efficace
        voyez : http://picamera.readthedocs.io/en/release-1.10/faq.html
        cordialement
        François

        Répondre
  12. Tourbez Hervé

    Bonjour François,
    J’ai reçu ce matin une raspicam V2.1. Connectée à ma raspberrypi 3 les 1ers tests de captures d’image effectués à l’aide raspistill sont plutôt décevants, quant à la netteté!
    Je viens de lire ton post relatif à ce sujet et à l’essai d’amélioration de la focalisation…
    C’est quand même bien dommage que ce produit soit affecté d’un tel défaut en sortie de fabrication.
    Compte-tenu de la petitesse de « l’objectif » (si on peut utiliser un tel qualificatif en pareil cas), je ne me suis pas risqué à bidouiller la chose!
    Verdict: ne correspond pas à mon attente et donc retour…
    Dommage, à la lecture des données sur le net, ça paraissait séduisant.
    As-tu pu tester d’autres modèles, muni d’un objectif digne de ce nom?
    Hervé

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Hervé
      si si ça se règle bien je pense que par défaut ils règlent sur une courte distance

      sinon il y a les cameras Arducam
      je n’ai pas testé leur version 2 mais la 5Mpx était de bonne qualité
      il y a une monture CS et elle reçoit des objectifs de caméra de surveillance
      les zooms ne sont pas terribles mais les autres objectifs ça peut aller
      le lien est sur cette pas http://www.framboise314.fr/tests/
      elles sont vendues par UCtronics
      cordialement
      François

      Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP * Time limit is exhausted. Please reload CAPTCHA.