Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenCV C++;-无法显示视频_C++_Opencv_Debian Buster - Fatal编程技术网

C++ OpenCV C++;-无法显示视频

C++ OpenCV C++;-无法显示视频,c++,opencv,debian-buster,C++,Opencv,Debian Buster,Linux Debian 10+OpenCV 320 播放视频的非常基本的示例,但应用程序很快就会结束,不会打开新窗口,也不会出现错误 我的测试使用相同的视频,但类型不同:mp4和webm。视频由VLC和其他视频播放器正确显示 #include <stdio.h> #include <opencv2/opencv.hpp> #include <opencv2/highgui.hpp> using namespace cv; int main(int arg

Linux Debian 10+OpenCV 320

播放视频的非常基本的示例,但应用程序很快就会结束,不会打开新窗口,也不会出现错误

我的测试使用相同的视频,但类型不同:mp4和webm。视频由VLC和其他视频播放器正确显示

#include <stdio.h>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui.hpp>

using namespace cv;

int main(int argc, char** argv )
{
    // check
    if ( argc != 2 )
    {
        printf("usage: %s <Video_Path>\n", argv[0]);
        return -1;
    }
    printf("Video: %s\n", argv[1]);

    // load video
    VideoCapture cap ( argv[1]);
    if (!cap.isOpened()){
        printf("Error opening video\n");
    }

    Mat frame;
    while(1){
        // cap.read(frame);
        cap >> frame;
          if (frame.empty()){
              printf(".. frame err\n");
              return -1;
          }
        imshow("Live", frame);
        if (waitKey(5)>=0) break;
    }
    printf("end\n");
    return 0;
}

我解决了对char的铸造问题:

if ((char)(waitKey(1))>=0){

我解决了对char的铸造问题:

if ((char)(waitKey(1))>=0){

你能尝试一下视频捕捉吗?像VideoCapture(“ur/video/directory/…webm”),它是如何在循环时中断的?你用键盘吗?还是程序自己运行?我运行程序,过了一段时间它就结束了(比方说不到一秒钟);我不使用键盘。如您所见,未报告任何错误。。我不明白它是如何以及何时退出循环的。请尝试我建议的代码,并在videocapture.videocapture之前删除代码(“/home/stefano/Scrivania/Progetti/visione/showVideo/20200313_152914.webm”);如果这就是你的意思,那么结果是一样的。与相机样本相同。现在我在if(waitKey){..}中放了一个printf(),我发现它是打印的,所以条件为true,然后退出。你能尝试一下视频捕获吗?像VideoCapture(“ur/video/directory/…webm”),它是如何在循环时中断的?你用键盘吗?还是程序自己运行?我运行程序,过了一段时间它就结束了(比方说不到一秒钟);我不使用键盘。如您所见,未报告任何错误。。我不明白它是如何以及何时退出循环的。请尝试我建议的代码,并在videocapture.videocapture之前删除代码(“/home/stefano/Scrivania/Progetti/visione/showVideo/20200313_152914.webm”);如果这就是你的意思,那么结果是一样的。与相机样本相同。现在我将printf()放在if(waitKey){..}中,发现它已打印,因此条件为true,然后退出。