Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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
OpenCV显示I420中编码的avi文件 我试图在Windows 7上使用VisualC++ 2010 Express使用OpenCV2.4.2编写视频处理应用程序,但是我在显示某些AVI文件方面遇到了麻烦。大多数都显示正确,但当我使用以I420格式编码的AVI文件时,我得到的只是一个带条纹的粉红色图像,它在常规媒体播放器中正确显示每一帧_C++_Video_Opencv_Avi - Fatal编程技术网

OpenCV显示I420中编码的avi文件 我试图在Windows 7上使用VisualC++ 2010 Express使用OpenCV2.4.2编写视频处理应用程序,但是我在显示某些AVI文件方面遇到了麻烦。大多数都显示正确,但当我使用以I420格式编码的AVI文件时,我得到的只是一个带条纹的粉红色图像,它在常规媒体播放器中正确显示每一帧

OpenCV显示I420中编码的avi文件 我试图在Windows 7上使用VisualC++ 2010 Express使用OpenCV2.4.2编写视频处理应用程序,但是我在显示某些AVI文件方面遇到了麻烦。大多数都显示正确,但当我使用以I420格式编码的AVI文件时,我得到的只是一个带条纹的粉红色图像,它在常规媒体播放器中正确显示每一帧,c++,video,opencv,avi,C++,Video,Opencv,Avi,显示的输出: 目前,我使用C++ API,但是当我使用这个页面的C API代码时,同样的事情发生了。我觉得这很奇怪,因为在这个网站上的大多数答案和网络资源中,他们明确建议使用I420编码。有没有人知道是什么原因造成的,或者如何修复 下面是我正在使用的代码的精简版本: int main(int argc, char** argv){ string fname = "test.avi"; VideoCapture capture(fname); if(!capture.isOpened()){

显示的输出:

目前,我使用C++ API,但是当我使用这个页面的C API代码时,同样的事情发生了。我觉得这很奇怪,因为在这个网站上的大多数答案和网络资源中,他们明确建议使用I420编码。有没有人知道是什么原因造成的,或者如何修复

下面是我正在使用的代码的精简版本:

int main(int argc, char** argv){
string fname = "test.avi";
VideoCapture capture(fname);
if(!capture.isOpened()){
    cerr << "error opening " << fname << endl;
    return -1;
}

Mat frame;
namedWindow("output");
double rate = capture.get(CV_CAP_PROP_FPS);
int delay = 1000/rate;
while(true){
    if(!capture.read(frame)) break;
    cv::imshow("output", frame);
    if(waitKey(delay) >= 0) break;
}
capture.release();

return 0;
}

我使用的是OpenCV的预编译版本,如果这有区别的话http://sourceforge.net/projects/opencvlibrary/.

好的,所以我设法在另外几台计算机上进行了测试。一个刚刚崩溃,另一个视频播放得很好。事实证明,在默认OpenCV编译中启用FFMPEG存在问题,而未压缩的AVI存在问题。在禁用FFMPEG的情况下重新编译OpenCV,或者使用不同的编解码器来压缩视频。

好的,所以我设法在其他几台计算机上进行了测试。一个刚刚崩溃,另一个视频播放得很好。事实证明,在默认OpenCV编译中启用FFMPEG存在问题,而未压缩的AVI存在问题。在禁用FFMPEG的情况下重新编译OpenCV,或者使用其他编解码器来压缩视频。

您是否更新了系统编解码器?可能是编解码器故障造成的。我刚刚安装了k-lite mega编解码器包,但它仍在发生。您是否更新了系统编解码器?一个错误的编解码器可能是造成这种情况的原因。我刚刚安装了k-lite mega编解码器包,它仍然在发生。