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 不同对象比较大小示例探讨
Aug 21 Python
Python 文件处理注意事项总结
Apr 10 Python
python脚本实现验证码识别
Jun 07 Python
如何优雅地改进Django中的模板碎片缓存详解
Jul 04 Python
python保存网页图片到本地的方法
Jul 24 Python
python框架django项目部署相关知识详解
Nov 04 Python
Django Serializer HiddenField隐藏字段实例
Mar 31 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
Aug 04 Python
Pycharm无法打开双击没反应的问题及解决方案
Aug 17 Python
Python Django路径配置实现过程解析
Nov 05 Python
python定义具名元组实例操作
Feb 28 Python
浅谈python数据类型及其操作
May 25 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 实现多服务器共享 SESSION 数据
2009/08/15 PHP
微信API接口大全
2015/04/15 PHP
php创建类并调用的实例方法
2019/09/25 PHP
游戏人文件夹程序 ver 3.0
2006/07/14 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
JavaScript单元测试ABC
2012/04/12 Javascript
node.js WEB开发中图片验证码的实现方法
2014/06/03 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
详解Javascript事件驱动编程
2016/01/03 Javascript
全面解析Bootstrap中tab(选项卡)的使用方法
2016/06/06 Javascript
Bootstrap CSS布局之图像
2016/12/17 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
2018/10/08 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
2019/06/22 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
JavaScript检测浏览器是否支持CSS变量代码实例
2020/04/03 Javascript
详解JSON.stringify()的5个秘密特性
2020/05/26 Javascript
Python中对元组和列表按条件进行排序的方法示例
2015/11/10 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
Django 实现购物车功能的示例代码
2018/10/08 Python
python脚本执行CMD命令并返回结果的例子
2019/08/14 Python
python中有关时间日期格式转换问题
2019/12/25 Python
python list的index()和find()的实现
2020/11/16 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
独特的礼品和创新的科技产品:The Grommet
2018/02/24 全球购物
班长演讲稿范文
2014/04/24 职场文书
副总经理任命书
2014/06/05 职场文书
中药学自荐信
2014/06/15 职场文书
大学军训自我鉴定大全
2014/09/18 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书
Nginx开启Brotli压缩算法实现过程详解
2021/03/31 Servers
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
2021/06/29 Javascript
vscode内网访问服务器的方法
2022/06/28 Servers