在opencv中打开文件(/home/vaibhav/opencv/modules/highgui/src/cap_ffmpeg_impl.hpp:553)时出错
我正在使用OpenCV显示视频 我的代码是在opencv中打开文件(/home/vaibhav/opencv/modules/highgui/src/cap_ffmpeg_impl.hpp:553)时出错,opencv,Opencv,我正在使用OpenCV显示视频 我的代码是 #include<opencv2/highgui.hpp> #include<cv.h> #include<opencv/cv.hpp> #include<opencv2/opencv.hpp> #include<cvaux.h> #include<cxcore.h> #include<stdio.h> #include<highgui.h> #includ
#include<opencv2/highgui.hpp>
#include<cv.h>
#include<opencv/cv.hpp>
#include<opencv2/opencv.hpp>
#include<cvaux.h>
#include<cxcore.h>
#include<stdio.h>
#include<highgui.h>
#include<stdlib.h>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
int main( int argc, char ** argv )
{
CvCapture* capture;
cvNamedWindow( "video", CV_WINDOW_AUTOSIZE );
capture = cvCreateFileCapture("/home/vaibhav/program/c/w.avi");
IplImage* frame;
while(1){
frame = cvQueryFrame( capture );
if( !frame ) break;
cvShowImage( "video", frame );
char c = cvWaitKey(33);
if( c == 27 ) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "Webcam" );
return 0; }
为了澄清这里的一些混乱: 该错误意味着它无法找到或打开您的视频文件。(未找到文件或编解码器不存在) “/home/vaibhav/opencv/modules/highgui/src/cap_ffmpeg_impl.hpp:553”只是引发错误的代码位置
(请不要使用已弃用的C-API,5年前停止开发,切换到C++)。所以,只要把视频放在一个地方,你不需要给出一个你目前正在做的很长的路径(只是为了看看你的程序可以工作)。例如,我把我的视频放在“源文件夹”外面,所以我只写
capture=cvCreateFileCapture(“video.avi”)代码>我也有同样的问题。非常烦人(opencv 2.4.9)。但对我有效的是传递绝对文件名(avi或mpeg),即整个路径
例如:
如果使用绝对路径,请在路径上添加双斜杠,如下所示
data = cv2.VideoCapture('C:\Data\MyVideo.mp4')
data.isOpened()
Out[11]:假
Out[13]:对
我也有同样的问题,我做了两件事(我在Windows 10上使用Python 2.7.9):
首先,将此文件夹添加到Path变量:
C:\opencv\sources\3rdparty\ffmpeg\
并且该文件必须具有正确的opencv版本。例如,对我来说是3.0.0,所以你需要自己更改它
接下来,确保在视频路径中添加额外的反斜杠:
video_capture = cv2.VideoCapture ('C:\Temp\\bouncingBall.avi')
Python有一些特殊字符,所以如果只有一个反斜杠,它将以不同的方式解释它,从而抛出一个错误。您可以在此处看到更多信息:
因此出现了双反斜杠
无论如何,希望这有帮助 在出现相同问题后,我又添加了一个标题,opencv/ml.h
,用于机器学习。使用此标头和路径变量C:\opencv\sources\3rdparty\ffmpeg\
您的代码可以在我的机器上运行 我面临同样的问题,但问题是我使用了错误的解决方案
改变
rtsp://admin:admin@192.168.1.58:554/h264/video.sdp?camera=13
默认情况下解决了它。(不显示分辨率参数)
顺便说一句:EVO-05迷你版我只是在整个视频路径中使用了双引号,而不是单引号,这对我很有效!(在windows上)我该怎么办请告诉我代码在skm PC中工作正常my有什么问题我遇到了相同的错误-尽管我的原因可能是不同的问题,但由于这个问题一直没有得到解决,我已经将这个澄清降级了,因为它没有帮助。问题的作者如果在Ubuntu上,并且已经通过了完整路径,所以答案似乎不适合他的问题。我正在使用Windows 7 64位和Visual Studio 2013。这个答案解决了我的问题。谢谢这可能是Windows的解决方案,但不是Linux,在Linux中,斜杠通常用于所有路径
data = cv2.VideoCapture('C:\\\Data\\\MyVideo.mp4')
data.isOpened()
video_capture = cv2.VideoCapture ('C:\Temp\\bouncingBall.avi')
rtsp://admin:admin@192.168.1.58:554/h264/video.sdp?camera=13
rtsp://admin:admin@192.168.1.58:554/h264/video.sdp