加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 列出gstreamer 1.0中ksvideosrc可用于视频捕获的设备名称

发布时间:2020-12-16 07:12:25 所属栏目:百科 来源:网络整理
导读:我正在尝试使用c中的gstreamer 1.0查询 Windows上可用的视频捕获设备(网络摄像头)列表. 我使用ksvideosrc作为源,我能够捕获视频输入但我无法查询可用设备列表(及其上限). 在gstreamer 0.10上,通过GstPropertyProbe可以在gstreamer 1.0中去除它.文档建议使用G
我正在尝试使用c中的gstreamer 1.0查询 Windows上可用的视频捕获设备(网络摄像头)列表.

我使用ksvideosrc作为源,我能够捕获视频输入但我无法查询可用设备列表(及其上限).

在gstreamer 0.10上,通过GstPropertyProbe可以在gstreamer 1.0中去除它.文档建议使用GstDeviceMonitor.但我也没有运气.

有没有人成功获取设备名称列表?或者,您能否建议另一种检索可用设备名称及其上限的方法?

解决方法

虽然我还没弄清楚如何枚举设备名称,但我想出了一个解决方法,至少可以获得可用的ksvideosrc设备索引.下面是 Python中的代码,但是由于GObject内省绑定,你应该可以相当容易地将它移植到C.

from gi.repository import Gst


def get_ksvideosrc_device_indexes():
    device_index = 0
    video_src = Gst.ElementFactory.make('ksvideosrc')
    state_change_code = None

    while True:
        video_src.set_state(Gst.State.NULL)
        video_src.set_property('device-index',device_index)
        state_change_code = video_src.set_state(Gst.State.READY)
        if state_change_code != Gst.StateChangeReturn.SUCCESS:
            video_src.set_state(Gst.State.NULL)
            break
        device_index += 1
    return range(device_index)


if __name__ == '__main__':
    Gst.init()
    print get_ksvideosrc_device_indexes()

请注意,对于ksvideosrc,Windows上的GStreamer版本1.4.5.0的视频源device-name属性为None.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读