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简单分割文件的方法
Jul 30 Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
Jan 20 Python
python入门教程之识别验证码
Mar 04 Python
Python实现希尔排序算法的原理与用法实例分析
Nov 23 Python
python机器学习之决策树分类详解
Dec 20 Python
python的socket编程入门
Jan 29 Python
Python图像滤波处理操作示例【基于ImageFilter类】
Jan 03 Python
python实现windows壁纸定期更换功能
Jan 21 Python
解决Python安装cryptography报错问题
Sep 03 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
Sep 20 Python
Python reversed反转序列并生成可迭代对象
Oct 22 Python
python的setattr函数实例用法
Dec 16 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中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
2014/04/24 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
PHP中使用curl伪造IP的简单方法
2015/08/07 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
javascript语句中的CDATA标签的意义
2007/05/09 Javascript
Tips 带三角可关闭的文字提示
2010/10/06 Javascript
js 操作符汇总
2014/11/08 Javascript
实例讲解JavaScript的Backbone.js框架中的View视图
2016/05/05 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
浅谈JavaScript 数据属性和访问器属性
2016/09/01 Javascript
jQuery内存泄露解决办法
2016/12/13 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
浅析bootstrap原理及优缺点
2017/03/19 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
jquery与js实现全选功能的区别
2017/06/11 jQuery
详解AngularJS ng-class样式切换
2017/06/27 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
原生js实现省市区三级联动代码分享
2018/02/12 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
JS字符串常用操作方法实例小结
2019/06/24 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
理解Python垃圾回收机制
2016/02/12 Python
python中hashlib模块用法示例
2017/10/30 Python
修复 Django migration 时遇到的问题解决
2018/06/14 Python
python用列表生成式写嵌套循环的方法
2018/11/08 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
2018/07/12 HTML / CSS
简述synchronized和java.util.concurrent.locks.Lock的异同
2014/12/08 面试题
个人充满哲理的自我评价
2014/02/20 职场文书
节能减排倡议书
2014/04/15 职场文书
活动策划求职信模板
2014/04/21 职场文书
计算机专业毕业生求职信
2014/04/30 职场文书
加强作风建设心得体会
2014/10/22 职场文书
2016年高校自主招生自荐信范文
2015/03/24 职场文书
关于html选择框创建占位符的问题
2021/06/09 HTML / CSS