OpenCV读取视频时丢帧的问题
OpenCV读取视频时会自动丢掉重复帧,导致读取到的帧数和视频里的实际总帧数不一致,比如说你用视频标注工具打开视频看到视频总共有855帧,可是使用OpenCV的VideoCapture类的read()能读出来的总是只能最多读到847帧,好像后面的8帧丢了,其实这并不是最后面的8帧有问题读不出来,而是OpenCV自动将视频中的所有重复的8帧丢掉了,而不一定是将最后的8帧丢了。
如果一定要读取出全部的帧,得借助ffmpeg,方法一当然是先安装ffmpeg,然后手工执行ffmpeg命令来抽取出全部帧,办法二是在安装了ffmeg基础上继续安装ffmpy包,使用ffmpy也就是ffmpeg python api来写python程序来读取出全部帧,办法三在安装了ffmpeg基础上继续安装sk-video包,使用skvideo的api写python程序来读取出全部的帧。
ffmpeg可以在官网上直接下载对应操作系统版本的已编译好的程序,然后将ffmpeg所在的bin的路径加入到OS的path路径即可,如果是Ubuntu,想使用apt安装,可以使用下面的办法安装:
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
sudo apt-get update
sudo apt-get install ffmpeg
安装ffmpy包(关于ffmpy的用法,参考官方文档 https://ffmpy3.readthedocs.io/en/latest/):
pip install ffmpy
安装sk-video包:
pip install sk-video
然后在代码中
import skvideo.io#...
imgarray = skvideo.io.vread(video_file)
for frame in imgarray:#...
注意要import skvideo.io,而不是import skvideo,否则报错:
Traceback (most recent call last):
File "cie2voc2007.py", line 150, in
convert(src_path,dest_path)
File "cie2voc2007.py", line 118, in convert
imgarray = skvideo.io.vread(video_file)
AttributeError: module 'skvideo' has no attribute 'io'
我查看了一下原因,其实C:\Python38\lib\site-packages\skvideo\下io文件夹是肯定存在的,为何还报错呢,看了一下skvideo下的__init__.py这个文件的内容,它并没有import io,所以报上面的错误。
OpenCV读取视频时丢帧的问题相关推荐
- 解决Python OpenCV 读取视频并抽帧出现error while decoding的问题
解决Python OpenCV 读取视频抽帧出现error while decoding的问题 1. 问题 2. 解决 3. 源代码 参考 1. 问题 读取H264视频,抽帧视频并保存,报错如下: [ ...
- python用OpenCV读取视频帧数、高度宽度等
python用OpenCV读取视频帧数.高度宽度等 import cv2 import time# 2655 def get_each_frame(video_path):# 读取视频文件videoC ...
- opencv读取视频并保存为图片
1.功能: opencv读取指定文件夹中的视频文件,按照一定的间隔截取某些帧,将这些帧图像连续命名,存储在指定文件夹里. 2.代码如下: (1)IplImage #include <stdlib ...
- 使用OpenCV读取视频和视频的相似性度量
使用OpenCV读取视频和视频的相似性度量 目标 当今,数字摄像设备是随处可见.因此,一定会遇到这样的情况:图像处理已经不能满足要求,而需要进行视频处理.这大致分两种情况: 1.实时采集(对于网络摄像 ...
- python opencv读取视频没声音_python + opencv: 解决不能读取视频的问题
博主一开始使用python2.7和Opencv2.4.10来获取摄像头图像,程序如下: cap = cv2.VideoCapture(0) ret, frame = cap.read() 使用这个程序 ...
- Opencv读取视频、打开摄像头、保存视频和视频倒放
原文出处:https://blog.csdn.net/yang_xian521/article/details/7440190 看了这个觉得说得很对,说白了Opencv主要针对是图像处理的计算机视觉库 ...
- Opencv学习_3 (Opencv读取视频 视频进度控制 写视频)
opencv读取视频: 使用opencv读取视频主要用到这几个函数:cvCreateFileCapture cvQueryFrame (或cvGrabFrame cvRetrieveFrame) ...
- opencv-python 读取视频时如何判断读取到最后一张
opencv-python 读取视频时如何判断读取到最后一张 读取视频的代码: 通过 if img is None来判断是否读取到最后一帧 import cv2 as cvcapture = cv.V ...
- OpenCV读取视频文件的实例(附完整代码)
OpenCV读取视频文件的实例 OpenCV读取视频文件的实例 OpenCV读取视频文件的实例 #include <iostream> // for standard I/O #inclu ...
最新文章
- SpringBoot资料整理(3)
- 炉石传说服务器维护有补偿吗,炉石传说官网维护补偿什么时候到 未到原因说明...
- datetimepicker时间控件
- python-类的基本知识
- @excel注解_Excel导入导出Java解决方案推荐
- 飞鸽传书2011怎么用之启动常见问题(二)
- SpringBoot学习笔记001--创建第一个spring boot应用
- Delphi多媒体设计之播放WAVE文件(API)
- 多视几何_计算两幅图像之间的基础矩阵F和一副图像上的点在另一福图像上的极线L
- Faster rcnn相关文章研究
- UBUNTU给已有用户改名
- Linux常用软件包管理工具集合(DPKG,APT(APT-GET),RPM,YUM,DNF)
- 生物安全实验室送排风设计标准
- 31页智慧文旅云服务平台建设方案【附下载】
- 移植NES模拟器到STM32G431 详细移植教程 CubeMX HAL库
- 我的世界电脑服务器怎么显示键盘,我的世界电脑版操作按键
- JQuery从入门到实战
- 浅谈StrictMode
- 数据库--视图的基本概念以及作用
- linux 硬盘使用监控,zabbix3.2监控linux磁盘使用空间
热门文章
- 麒麟处理器和鸿蒙是什么,失去了麒麟处理器,鸿蒙将成为华为手机最大的王牌...
- 16进制 转为图片 php_ImageMagick(图片处理软件) 分享
- 2022年热门职业排行
- itext通过pdf模板填充数据并调用打印机打印
- java我的世界1.6.2_我的世界1.6.2纯净版下载 我的世界1.6.2下载
- 计算机工程两个月能见刊吗,计算机工程与设计杂志
- 生态网络连通性定义_生态网络结构与格局演变
- 《新侠客英雄传XP》通关简易攻略2
- Linux进程相关命令
- 解决:OpenCV: FFMPEG: tag 0x5634504d/‘MP4V‘ is not supported with codec id 12 and format ‘mp4 / MP4 (MP