Comment utiliser une handycam en tant que Web Cam sous Linux
2
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.
qu'est-ce qu'un "caméscope"? la question est un peu comme "puis-je utiliser des disques durs" avec mon ordinateur portable, et la réponse est "bien sûr que vous pouvez" jusqu'à ce que vous remarquiez que votre disque dur donné est un disque SCSI et que votre ordinateur portable ne comporte que des prises S-ATA, alors fait, vous ne pouvez pas utiliser ce disque dur particulier sur cette machine particulière ...
umläute
Réponses:
4
il y a quelques API d'acquisition vidéo différentes, notablement
v4l2 (c'est l'api vidéo général sur linux; il couvre presque tout sauf les deux suivants)
iidc (protocole industriel "vidéo sur ieee1394", généralement introuvable dans le matériel grand public)
dv (c'est le "signal A / V sur IEEE 1394" que vous trouvez habituellement dans les "caméscopes Firewire" grand public; c'est probablement ce que vous entendez par "caméscope"
En fonction de la saveur de votre "caméscope", vous pouvez en utiliser un (ou certains, voire aucun).
sortie analogique
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.
sortie numérique (USB)
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 ! ...
sortie numérique (DV / HDV)
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 ! ...
sortie numérique (IIDC)
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 ! ...
autres
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")
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).
sortie analogique
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.Des cartes d'acquisition analog2usb et analog2dv externes sont sur le marché, voir ci-dessous.
sortie numérique (USB)
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:
sortie numérique (DV / HDV)
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:
si vous obtenez un flux HDV (qui est vraiment un flux MPEG-TS sur ieee1394), il existe un
hdv1394src
objet:sortie numérique (IIDC)
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:
autres
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")la source