当前位置:C++技术网 > 资讯 > opencv编程:5 VideoCapture出错分析

opencv编程:5 VideoCapture出错分析

更新时间:2016-03-24 16:56:15浏览次数:1+次

错误情况:

例如:

VideoWriter * writer = new VideoWriter;
writer->open("D:/test.avi",CV_FOURCC('X', 'V', 'I', 'D'),25,Size(320,568),true);
writer->write(frame);
writer->release();//这句话very important!!!! 
这样子打开一个视频,但是当我们写入之后发现:

居然错了!!为什么会错呢?

  1. 首先:注意我们打开的视频格式,我们使用的是 320x568 的大小,如果你写入的是1280x720 的,不好意思,不管你写了多久,都是无效的视频文件,写入失败。因为格式不合格,被VideoWriter类直接pass。
  2. 其次:注意我们打开的文件后缀,如果你写入的文件后缀不是 .avi,恭喜你,即使打开的成功,也会写入失败,因为opencv支持的视频格式有限,尽管可以打开 .mp4,但是无法生成 .mp4,同样,也不要指望打开或生成 .rmvb神马的。
  3. 还有:也就是最最重要的一步!!记得写入视频完成之后,一定记得释放资源!!否则你还会看5.54k的文件!!这是因为我们写入的视频都是放在缓冲区的,不发出release命令,视频不会被输入到文件!!

好啦,以上就是近几天的血的教训!