我正在使用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>
#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; }
程序编译但尝试运行时会出错
我正在使用Ubuntu 12.04和Eclipse
warning: Error opening file (/home/vaibhav/opencv/modules/highgui/src/cap_ffmpeg_impl.hpp:553)
答案 0 :(得分:12)
在这里澄清一些困惑:
错误表示无法找到或打开视频文件。 (找不到文件,或者编解码器不存在)
“/ home / vaibhav / opencv / modules / highgui / src / cap_ffmpeg_impl.hpp:553”只是代码的位置,引发错误。
(请不要再使用已弃用的c-api,他们就像5年前一样停止开发它,切换到c ++版本。)
答案 1 :(得分:2)
如果使用绝对路径,请在路径中添加双斜杠,如下所示。
data = cv2.VideoCapture('C:\Data\MyVideo.mp4')
data.isOpened()
Out [11]:False
data = cv2.VideoCapture('C:\\\Data\\\MyVideo.mp4')
data.isOpened()
Out [13]:True
答案 2 :(得分:1)
我遇到了同样的问题。非常讨厌(opencv 2.4.9)。但对我有用的是传递绝对文件名(avi或mpeg),即整个路径。
E.g:
char* fileName = "D:/myVideos/video.avi"
...
VideoCapture capture(fileName );
答案 3 :(得分:1)
我遇到了同样的问题,我做了两件事(我在Windows 10上使用的是Python 2.7.9):
首先,将此文件夹添加到Path变量中:
C:\的OpenCV \源\的3rdParty \ FFMPEG \
此文件opencv_ffmpeg300.dll
必须具有正确的OpenCV版本。例如,对我来说它是3.0.0,所以你需要自己改变它。
接下来,请务必在视频路径中添加额外的反斜杠:
video_capture = cv2.VideoCapture ('C:\Temp\\bouncingBall.avi')
Python有一些特殊的字符,所以如果只有一个反斜杠,它会以不同的方式解释它,从而引发错误。你可以在这里看到更多:
因此双反斜杠。
无论如何,希望这有帮助!
答案 4 :(得分:1)
在遇到同样的问题之后,我又添加了一个标题opencv/ml.h
,用于机器学习。使用此标头和Path变量C:\opencv\sources\3rdparty\ffmpeg\
,您的代码可在我的计算机上运行。
答案 5 :(得分:0)
如果文件夹中没有视频,我也会遇到同样的错误。所以,只需将视频放在一个你不需要提供当前正在做的长路径的地方(只是为了看你的程序可以工作)。例如,我将视频放在“源文件夹”之外,所以我只写capture = cvCreateFileCapture("video.avi");
答案 6 :(得分:0)
我面临着同样的问题,但是问题是我使用了错误的分辨率。
更改
rtsp://admin:admin@192.168.1.58:554/h264/video.sdp?camera=13
默认解决。 (未指示分辨率参数)
rtsp://admin:admin@192.168.1.58:554/h264/video.sdp
BTW设备:EVO-05 Mini
答案 7 :(得分:0)
在整个视频路径中,我只是使用双引号而不是单引号,所以它对我有用! (在Windows上)