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开发的小球完全弹性碰撞游戏代码
Oct 15 Python
python继承和抽象类的实现方法
Jan 14 Python
python脚本监控docker容器
Apr 27 Python
Python中的字符串替换操作示例
Jun 27 Python
python实现一个简单的并查集的示例代码
Mar 19 Python
Python实现按照指定要求逆序输出一个数字的方法
Apr 19 Python
python Spyder界面无法打开的解决方法
Apr 27 Python
解决Python3中的中文字符编码的问题
Jul 18 Python
浅谈pytorch中的BN层的注意事项
Jun 23 Python
python给视频添加背景音乐并改变音量的具体方法
Jul 19 Python
python中not、and和or的优先级与详细用法介绍
Nov 03 Python
Python列表的索引与切片
Apr 07 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中对用户身份认证实现两种方法
2011/06/04 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
php获得文件夹下所有文件的递归算法的简单实例
2016/11/01 PHP
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
原生Javascript封装的一个AJAX函数分享
2014/10/11 Javascript
jquery+ajax实现跨域请求的方法
2015/01/20 Javascript
CSS javascript 结合实现悬浮固定菜单效果
2015/08/23 Javascript
jquery实现左右滑动菜单效果代码
2015/08/27 Javascript
js简单倒计时实现代码
2016/04/30 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
Node.js 中使用 async 函数的方法
2017/11/20 Javascript
JavaScript事件冒泡与事件捕获实例分析
2018/08/01 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
如何在node环境实现“get数据解析”代码实例
2020/07/03 Javascript
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
CentOS7安装Python3的教程详解
2019/04/10 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
用scikit-learn和pandas学习线性回归的方法
2019/06/21 Python
Python pip替换为阿里源的方法步骤
2019/07/02 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
Python Django中间件使用原理及流程分析
2020/06/13 Python
Python如何测试stdout输出
2020/08/10 Python
python使用matplotlib:subplot绘制多个子图的示例
2020/09/24 Python
外语专业毕业生个人的自荐信
2013/11/19 职场文书
社团招新策划书
2014/02/04 职场文书
商务日语专业毕业生自荐信
2014/03/27 职场文书
家庭贫困证明范本(经典版)
2014/09/22 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
2015年度女工工作总结
2015/10/22 职场文书
html中显示特殊符号(附带特殊字符对应表)
2021/06/21 HTML / CSS
Mysql 数据库中的 redo log 和 binlog 写入策略
2022/04/26 MySQL