标签归档:animation

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问题

维护员

Manim-用于解释数学视频的动画引擎







Manim是精确编程动画的引擎,设计用于创建解释性的数学视频

注意,Manim有两个版本。这个存储库最初是由3Blue1Brown用于制作这些视频的动画,并提供特定于视频的代码here在2020年,一群开发人员把它分成了现在的community edition,目标是更稳定,更好地测试,更快地响应社区贡献,并在开始时更加友好。看见this page有关更多详细信息,请参阅

安装

Manim在Python 3.6或更高版本上运行(建议使用Python 3.8)

系统要求有FFmpegOpenGLLaTeX(如果要使用LaTeX,则为可选)。对于Linux,Pango以及它的开发头都是必需的。请参阅说明here

Linux

# Install manimgl
pip install manimgl

# Try it out
manimgl

有关更多选项,请查看Using manim下面进一步说明的部分

如果您想要攻击manimlib本身,请克隆此存储库并在目录中执行:

# Install manimgl
pip install -e .

# Try it out
manimgl example_scenes.py OpeningManimExample
# or
manim-render example_scenes.py OpeningManimExample

Windows

  1. Install FFmpeg
  2. 安装LaTeX发行版。MiKTeX是推荐的
  3. 安装剩余的Python包
    git clone https://github.com/3b1b/manim.git
    cd manim
    pip install -e .
    manimgl example_scenes.py OpeningManimExample

Mac OSX

  1. 使用自制软件在终端中安装FFmpeg、LaTeX
    brew install ffmpeg mactex
  2. 使用以下命令安装最新版本的Manim
    git clone https://github.com/3b1b/manim.git
    cd manim
    pip install -e .
    manimgl example_scenes.py OpeningManimExample

虚拟环境安装

  1. 如上所述安装LaTeX
  2. 使用以下命令创建CONDA环境conda create -n manim python=3.8
  3. 使用激活环境conda activate manim
  4. 使用安装Manimglpip install -e .

使用Manim

尝试运行以下命令:

manimgl example_scenes.py OpeningManimExample

这应该会弹出一个播放简单场景的窗口

一些有用的标志包括:

  • -w将场景写入文件的步骤
  • -o将场景写入文件并打开结果的步骤
  • -s跳到末尾,只显示最后一帧
    • -so会将最终帧保存到图像并显示它
  • -n <number>要跳到前面的n‘场景的第8个动画
  • -f要使播放窗口全屏显示,请执行以下操作

有关进一步的配置,请查看customconfig.yml。要添加自定义,您可以编辑此文件,也可以将另一个同名文件“customconfig.yml”添加到运行Manim的任何目录中。例如this is the one为3Blue1Brown录像带。在那里,您可以指定视频应输出到的位置、Manim应在何处查找要读取的图像文件和声音,以及有关样式和视频质量的其他默认设置

翻看一下example scenes来了解它是如何使用的,并且可以随意查看其背后的代码3blue1brown videos来看一组更大的例子。然而,请注意,库的开发通常没有考虑与那些旧视频的向后兼容性。要运行旧项目并保证其工作正常,您必须返回到完成该项目的提交

文档

文档正在进行中,地址为3b1b.github.io/manim还有一个中文版本,由@manim-kindergartendocs.manim.org.cn(中文)

manim-kindergarten编写并收集了一些有用的额外类和一些视频代码manim_sandbox repo

贡献

总是受欢迎的。如上所述,community edition拥有最活跃的贡献生态系统,有测试和持续集成,但这里也欢迎拉入请求。请解释一个给定变化的动机和其影响的例子

许可证

这个项目属于麻省理工学院的许可范围。