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中文编码那些事
Jun 25 Python
基于python实现聊天室程序
Jul 27 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
Apr 11 Python
介绍一款python类型检查工具pyright(推荐)
Jul 03 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
Nov 19 Python
Python解析json代码实例解析
Nov 25 Python
python 监测内存和cpu的使用率实例
Nov 28 Python
用python爬取历史天气数据的方法示例
Dec 30 Python
flask框架url与重定向操作实例详解
Jan 25 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
May 16 Python
matlab、python中矩阵的互相导入导出方式
Jun 01 Python
Python 实现Mac 屏幕截图详解
Oct 05 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
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
JavaScript实现的MD5算法完整实例
2016/02/02 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
WebSocket+node.js创建即时通信的Web聊天服务器
2016/08/08 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
JavaScript中数组的各种操作的总结(必看篇)
2017/02/13 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
Django与Vue语法的冲突问题完美解决方法
2017/12/14 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
Electron vue的使用教程图文详解
2019/07/05 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
详解Nuxt.js 实战集锦
2019/11/19 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
2020/04/26 Javascript
详解Vue串联过滤器的使用场景
2020/04/30 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
2020/10/21 Javascript
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
python3写的简单本地文件上传服务器实例
2018/06/04 Python
python 字段拆分详解
2019/12/17 Python
使用pyplot.matshow()函数添加绘图标题
2020/06/16 Python
浅谈HTML5中dialog元素尝鲜
2018/10/15 HTML / CSS
前端实现背景虚化但内容清晰且自适应 的实例代码
2019/08/01 HTML / CSS
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
店长岗位职责
2013/11/21 职场文书
餐饮投资计划书
2014/04/25 职场文书
竞选部长演讲稿
2014/04/26 职场文书
医学求职自荐信
2014/06/21 职场文书
单位消防安全责任书
2014/07/23 职场文书
优秀三好学生事迹材料
2014/08/31 职场文书
2014统计局民主生活会对照检查材料思想汇报
2014/10/02 职场文书
谢师宴答谢词
2015/01/05 职场文书
辞职书格式样本
2015/02/26 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
演讲开头怎么书写?
2019/08/06 职场文书