写点什么

moviepy 简介及安装

用户头像
老猿Python
关注
发布于: 2021 年 03 月 22 日
moviepy简介及安装

一、概述

MoviePy 是一个用于视频编辑的 Python 模块,可用于进行视频的基本操作(如剪切、连接、标题插入)、视频合成(也称非线性编辑)、视频处理或创建高级效果。


它可以读写最常见的视频格式,包括 GIF。MoviePy 能处理的视频是 ffmpeg 格式的,老猿理解支持的文件类型至少包括:.mp4 .wmv .rm .avi .flv .webm .wav rmvb 。


MoviePy 使用 ffmpeg 读取、导出视频和音频文件,使用 ImageMagick 生成文本和输出 GIF 文件。Python 的快速数字库 Numpy 保证了不同媒体的处理。高级效果和增强使用了 Python 的许多图像处理库(PIL、Scikit-image、scipy 等)。


moviepy 的核心对象是剪辑(clips),包括 AudioClips 和 VideoClips。它们可以修改(剪切、减速、变暗…)或与剪辑混合以形成新剪辑,可以使用 PyGame 或 IPython Notebook 预览,并可以输出到对应类型的文件(如 MP4、GIF、 MP3 等)。例如,VideoClips 可以从视频文件、图像、文本或自定义动画创建。VideoClips 可以有一个音频轨道(这是一个 AudioClip)和一个 mask(一个特殊的 VideoClip,指示当剪辑与其他剪辑混合时要隐藏哪些部分)。


二、moviepy 应用的考量

2.1、moviepy 适用的场景

- 许多视频需要处理或以复杂的方式组合

- 在 web 服务器(Django、Flask 等)上自动创建视频或 gif

- 自动化处理单调乏味的任务如:在跟踪对象中插入标题、剪辑场景、制作片尾字幕(end credits)、字幕等…

- 从另一个 python 库(Matplotlib、Mayavi、Gizeh、scikit images…)生成的图像创建动画

- 对自己的视频特效进行编码,以执行现有视频编辑器无法执行的操作


2.2、使用 moviepy 的好处


- 使用方便:基本操作可以在一行中完成。对于新手来说,代码很容易学习和理解

- 操作灵活:可以完全控制视频和音频的帧,很容易创建自己的效果,非常简单

- 可移植:代码使用非常通用的软件(Numpy 和 FFMPEG),几乎可以在任何带有任意版本的 Python 的机器上运行


2.3、不建议使用 moviepy 场景

以下两种场景使用 moviepy 不是最好的选择:

- 需逐帧进行视频分析(如人脸检测或其他花哨的东西)。这可以通过 MoviePy 与其他库结合来完成,但实际上,只要使用 imageio、OpenCV 或 SimpleCV,这些库就专门处理这些任务

- 只需要转换视频文件,或将一系列图像文件转换为电影。在这种情况下,直接调用 ffmpeg(或 avconv 或 mencoder…)会比通过 MoviePy 更快地提高内存效率


2.4、moviepy 的局限性


- MoviePy 还不能处理流式视频(从网络摄像头读取、或在远程机器上实时渲染视频),也并不是真正为涉及到电影的许多连续帧视频处理而设计(比如视频稳定就需要用别的软件来实现)

- 如果同时使用多个视频、音频和图像源(>100),也可能会出现内存问题,但这将在以后的版本中修复


三、安装

MoviePy 安装非常简单,使用 pip 安装时,请将站点指向国内的镜像站点,否则下载很慢或者下载不下来,老猿使用清华的镜像,指令是:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple moviepy

注意:

1、moviepy 全小写,安装时会自动安装相关依赖包;

2、建议安装最新的版本 1.0.3,因为 1.0.2 中有个比较大的 bug,请见《在Python中使用moviepy进行视频剪辑时输出文件报错 'NoneType' object has no attribute 'stdout'问题》;

3、如果没有安装最新版本,可以执行版本升级,指令:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple moviepy --upgrade


四、后续安排

本部分后续章节内容每章节将逐一分解介绍一个或一类 moviepy 相关的功能,并通过 PyQt 开发对应的图形界面,以此作为一个个 PyQt 实战的程序,但在每章内容中只会简单介绍 PyQt 实现方面的内容,不会详细介绍 PyQt 实现的具体步骤。


更多 moviepy 的介绍请参考《PyQt+moviepy音视频剪辑实战文章目录》。


如果对文章内容存在疑问,可以在博客评论区留言,或关注:老猿 Python 微信公号发消息咨询。


发布于: 2021 年 03 月 22 日阅读数: 16
用户头像

老猿Python

关注

学问无遗力,功夫老始成。 2020.08.21 加入

CSDN 2020年博客之星季军、高级程序员、超50万行C语言项目开发经验 擅长领域:Python语言、PyQt界面程序开发、Moviepy音视频剪辑、OpenCV-Python图像处理、爬虫、5G、区块链、人工智能数学基础

评论

发布
暂无评论
moviepy简介及安装