OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
查看: 3487|回复: 5

请教一个读取本地视频的问题

[复制链接]
发表于 2018-9-28 18:22:10 | 显示全部楼层 |阅读模式
在读取本地视频分析的时候发现只能读到2311帧就认为文件结束了,尝试了帧数为7000帧和3300帧的avi视频,都是这个结果,代码如下:
VideoCapture cap;
cap.open("D:\\我的录像\\face_ios.avi");
if (!cap.isOpened())
        {
                cout<<"cann't open video file!!"<<endl;
                return -1;
        }
        for(;;)
        {
                Mat frame;
                cap >> frame;
               
                fr++;
                if(!frame.data)
                {
                                break;
                }
               imshow("face",frame);
             }
回复

使用道具 举报

发表于 2018-9-29 07:50:30 | 显示全部楼层
这样可以打开吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-29 09:04:47 | 显示全部楼层
qiu4466 发表于 2018-9-29 07:50
这样可以打开吗

打开没问题,就是播到2311帧的时候就认为结束了,试了两个视频,都是这个现象
回复 支持 反对

使用道具 举报

发表于 2018-9-29 09:07:57 | 显示全部楼层
Mat frame;  这一条语句不要写在死循环for(;;)中,原因是如果把这一条语句写在死循环中,会不断地开辟内存,所以一会内存就会不够用了。我估计应该是这个原因,你可以按着我说的试一下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-29 09:19:10 | 显示全部楼层
lidabenshi 发表于 2018-9-29 09:07
Mat frame;  这一条语句不要写在死循环for(;;)中,原因是如果把这一条语句写在死循环中,会不断地开辟内存 ...

试过了,也不是这个原因,我是用VirtualDub转出来的AVI视频,几个视频都是只能播到同样的帧数。原始录出来的视频opencv不支持。
回复 支持 反对

使用道具 举报

发表于 2018-9-29 11:47:40 | 显示全部楼层
先看看是不是内存泄漏。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-4-29 04:53 , Processed in 0.010260 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表