GStreamer-CRITICAL **: ошибка gst_element_get_state: утверждение 'GST_IS_ELEMENT (element)' в Opencv - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь открыть веб-камеру через GSTREAMER API с помощью Opencv в Windows, но получаю эту ошибку во время выполнения

GStreamer-CRITICAL **: gst_element_get_state: утверждение «GST_IS_ELEMENT (element)» не выполненоOpenCV |Предупреждение 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!autovideosink

Я собрал OpenCV4.0 с включенным GStreamer, что именно здесь отсутствует, и есть ли исправление для этого?

1 Ответ

0 голосов
/ 11 февраля 2019

Попробуйте следующий код:

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

int cap_id = CAP_GSTREAMER;

VideoCapture cap( pipeline, cap_id);
...