Moviepy-使用Python编辑视频

MoviePy

MoviePy(documentation)是一个用于视频编辑的Python库:剪切、拼接、标题插入、视频合成(也称为非线性编辑)、视频处理和定制效果的创建。请参阅gallery有关用法的一些示例,请参阅

MoviePy可以读写所有最常见的音频和视频格式,包括GIF,并且可以在Windows/Mac/Linux上运行,使用Python3.6+。下面是它在IPython笔记本中的实际应用:

示例

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

.) # Overlay text on video result.write_videofile(“myHolidays_edited.webm”,fps=25) # Many options… “>
from moviepy 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')
             .with_position('center')
             .with_duration(10) )

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

招聘维修员!

随着越来越多的人寻求支持(截至2021年1月,270个公开问题!)所有的MoviePy维护人员看起来都很忙,我们很乐意听到开发人员对帮助和解决一些问题(特别是影响您的问题)或审查拉请求感兴趣的消息。如果您感兴趣,请打开问题或直接与我们联系。谢谢!

安装

MoviePy取决于Python模块NumPyImageioDecorator,以及Proglog,它将在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 setuptools

可选但有用的依赖项

您可以安装moviepy所有依赖项通过以下方式实现:

$ (sudo) pip install moviepy[optional]

ImageMagick不是严格要求的,但如果要合并文本,则需要。它也可以用作GIF的后端,不过您也可以在没有ImageMagick的情况下使用MoviePy创建GIF

安装ImageMagick后,MoviePy将尝试自动检测其可执行文件的路径。如果失败,您仍然可以通过设置环境变量来配置它(请参阅文档)

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

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

  • Python图像库(PIL)或其分支Pillow
  • Scipy(用于跟踪、分段等)如果未安装PIL和OpenCV,可用于调整视频剪辑的大小
  • Scikit Image某些高级图像处理可能需要
  • OpenCV 2.4.6或更新的版本(提供软件包的版本cv2)可能需要用于某些高级图像处理
  • Matplotlib

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

文档

生成文档具有需要安装的其他依赖项

$ (sudo) pip install moviepy[doc]

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

$ 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项目页面

贡献力量

MoviePy是开源软件,最初由Zulko并根据麻省理工学院的执照被释放。该项目托管在GitHub,在这里,每个人都可以贡献、寻求帮助或简单地提供反馈。请阅读我们的Contributing Guidelines有关如何投稿的更多信息,请访问!

你也可以在网上讨论这个项目。RedditGitter对于用法问题和示例,首选这些问题而不是GitHub问题

维护员