python读取视频流提取视频帧的两种方法


Posted in Python onOctober 22, 2020

本文实例为大家分享了python读取视频流提取视频帧的具体代码,供大家参考,具体内容如下

方法一:通过imageio库和skimage库

1. 安装环境:

pip install imageio

pip install skimage

这时候会报错Please install the `scikit-image` package (instead of `skimage`)

所以按照提示操作即可:

pip install scikit-image

环境安装成功。

2.通过python安装ffmpge(用来解码视频流)

import imageio

imageio.plugins.ffmpeg.download()

这时候会提示:

Imageio: 'ffmpeg.linux64' was not found on your computer; downloading it now.Try 1. Download from https://github.com/imageio/imageio-binaries/raw/master/ffmpeg/ffmpeg.linux64 (27.2 MB)Downloading: 8192/28549024 bytes

开始进行下载ffmpeg

注意:下载这个文件很容易断线,所有可以先拿下载工具下载后,再放到下面路径,然后系统就会认为文件已经下载完了。
文件路径: /root/.imageio/ffmpeg/ffmpeg.linux6

如果不断线的话,文件就会存放在上述路径中。

下次执行就可以直接读取视频流了。

3. 使用imageio库提取视频帧

imageio官方文档地址

用法:

# coding:utf-8 
import pylab 
import imageio 
#注释的代码执行一次就好,以后都会默认下载完成 
#imageio.plugins.ffmpeg.download() 
import skimage 
import numpy as np 
 
#视频的绝对路径 
filename = 'video/01_01.wmv' 
#可以选择解码工具 
vid = imageio.get_reader(filename, 'ffmpeg') 
for num,im in enumerate(vid): 
 #image的类型是mageio.core.util.Image可用下面这一注释行转换为arrary 
 print im.mean() 
 image = skimage.img_as_float(im).astype(np.float64) 
 fig = pylab.figure() 
 fig.suptitle('image #{}'.format(num), fontsize=20) 
 pylab.imshow(im) 
pylab.show()

方式二:通过cv2库

用法:

import cv2 
video_full_path="video/01_01.wmv" 
cap = cv2.VideoCapture(video_full_path) 
print cap.isOpened() 
frame_count = 1 
success = True 
while(success): 
 success, frame = cap.read() 
 print 'Read a new frame: ', success 
 
 params = [] 
 #params.append(cv.CV_IMWRITE_PXM_BINARY) 
 params.append(1) 
 cv2.imwrite("video" + "_%d.jpg" % frame_count, frame, params) 
 
 frame_count = frame_count + 1 
 
cap.release()

存在问题:cap.isOpened()总是输出false,表示打开失败。没办法读取,问题一直没有解决,如果有哪位大神解决还往告知!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python基于pygame实现响应游戏中事件的方法(附源码)
Nov 11 Python
python 实现A*算法的示例代码
Aug 13 Python
Python绘制并保存指定大小图像的方法
Jan 10 Python
Python 3.8新特征之asyncio REPL
May 28 Python
python之mock模块基本使用方法详解
Jun 27 Python
Django 中自定义 Admin 样式与功能的实现方法
Jul 04 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
Sep 05 Python
如何在python中执行另一个py文件
Apr 30 Python
Python图像阈值化处理及算法比对实例解析
Jun 19 Python
Python如何绘制日历图和热力图
Aug 07 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
Aug 17 Python
Python进行区间取值案例讲解
Aug 02 Python
python读取和保存视频文件
Apr 16 #Python
Python读取视频的两种方法(imageio和cv2)
Apr 15 #Python
python2.7实现FTP文件下载功能
Apr 15 #Python
python实现多线程网页下载器
Apr 15 #Python
Python实现定时精度可调节的定时器
Apr 15 #Python
Python编写一个优美的下载器
Apr 15 #Python
python实现音乐下载器
Apr 15 #Python
You might like
PHP调用Twitter的RSS的实现代码
2010/03/10 PHP
php学习之function的用法
2012/07/14 PHP
通过php删除xml文档内容的方法
2015/01/23 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
基于jquery的表头固定的若干方法
2011/01/27 Javascript
关于使用 jBox 对话框的提交不能弹出问题解决方法
2012/11/07 Javascript
javascript框架设计读书笔记之种子模块
2014/12/02 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
JS实现向表格行添加新单元格的方法
2015/03/30 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
javascript Promise简单学习使用方法小结
2016/05/17 Javascript
在一个页面重复使用一个js函数的方法详解
2016/12/26 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
vue使用vue-quill-editor富文本编辑器且将图片上传到服务器的功能
2021/01/13 Vue.js
[51:17]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
跟老齐学Python之传说中的函数编写条规
2014/10/11 Python
Python Sqlite3以字典形式返回查询结果的实现方法
2016/10/03 Python
python删除服务器文件代码示例
2018/02/09 Python
Python类的继承用法示例
2019/01/31 Python
Python + Flask 实现简单的验证码系统
2019/10/01 Python
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
十岁生日父母答谢词
2014/01/18 职场文书
高中军训感想800字
2014/02/23 职场文书
《四季》教学反思
2014/04/08 职场文书
尊师重教演讲稿
2014/09/04 职场文书
村级干部党员公开承诺事项
2015/05/04 职场文书
城南旧事电影观后感
2015/06/16 职场文书
聊聊SpringBoot自动装配的魔力
2021/11/17 Java/Android
Golang并发工具Singleflight
2022/05/06 Golang