2009-08-16 8 views
1

Je possède une clé USB avermedia volar HX, je veux capturer à partir de l'entrée composite, mais je ne peux pas parce que je suis incapable de sélectionner l'entrée. J'utilise gstreamer avec + python, je pense que je dois utiliser l'entrée select de gsttuner mais je n'ai aucune expérience en utilisant les interfaces de gstreamer. Quelqu'un pourrait-il poster un exemple simple?comment puis-je récupérer de la vidéo à partir de la capture vidéo USB + appareil DVB avec Gstreamer?

Merci!

Répondre

1
src = gst.element_factory_make("v4l2src", "src") 
src.set_state(gst.STATE_PAUSED) 
try: 
    # channel names will be different for each device 
    channels = src.list_channels() 
    composite = [x for x in channels if x.label == "Composite1"] 
    if composite: 
     self.src.set_channel(composite[0]) 
except AttributeError, e: 
    log.warn("Could not tune video source\n") 
0

Le code ci-dessus semble fondamentalement correct, mais il va patauger sur les roches de v4l2. Les chaînes que vous obtenez dépendra de quelle carte vous avez:

Sur quatre cartes différentes à ce jour que j'ai rencontré:

  • "Composite"
  • "Composite1"
  • "composite"
  • « entrée vidéo composite »

Il faut aussi savoir que certaines cartes auront le mensonge du conducteur, puisque le jeu de puces a quatre entrées, le DRIV Il en rapportera souvent quatre, même si le fabricant ne se connecte qu'à deux d'entre eux.

1

Pour quiconque trébucherait sur ce point, certaines modifications internes de gstreamer depuis sa publication initiale peuvent nécessiter maintenant gst.STATE_READY au lieu de STATE_PAUSED. M'a fait trébucher car il semble que la moitié des périphériques de capture que je rencontre par défaut à PAL et j'ai besoin d'utiliser l'interface GST_TUNER pour le changer.

Questions connexes