GStreamer-CRITICAL **:gst_element_get_state:Opencv 中的断言“GST_IS_ELEMENT(元素)”失败错误

Posted

技术标签:

【中文标题】GStreamer-CRITICAL **:gst_element_get_state:Opencv 中的断言“GST_IS_ELEMENT(元素)”失败错误【英文标题】:GStreamer-CRITICAL **: gst_element_get_state: assertion 'GST_IS_ELEMENT (element)' failed error in Opencv 【发布时间】:2018-11-27 05:37:22 【问题描述】:

我试图在 Windows 上使用 Opencv 通过 GSTREAMER API 打开网络摄像头,但我得到了 运行时出现此错误

GStreamer-CRITICAL **:gst_element_get_state:断言“GST_IS_ELEMENT(元素)”失败 开放式简历 | GStreamer 警告:GStreamer:无法查询管道状态

下面是正在运行的代码

VideoCapture capture(0,CAP_GSTREAMER);

if (capture.isOpened()) 
    std::cout << "Camera 0 via " << capture.getBackendName() << " backend" << std::endl;
    std::cout << "Frame width: " << capture.get(CAP_PROP_FRAME_WIDTH) << std::endl;
    std::cout << "     height: " << capture.get(CAP_PROP_FRAME_HEIGHT) << std::endl;
    std::cout << "Capturing FPS: " << capture.get(CAP_PROP_FPS) << std::endl;

但是相机在使用 Gstreamer 命令时工作正常

gst-launch-1.0.exe -v ksvideosrc device-index=0 !自动视频接收器

我已经在启用 GStreamer 的情况下构建了 OpenCV4.0,这里究竟缺少什么元素,是否有解决方法?

【问题讨论】:

【参考方案1】:

试试下面的代码:

const char* pipeline= "ksvideosrc device-index=0 ! autovideoconvert ! appsink";

int cap_id = CAP_GSTREAMER;

VideoCapture cap( pipeline, cap_id);

【讨论】:

您能否编辑您的答案并说明为什么会有所帮助?

以上是关于GStreamer-CRITICAL **:gst_element_get_state:Opencv 中的断言“GST_IS_ELEMENT(元素)”失败错误的主要内容,如果未能解决你的问题,请参考以下文章

gstreamer的gst-inspect 和gst-launch

fatal error: gst/gst.h

广义后缀树(GST)算法的简介

使用 gstreamer 和 gst-launch 循环播放视频?

C# 查找成本,计算项目成本并包含 10% GST

使用 gst-launch 对录音添加延迟