OpenCV错误:GStreamer无法启动管道

时间:2016-11-21 20:28:12

标签: c++ linux opencv gstreamer opencv3.0

我正在开发一个程序,它具有允许在qtwidgets中打开和预览视频的功能。我试图让它至少运行三天没有成功。我尝试使用Arch Linux和Windows的不同机器运行完美(我也尝试使用W10在同一台机器上运行正常)。我不想因此而安装其他操作系统。下面我附上了产生相同运行时错误的简单示例。

#include <opencv2/highgui/highgui.hpp>
int main()
{
    cv::VideoCapture("path_to_file_that_exists.mp4");
    return 0;
}

结果如下:

libva info: VA-API version 0.39.4
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
libva info: VA-API version 0.39.4
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
GStreamer Plugin: Embedded video playback halted; module qtdemux0 reported: Internal data stream error.
OpenCV Error: Unspecified error (GStreamer: unable to start pipeline
) in cvCaptureFromCAM_GStreamer, file /home/user/Documents/opencv-build/opencv-3.1.0/modules/videoio/src/cap_gstreamer.cpp, line 818
terminate called after throwing an instance of 'cv::Exception'
  what():  /home/user/Documents/opencv-build/opencv-3.1.0/modules/videoio/src/cap_gstreamer.cpp:818: error: (-2) GStreamer: unable to start pipeline
 in function cvCaptureFromCAM_GStreamer

Press <RETURN> to close this window...
  • OpenCV 3.1.0
  • GStreamer 1.10.1
  • Linux 4.8.0-1-amd64#1 SMP Debian 4.8.7-1(2016-11-13)x86_64 GNU / Linux

修改

我没有找到问题的确切答案。在使用来自源代码(版本1.4,1.6,1.8,1.10)的插件编译Gstreamer后,我遇到了与视频相同的问题(在几个版本中我没有遇到问题,因为我根本无法加载单帧视频)我决定将发行版改为我的旧发行版--Arch Linux,因为它没有这个问题(我真的不知道为什么)。

  • OpenCV 3.1.0
  • GStreamer 1.10.1
  • Linux 4.8.10-1-ARCH#1 SMP PREEMPT 11月21日星期一11:55:43 CET 2016 x86_64 GNU / Linux

0 个答案:

没有答案