Skip to main content

使用 Python 进行视频编辑

项目描述

Python 包索引上的 MoviePy 页面 在 Gitter 上讨论 MoviePy 在 travis-ci 上构建状态 在appveyor上建立状态 coveralls.io 的代码覆盖率

MoviePy(完整文档)是一个用于视频编辑的 Python 库:剪切、连接、标题插入、视频合成(也称为非线性编辑)、视频处理和创建自定义效果。有关一些使用示例,请参见图库。

MoviePy 可以读取和写入所有最常见的音频和视频格式,包括 GIF,并在 Windows/Mac/Linux 上运行,使用 Python 2.7+ 和 3(或仅来自 v.1.0 的 Python 3.4+)。它在 IPython 笔记本中运行:

[标识]

例子

在本例中,我们打开一个视频文件,选择 t=50s 和 t=60s 之间的子剪辑,在屏幕中央添加一个标题,并将结果写入一个新文件:

from moviepy.editor import *

video = VideoFileClip("myHolidays.mp4").subclip(50,60)

# Make the text. Many more options are available.
txt_clip = ( TextClip("My Holidays 2013",fontsize=70,color='white')
             .set_position('center')
             .set_duration(10) )

result = CompositeVideoClip([video, txt_clip]) # Overlay text on video
result.write_videofile("myHolidays_edited.webm",fps=25) # Many options...

想要维护者!

随着越来越多的人寻求支持(截至 2019 年 9 月,有 320 个未解决的问题!)并且所有 MoviePy 维护人员似乎都很忙,我们很想听到有兴趣帮助解决一些问题的开发人员(尤其是影响您的)或审查拉取请求。如果您有兴趣,请打开问题或直接联系我们。谢谢!

安装

MoviePy 依赖于 Python 模块NumpyimageioDecoratortq​​dm,它们将在 MoviePy 的安装过程中自动安装。在您第一次使用 MoviePy 时,应自动下载/安装软件 FFMPEG(通过 imageio)(安装需要几秒钟)。如果您想使用特定版本的 FFMPEG,请按照 config_defaults.py 中的说明进行操作。如果遇到问题,请提供反馈。

手动安装:从PyPI下载源代码,或者,如果您想要开发版本,从GitHub下载源代码,将所有内容解压缩到一个文件夹中,打开终端并输入:

$ (sudo) python setup.py install

使用 pip 安装:如果您安装了pip,只需在终端中输入:

$ (sudo) pip install moviepy

如果您既没有安装setuptools也没有安装ez_setup,上述命令将失败。在这种情况下,在安装之前键入:

$ (sudo) pip install ez_setup

可选但有用的依赖项

您可以通过以下方式安装包含所有依赖项的moviepy :

$ (sudo) pip install moviepy[optional]

ImageMagick不是严格要求的,但如果您想合并文本则需要。它也可以用作 GIF 的后端,但您也可以使用 MoviePy 而不使用 ImageMagick 创建 GIF。

安装 ImageMagick 后,MoviePy 会自动检测到它,Windows 除外!Windows 用户在手动安装 MoviePy 之前,需要编辑moviepy/config_defaults.py以提供 ImageMagick 二进制文件的路径,即convert。它应该如下所示:

IMAGEMAGICK_BINARY = "C:\\Program Files\\ImageMagick_VERSION\\convert.exe"

视频和声音预览需要PyGame(如果您打算在服务器上使用 MoviePy,则不相关,但对于手动高级视频编辑必不可少)。

对于高级图像处理,您将需要以下一个或多个软件包:

安装完成后,MoviePy 会自动检测到 ImageMagick(Windows 用户和 Ubuntu 16.04LTS 用户除外)。

对于 Windows 用户,在手动安装 MoviePy 之前,进入moviepy/config_defaults.py文件并提供名为magick的 ImageMagick 二进制文件的路径。它应该如下所示:

IMAGEMAGICK_BINARY = "C:\\Program Files\\ImageMagick_VERSION\\magick.exe"

如果您使用的是旧版本的 ImageMagick,请记住可执行文件的名称不是magick.exe而是convert.exe。在这种情况下,IMAGEMAGICK_BINARY 属性应该是C:\\Program Files\\ImageMagick_VERSION\\convert.exe

对于 Ubuntu 16.04LTS 用户,在终端安装 MoviePy 后,moviepy 不会检测到 IMAGEMAGICK。这个bug是可以修复的。修改该目录下的文件:/etc/ImageMagick-6/policy.xml,注释掉语句<!– <policy domain=”path” rights=”none” pattern=”@*” /> –>。

视频和声音预览需要PyGame(如果您打算在服务器上使用 MoviePy,则无用,但对于手动高级视频编辑确实必不可少)。

例如,使用方法clip.resize需要至少安装 Scipy、PIL、Pillow 或 OpenCV 之一。

文档

运行build_docs具有需要安装的其他依赖项。

$ (sudo) pip install moviepy[docs]

可以通过以下方式生成和查看文档:

$ python setup.py build_docs

您可以将其他参数传递给文档构建,例如 clean build:

$ python setup.py build_docs -E

更多信息可从Sphinx文档中获得。

1.0.0 中的新功能:Proglog 的进度条和消息

在 1.0.0 中引入了非向后兼容的更改,以使用 Proglog管理进度条和消息,这可以在控制台以及 Jupyter 笔记本或任何用户界面(如网站)中显示漂亮的进度条。

要显示笔记本友好的进度条,首先安装 IPyWidgets:

sudo pip install ipywidgets
sudo jupyter nbextension enable --py --sys-prefix widgetsnbextension

然后在笔记本的开头输入:

import proglog
proglog.notebook()

查看 Proglog 项目页面以获取更多选项。

运行测试

为了在本地运行测试套件,首先通过导航到项目目录并运行来安装依赖项:

$ (sudo) pip install moviepy[test]

然后可以通过以下方式执行测试套件:

$ pytest

贡献

MoviePy 是最初由Zulko编写并在 MIT 许可下发布的开源软件。该项目托管在GitHub 上,欢迎每个人贡献、寻求帮助或简单地提供反馈。请阅读我们的贡献指南以获取有关如何贡献的更多信息!

您还可以在RedditGitter上讨论该项目。对于使用问题和示例,这些优先于 GitHub 问题。

维护者

项目详情