Imageio逐帧视频处理

安装

conda install imageio

将视频转换成图片

import imageio

timeF = 10

reader = imageio.get_reader('imageio:cockatoo.mp4')

for i, im in enumerate(reader):

if (i % timeF == 0):

imageio.imwrite('./image/'+str(i)+'.jpg',im[:, :, 1])

将图片合并成视频

import imageio

import glob

img_paths = glob.glob("./image/*.jpg")

writer = imageio.get_writer('./out.mp4', fps=25)

for img_path in img_paths:

im = imageio.imread(img_path)

writer.append_data(im)

writer.close()

使用OpenCV逐帧视频处理

将视频转换为图片

import cv2

vc = cv2.VideoCapture('project_video.mp4') # 读入视频文件

c = 1

if vc.isOpened(): # 判断是否正常打开

rval, frame = vc.read()

else:

rval = False

timeF = 10 # 视频帧计数间隔频率

while rval: # 循环读取视频帧

rval, frame = vc.read()

if (c % timeF == 0): # 每隔timeF帧进行存储操作

cv2.imwrite('image/' + str(c) + '.jpg', frame) # 存储为图像

c = c + 1

cv2.waitKey(1)

vc.release()

Moviepy视频处理库

MoviePy是Python中的一个视频处理库,能够对音频、视频、图片进行剪辑、合并、输出等处理.支持大多数图文格式.

MoviePy主要用于批量自动化的视频处理(比如批量创建GIF作为视频封面图),以及自动化一些繁琐的视频编辑任务.

当然MoviePy也可以用来做逐帧视频处理以及视频格式转换等任务,不过性能不如OpenCV、imageio、ffmpeg等.

moviepy的官方文档在这里:

https://zulko.github.io/moviepy/

源代码仓库在这里:

https://github.com/Zulko/moviepy

moviepy安装

moviepy是基于ffmpeg的,所以先要保证机器中装有ffmpeg,如果没有的话可以使用imageio下载ffmpeg

conda install imageio

然后在终端中执行如下代码安装ffmpeg

import imageio

imageio.plugins.ffmpeg.download()

或者,可以参考ffmpeg官网的安装方法.

https://www.ffmpeg.org/

安装moviepy

pip install moviepy

视频逐帧处理

from moviepy.editor import VideoFileClip

output_file = 'output.mp4'

test_clip = VideoFileClip("input.mp4")

new_clip = test_clip.fl_image(process_image)

new_clip.write_videofile(output_file, audio=False)

def process_image(image):

return image

python使用方法视频-使用Python进行视频处理相关推荐

  1. python安装方法_【Python教程】Windows10 安装Python

    在此教程中,我们将学习一步一步在windows10 系统安装Python环境. 首先访问官网: https://www.python.org/downloads/ 点击下载,下载安装包.双击后有两个选 ...

  2. python降维方法_使用Python进行数据降维|线性降维

    ========== 欢迎关注文章首发公众号:早起python 本文为早起的统计工具箱第二期 ========== 前言 为什么要进行数据降维?直观地好处是维度降低了,便于计算和可视化,其深层次的意义 ...

  3. python使用方法-六、python 方法的使用

    python 与其他语言一样,支持变量自带的一些方法. 如 name = "zhangsan" 此时的name 就像当与一个 值为 字符串的 object , python 是对字 ...

  4. python 赋值方法_基于Python List的赋值方法

    Python中关于对象复制有三种类型的使用方式,赋值.浅拷贝与深拷贝.他们既有区别又有联系,刚好最近碰到这一类的问题,研究下. 一.赋值 在python中,对象的赋值就是简单的对象引用,这点和C++不 ...

  5. python运行方法_对python中执行DOS命令的3种方法总结

    1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在Linux上执行的信息. import os os.system("ls") 2. ...

  6. python split()方法_聊聊 Python 的单元测试框架(一):unittest

    本文首发于 HelloGitHub 公众号,并发表于 Prodesire 博客. 前言 说到 Python 的单元测试框架,想必接触过 Python 的朋友脑袋里第一个想到的就是 unittest. ...

  7. python创建方法draw_【python设计模式-创建型】工厂方法模式

    工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻 ...

  8. python headr方法_对Python发送带header的http请求方法详解

    简单的header import urllib2 request = urllib2.Request('http://example.com/') request.add_header('User-A ...

  9. c4d python使用方法_Cinema 4D Python脚本编写必须知道的5行Python代码教程

    Cinema 4D Python脚本编写必须知道的5行Python代码教程 在这期Cinema 4D python教程中的第一篇.Alpha Pixel将介绍如何使用python脚本进行设置,并查看一 ...

  10. python fetchall方法_索引Python fetchall()

    我正在尝试如何在MySQL中使用Python.我在处理查询结果中的条目时遇到问题.在 所以如果我这样做:import MySQLdb db = MySQLdb.connect(host="1 ...

最新文章

  1. Github下载量10万次,最终被所有大厂封杀!
  2. InputStreamReader/OutputStreamWriter乱码问题解决
  3. 手写体识别代码_Python识别图片中的文字
  4. 【OpenGL】六、Visual Studio 2019 配置 GitHub ( 提取和拉取简介 | 拉取远程代码 )
  5. OpenCV 简单的人脸识别
  6. 使用JAX-RS和Jetty创建Web服务和Rest Server
  7. 通过影响函数理解黑箱预测
  8. mysql主从配置错误_mysql主从配置常见错误处理
  9. Confluent修改许可,限制其他云供应商
  10. Daz3d:如何使用景深
  11. android 驱动程序,安卓设备安装USB驱动程序教程
  12. 《古诗词里的快意人生》读后感
  13. 技术展示:综合布线系统的设计分析
  14. 哪款软件可以测试刘海,什么脸型适合什么刘海 5款自测你适合哪种
  15. 大二学期总结(我的机器人开发之路)
  16. 回归损失函数:L1,L2,Huber,Log-Cosh,Quantile Loss
  17. 牛顿迭代法求方程的根
  18. 【原创】描述性分析思维的一些基本思路与见解
  19. Jess 7.2p2——Java平台规则引擎官方文档翻译2
  20. 好用的分类统计--Python

热门文章

  1. Kubernetes——基于容器技术的分布式架构领先方案,它的目标是管理跨多个主机的容器,提供基本的部署,维护以及运用伸缩...
  2. mongodb 关闭服务 mongod -f /root/mongodb/bin/xx.conf --shutdown
  3. pycharm 配置引用 docker 中的环境
  4. C语言 经典编程100
  5. 我能不能理解成 ssh中service就相当于与jsp+servlet+dao中的servlet???
  6. BZOJ1008[HNOI2008]越狱
  7. 单片微机原理P4:80C51串口与串行总线拓展
  8. Axure RP pro 6.5 密钥
  9. 定时任务卡死问题排查
  10. [pytorch] 官网教程+注释