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启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
Apr 09 Python
400多行Python代码实现了一个FTP服务器
May 10 Python
在Python中操作时间之strptime()方法的使用
Dec 30 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
Nov 13 Python
python用reduce和map把字符串转为数字的方法
Dec 19 Python
Python实现的破解字符串找茬游戏算法示例
Sep 25 Python
python实现微信发送邮件关闭电脑功能
Feb 22 Python
python实现内存监控系统
Mar 07 Python
python开启摄像头以及深度学习实现目标检测方法
Aug 03 Python
对Python中 \r, \n, \r\n的彻底理解
Mar 06 Python
PyQt5的QWebEngineView使用示例
Oct 20 Python
Python的flask接收前台的ajax的post数据和get数据的方法
Apr 12 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单件模式结合命令链模式使用说明
2008/09/07 PHP
PHP获取MAC地址的函数代码
2011/09/11 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
yii2 开发api接口时优雅的处理全局异常的方法
2019/05/14 PHP
使用laravel指定日志文件记录任意日志
2019/10/17 PHP
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
jquery动态加载图片数据练习代码
2011/08/04 Javascript
jQuery插件实现表格隔行换色且感应鼠标高亮行变色
2013/09/22 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
谈一谈bootstrap响应式布局
2016/05/23 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
关于react中组件通信的几种方式详解
2017/12/10 Javascript
vue 根据数组中某一项的值进行排序的方法
2018/08/30 Javascript
jquery实现的分页显示功能示例
2019/08/23 jQuery
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
2019/11/19 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
[36:33]Ti4 循环赛第四日 附加赛NEWBEE vs Mouz
2014/07/13 DOTA
Python的组合模式与责任链模式编程示例
2016/02/02 Python
Django 导出 Excel 代码的实例详解
2017/08/11 Python
Python使用装饰器模拟用户登陆验证功能示例
2018/08/24 Python
解决python 无法加载downsample模型的问题
2018/10/25 Python
python实现可下载音乐的音乐播放器
2020/02/25 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
优秀学生干部推荐材料
2014/02/03 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
党员活动日总结
2014/05/05 职场文书
父亲节活动总结
2015/02/12 职场文书
财务总监岗位职责范本
2015/04/03 职场文书
2016元旦晚会主持人开场白和结束语
2015/12/03 职场文书
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android