C++ OpenCV C++;-无法显示视频
Linux Debian 10+OpenCV 320 播放视频的非常基本的示例,但应用程序很快就会结束,不会打开新窗口,也不会出现错误 我的测试使用相同的视频,但类型不同:mp4和webm。视频由VLC和其他视频播放器正确显示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
#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,然后退出。