如何用GStreamer从USB视频采集和DVB设备获取视频?

1 投票
3 回答
1696 浏览
提问于 2025-04-15 13:37

我有一个Avermedia Volar HX的USB设备,我想从复合输入(就是那种红、白、黄的插头)捕捉视频,但我无法选择输入源。我正在用GStreamer和Python来操作,但我对GStreamer的接口没有经验。有没有人能给我一个简单的例子?

谢谢!

3 个回答

0

上面的代码看起来基本上是对的,但在处理v4l2的时候可能会遇到问题。你得到的字符串会根据你使用的设备不同而有所变化:

到目前为止,我在四种不同的设备上遇到过:

  • "Composite"
  • "Composite1"
  • "composite"
  • "Composite Video Input"

另外要注意,有些设备的驱动程序可能会给你错误的信息,因为虽然芯片组有四个输入,但驱动程序通常会报告四个输入,即使制造商只连接了其中两个。

1

如果你看到这个,有些内部的gstreamer变化可能让你现在需要用gst.STATE_READY,而不是之前的STATE_PAUSED。这让我有点困惑,因为我发现我遇到的一半捕捉设备默认都是PAL格式,而我需要使用GST_TUNER接口来进行更改。

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")

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答