我拥有一个 avermedia volar HX USB 记忆棒,我想从复合输入中捕获,但我不能,因为我无法选择输入。我将 gstreamer 与 + python 一起使用,我想我需要使用 gsttuner 选择输入,但我没有使用 gstreamer 接口的经验。有人可以发布一个简单的例子吗?
谢谢!
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")
对于遇到此问题的任何人,自最初发布以来的一些内部 gstreamer 更改可能现在需要 gst.STATE_READY 而不是 STATE_PAUSED。把我绊倒了,因为我遇到的捕获设备似乎有一半默认为 PAL,我需要使用 GST_TUNER 接口来更改它。
上面显示的代码看起来基本正确,但它会在 v4l2 的岩石上挣扎。您获得的字符串将取决于您拥有的卡:
到目前为止,我在四张不同的卡片上遇到过:
另请注意,有些卡会有驱动程序谎言,因为芯片组有四个输入,驱动程序通常会报告四个,即使制造商只连接其中两个。