python视频处理模块_python视频处理库:moviepy
处理视频是一个常见的需求。那么在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相关推荐
- python视频处理教程_Python视频编辑库:MoviePy|python爬虫|python入门|python教程
https://www.xin3721.com/eschool/pythonxin3721/ MoviePy MoviePy是一个关于视频编辑的python库,主要包括:剪辑,嵌入拼接,标题插入,视频 ...
- python编辑视频字符化_Python 视频转字符画 - 进阶
这篇文章是 视频转字符动画-Python-60行代码 的后续,如果感兴趣,请先看看它. 0. 话说在前头 最新版使用了画布方式实现,和本文相比改动非常大,如果对旧版本的实现没啥兴趣,可以直接移步 vi ...
- python视频编辑教程_Python 带你高效创作短视频,视频剪辑什么鬼_Python 视频_Python 课程视频_Python 课程_课课家...
近两年,抖音.快手将短视频推到风口浪尖上,要生产出高质量的视频,离不开视频剪辑这一环节;在全民剪片浪潮中,大众使用最多的剪辑软件如:Pr.FCPX.剪印.Vue 等.我们一起看看. 之前有两篇文章分别 ...
- 【Python】ffmpeg模块查询视频、音频信息
FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视频的完整解决方案. 它包含了非常先进的音频/视频编解码库 ...
- 【Python】ffmpeg模块处理视频、音频信息
多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能.视频格式转换.视频抓图.给视频加水印等. 这里主要介绍一下FFmpeg的一些常用参数,并且主要功能:截取视频.视频格式转换.视频分辨率转 ...
- python安装os模块_python的os模块(ipython,文件,目录,权限,管理)
什么是os模块 os模块提供了多数操作系统的功能接口函数.当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件.目录打交道,这时就离不了o ...
- python3安装mysql模块_Python安装MySQL库详解,步骤及错误的解决方法
前面我们介绍的Python网络爬虫通常将抓取的数据存储至TXT或CSV文件,而当数据量增加之时,就需要将其存储至本地数据库了.Python访问数据库需要对应的接口程序,我们可以把接口程序理解为Pyth ...
- python运维模块_Python 运维常用模块
基础库:sys.os(os.path.os.stat).time.logging.prarmiko.re.random Python运维常用的20个库 1.psutil是一个跨平台库(https:// ...
- python 图片处理模块_python Image 模块处理图片
Python-Image 基本的图像处理操作,有需要的朋友可以参考下. Python 里面最常用的图像操作库是 pip install Pillow #安装模块fromPIL import Image ...
最新文章
- 自考微型计算机原理与接口技术试卷,200204自考微型计算机原理与接口技术试题.doc...
- exe软件ui嵌套软件_UI设计行业中的PS软件起什么用途
- 快速重置vuex数据 - Vue
- 【计算机网络复习 数据链路层】3.5.2 ALOHA协议
- Asp.Net MVC中使用ACE模板之Jqgrid
- jps命令 Java Virtual Machine Process Status Tool
- Linux 给我的七个宝贵教训
- 线程的同步互斥之事件对象(Event)
- 视频编码格式、视频码率、视频帧率、分辨率的概念
- c语言头文件下载大全,C语言头文件大全
- Linux运维工程师必备工具合集
- 巨杉数据库基于mysql_【巨杉数据库SequoiaDB】巨杉Tech |巨杉数据库的HTAP场景实践...
- 广州优漫动游公司:高级UI/UE交互设计就业班学什么?
- 起价8万4!最强苹果电脑套装发布,iOS黑化,iPad独立 | 一文看尽WWDC大会
- 一款能统计能存储日志设置超时时间的ping工具
- epoll的惊群效应
- A fatal error has been detected by the Java Runtime Environment, C [VCRUNTIME140.dll+0x1989]
- html的meta总结
- 本科毕业论文去哪里查重比较靠谱?
- c语言编程题中华文本库,《c语言程序设计》课程设计大型作业任务书v.docx
热门文章
- 笔记本c盘变红满了怎么清理呢?有什么好的清理方法?
- 那些一毕业就走进华为的人,后来都怎么样了
- 玩转 AWS EC2 不得不了解的那些实例购买选项
- Python代码,圣诞节贺卡代码来啦,赶快拿来发给你的朋友
- C和C++中argc和argv的含义以及用法
- bootstrap之navbar样式
- 服务器显示器蓝屏怎么办?
- 动态播放幻灯片 计算机教案,小学信息技术《放映幻灯片》教案
- 耐磨性在微型导轨中的性能分析
- php move_uploaded_file liunx,php move_uploaded_file()上传文件实例及遇到问题的解决方法...