Puis-je utiliser un caméscope en tant que V4L2src dans gstreamer? Puis-je simplement utiliser un caméscope comme webcam sous Linux? Si oui, quels modèles sont arborés? Merci d'avance.
Puis-je utiliser un caméscope en tant que V4L2src dans gstreamer? Puis-je simplement utiliser un caméscope comme webcam sous Linux? Si oui, quels modèles sont arborés? Merci d'avance.
Réponses:
il y a quelques API d'acquisition vidéo différentes, notablement
En fonction de la saveur de votre "caméscope", vous pouvez en utiliser un (ou certains, voire aucun).
depuis des lustres, tout caméscope décent est livré avec une anlog out (par exemple, "composite").
pour pouvoir l'utiliser sur n'importe quel ordinateur, vous devez d'abord numériser le signal, ce qui se fait généralement via une carte d'acquisition d'images dans l'ordinateur.
Les cartes PCI (e) basées sur les cartes connectées bttv (bt878) sont très bien supportées sur Linux (d'autres le sont probablement, mais je ne les ai jamais utilisées), et d'après mon expérience, c'est toujours la voie à suivre si vous avez besoin d'une faible latence , mais malheureusement ces cartes deviennent rares.
ces cartes sont généralement couvertes par la v4l2-API, donc v4l2src
fonctionnera bien.
v4l2src ! ...
Des cartes d'acquisition analog2usb et analog2dv externes sont sur le marché, voir ci-dessous.
c’est là que toutes les webcams entrent en jeu, probablement des périphériques externes analog2usb, peut-être des "caméscopes". si votre appareil est pris en charge dépend des chipsets utilisés. si ça est supportés, ils utiliseront généralement la v4l2-API, ce qui fonctionnera à nouveau:
v4l2src ! ...
ces périphériques ne sont pas couverts par v4l2, mais il existe une API distincte. un flux DV contient à la fois de l'audio et de la vidéo. Pour obtenir une image, vous devez d'abord saisir le flux DV, puis séparer les deux flux (audio et vidéo) (alias "démultiplexer / démultipler"), puis les décoder. le flux vidéo résultant. quelque chose comme ceci devrait faire:
dv1394src ! dvdemux ! dvdec ! ...
si vous obtenez un flux HDV (qui est vraiment un flux MPEG-TS sur ieee1394), il existe un hdv1394src
objet:
hdv1394src ! decodebin ! ...
Les caméras industrielles Firewire (principalement utilisées pour la reconnaissance d’image et similaires; il n’existe pas de "caméscope" sur le marché utilisant ce protocole, je ne l’ajoute donc que par souci d’exhaustivité) utilisaient un protocole appelé "IIDC".
pour l'utiliser avec gstreamer, faites simplement:
dc1394src ! ...
la plupart des autres protocoles que vous trouverez là-bas (par exemple, GigE
) sont des procolls propriétaires de qualité industrielle (et n'offrent pas de matériel "caméscope")