处理视频是一个常见的需求。那么在python中如何用代码处理视频呢?最近我无意间发现了一个很好用的python视频处理库moviepy,其使用起来简单易用,而且功能比较强大,这里记录一下分享给大家。

What is moviepy?

以下的介绍来自moviepy的官方文档。

moviepy是一个用于视频编辑的python模块,其可以用来对视频进行一些基础的操作(比如剪切,连接,插入标题等),视频创作(比如非线性编辑),视频处理以及给视频增加一些炫酷的特效等。它可以读写大多数常见的视频格式,包括GIF。

How to install moviepy?

moviepy的安装非常简单,直接使用命令pip install moviepy即可。当然你也可以选择从源码安装,下载源码包,解压缩,然后切换到含有setup.py的目录,执行 python setup.py install 即可。

moviepy的底层依赖于Numpy(用于高效数值处理),imageio(图像处理), Decorator,tqdm(用于显示进度条)。它在Windows/Mac/Unix环境下应该都是可以工作的,支持python2.7+以及python3。moviepy底层的视频读写依赖于ffmpeg,它会在你安装moviepy的时候自动下载,如果你已经安装了ffmpeg或者想使用特定版本的ffmpeg,你可以从moviepy/config_defaults.py中指定。

需要注意的是,还有一些可选模块可以安装,比如ImageMagic。这是一个开源的图像处理库,支持对超过200种格式的图像进行编辑处理,详细的用法可以自行参考官网文档。如果你希望向视频中添加文字,就必须安装这个库。它也可以作为生成GIF的后端,但不是必须的。如果你在Windows下安装这个库就比较简单,可以直接使用可执行文件安装;如果是Unix用户,可以选择源码编译安装,官网文档有详细的说明,不再赘述。

When to use moviepy?

如果你属于以下情况,可以考虑使用moviepy:

你有很多视频需要处理,或者你需要用很复杂的方式处理;

你希望在web服务器上自动生成videos或者GIF(Django,Flask等);

你希望能够自动化一些冗长乏味的工作,比如插入标题,图像场景分割,做一些视频结尾的特效,添加副标题等;

你希望可以使用code实现一些新奇的,其他视频编辑软件都无法做到的特效;

你希望可以从其他python库(比如matplotlib,mayavi,gizeh,scikit-images等)生成的图像中生成动画。

如果你是属于下面的这些情况,使用moviepy未必是最好的选择:

你仅仅需要做逐帧的视频分析(比如面部检测等),这种情况下你也是可以使用moviepy的,但是更建议使用imageio,opencv,simplecv等,因为这些库就是专门干这件事情的。

你仅仅想对视频进行转化,或者想把一系列的图片转化为视频,你最好直接使用ffmpeg(或者avconv,mencoder等),因为这些工具做这些转化会更快,而且更省内存。

moviepy的优点和缺点

优点:

简单和直观。基础的操作一行代码就可以搞定,对于新手来说非常友好。

灵活。你对于视频或者音频的每一帧都有着完全的控制权,创作你自己的特效非常容易。

便携。代码主要依赖numpy和ffmpeg(这两者都是跨平台的),所以moviepy几乎可以在所有的平台以及几乎所有的python版本上运行。

局限性:

无法处理视频流。比如无法实时处理来自摄像头的视频流等。当然,本来这就不是moviepy定位要解决的问题。

*处理大量视频,音频可能会很吃力**。在同时处理大量(>100)的视频,音频,图片的时候可能会有内存问题,这个后面应该会修复。

Example Code Basic operations of moviepy

# Import everything needed to edit video clips

from moviepy.editor import *

# Load girl.mp4 and select the subclip 00:00:00 – 00:00:02

clip = VideoFileClip(“sources/girl.mp4”).subclip(0,2)

# Reduce the audio volume (volume x 0.8)

clip = clip.volumex(0.8)

# Generate a text clip. You can customize the font, color, etc.

txt_clip = TextClip(“beautiful girl”,fontsize=20,color=‘red’)

# Say that you want it to appear 1.5s at the center of the screen

txt_clip = txt_clip.set_pos(‘top’).set_duration(1.5)

# Overlay the text clip on the first video clip

video = CompositeVideoClip([clip, txt_clip])

# Write the result to a file (many options available !)

video.write_videofile(“sources/girl_edited.mp4”)

** 如果此篇文章有帮助到你,欢迎点击下方/页面上任意广告,支持我们,谢谢!

python视频处理模块_python视频处理库:moviepy相关推荐

  1. python视频处理教程_Python视频编辑库:MoviePy|python爬虫|python入门|python教程

    https://www.xin3721.com/eschool/pythonxin3721/ MoviePy MoviePy是一个关于视频编辑的python库,主要包括:剪辑,嵌入拼接,标题插入,视频 ...

  2. python编辑视频字符化_Python 视频转字符画 - 进阶

    这篇文章是 视频转字符动画-Python-60行代码 的后续,如果感兴趣,请先看看它. 0. 话说在前头 最新版使用了画布方式实现,和本文相比改动非常大,如果对旧版本的实现没啥兴趣,可以直接移步 vi ...

  3. python视频编辑教程_Python 带你高效创作短视频,视频剪辑什么鬼_Python 视频_Python 课程视频_Python 课程_课课家...

    近两年,抖音.快手将短视频推到风口浪尖上,要生产出高质量的视频,离不开视频剪辑这一环节;在全民剪片浪潮中,大众使用最多的剪辑软件如:Pr.FCPX.剪印.Vue 等.我们一起看看. 之前有两篇文章分别 ...

  4. 【Python】ffmpeg模块查询视频、音频信息

    FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视频的完整解决方案. 它包含了非常先进的音频/视频编解码库 ...

  5. 【Python】ffmpeg模块处理视频、音频信息

    多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能.视频格式转换.视频抓图.给视频加水印等. 这里主要介绍一下FFmpeg的一些常用参数,并且主要功能:截取视频.视频格式转换.视频分辨率转 ...

  6. python安装os模块_python的os模块(ipython,文件,目录,权限,管理)

    什么是os模块 os模块提供了多数操作系统的功能接口函数.当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件.目录打交道,这时就离不了o ...

  7. python3安装mysql模块_Python安装MySQL库详解,步骤及错误的解决方法

    前面我们介绍的Python网络爬虫通常将抓取的数据存储至TXT或CSV文件,而当数据量增加之时,就需要将其存储至本地数据库了.Python访问数据库需要对应的接口程序,我们可以把接口程序理解为Pyth ...

  8. python运维模块_Python 运维常用模块

    基础库:sys.os(os.path.os.stat).time.logging.prarmiko.re.random Python运维常用的20个库 1.psutil是一个跨平台库(https:// ...

  9. python 图片处理模块_python Image 模块处理图片

    Python-Image 基本的图像处理操作,有需要的朋友可以参考下. Python 里面最常用的图像操作库是 pip install Pillow #安装模块fromPIL import Image ...

最新文章

  1. 自考微型计算机原理与接口技术试卷,200204自考微型计算机原理与接口技术试题.doc...
  2. exe软件ui嵌套软件_UI设计行业中的PS软件起什么用途
  3. 快速重置vuex数据 - Vue
  4. 【计算机网络复习 数据链路层】3.5.2 ALOHA协议
  5. Asp.Net MVC中使用ACE模板之Jqgrid
  6. jps命令 Java Virtual Machine Process Status Tool
  7. Linux 给我的七个宝贵教训
  8. 线程的同步互斥之事件对象(Event)
  9. 视频编码格式、视频码率、视频帧率、分辨率的概念
  10. c语言头文件下载大全,C语言头文件大全
  11. Linux运维工程师必备工具合集
  12. 巨杉数据库基于mysql_【巨杉数据库SequoiaDB】巨杉Tech |巨杉数据库的HTAP场景实践...
  13. 广州优漫动游公司:高级UI/UE交互设计就业班学什么?
  14. 起价8万4!最强苹果电脑套装发布,iOS黑化,iPad独立 | 一文看尽WWDC大会
  15. 一款能统计能存储日志设置超时时间的ping工具
  16. epoll的惊群效应
  17. A fatal error has been detected by the Java Runtime Environment, C [VCRUNTIME140.dll+0x1989]
  18. html的meta总结
  19. 本科毕业论文去哪里查重比较靠谱?
  20. c语言编程题中华文本库,《c语言程序设计》课程设计大型作业任务书v.docx

热门文章

  1. 笔记本c盘变红满了怎么清理呢?有什么好的清理方法?
  2. 那些一毕业就走进华为的人,后来都怎么样了
  3. 玩转 AWS EC2 不得不了解的那些实例购买选项
  4. Python代码,圣诞节贺卡代码来啦,赶快拿来发给你的朋友
  5. C和C++中argc和argv的含义以及用法
  6. bootstrap之navbar样式
  7. 服务器显示器蓝屏怎么办?
  8. 动态播放幻灯片 计算机教案,小学信息技术《放映幻灯片》教案
  9. 耐磨性在微型导轨中的性能分析
  10. php move_uploaded_file liunx,php move_uploaded_file()上传文件实例及遇到问题的解决方法...