MoviePy - 中文文档2-快速上手-MoviePy-预览

快速了解

 下面的内容介绍以下MoviePy适用于何种场景以及MoviePy如何工作。

我需要使用MoviePy吗?

出于以下的情景或原因,我们可能会有使用Python做视频编辑的需求。

*我们有大量的视频需要处理,或者采用复杂的方式将他们拼接。

*我们需要在服务端自动地创建大量视频或者GIF图。

*我们需要在视频中创建视频编辑器中所没有的一些特殊的特效,我们只能敲代码来实现。

*为其他Python库(例如:Matplotlib, Mayavi, Gizeh, scikit-images)生产的图片创建动画效果。

当然,MoviePy并不是万能的,下面这样的需求,MoviePy也无能为力。

*当我们需要逐帧的做图像分析时(例如人脸检测),这真的不是MoviePy的强项,不如使用ImageIO,OpenCV,SimpleCV这样专业的库去处理

*我们仅仅是要将一段视频,或者一系列图片接进一个目标视频中时,我们使用ffmpeg就搞定了,也不用强行使用MoviePy

MoviePy的优点与局限

扫描二维码关注公众号,回复: 2822817 查看本文章

MoviePy在开发之初,就秉承着下面的理念

*简单直观,基本操作一般一行代码搞定。对于初学者,代码很容易理解和学习。

*灵活弹性,开发者拥有对视频或者音频中每一帧的全部控制权,这也使得我们在创建自定义效果时得心应手。

*跨平台,使用的ffmpeg各个平台都有,可以移植到不同的平台运行。

MoviePy的局限性如下:

*不支持流媒体,它也确实不是为了处理这样的视频而设计的。

*当同时使用太多(官网说>100认为提阿多)的视频,音频,或者图片的时候,我们有可能会遇到内存问题。内存问题亟待优化。

代码示例

在一个MoviePy脚本中,我们可以加载视频和音频,然后修改它们,将他们合并,然后把最终结果写入到一个新的文件中。下面的例子,加载视频,在视频中间添加一个标题显示10秒钟,然后把结果写入到一个新的文件内。

# 导入需要的库
from moviepy.editor import *

# 从本地载入视频myHolidays.mp4并截取00:00:50 - 00:00:60部分
clip = VideoFileClip("myHolidays.mp4").subclip(50,60)

# 调低音频音量 (volume x 0.8)
clip = clip.volumex(0.8)

# 做一个txt clip. 自定义样式,颜色.
txt_clip = TextClip("My Holidays 2013",fontsize=70,color='white')

# 文本clip在屏幕正中显示持续10秒
txt_clip = txt_clip.set_pos('center').set_duration(10)

# 把 text clip 的内容覆盖 video clip
video = CompositeVideoClip([clip, txt_clip])

# 把最后生成的视频导出到文件内
video.write_videofile("myHolidays_edited.webm")

MoviePy如何工作

MoviePy使用软件ffmpeg读取和导出视频和音频文件,使用ImageMagick生产文字和GIF图。这些处理过程都有赖于Python强大的数学处理库,高级特效和软件加强用到了许多的Python图像处理库。

基本概念

MoviePy中最核心的对象就是clips 。AudioClips后者VedioClips,开发者可以对clips进行修改(剪切,调速度,调亮度...)或者和其他clip混合拼接到一起。使用PyGame或者IPython NoteBook还可以预览。

VedioClips可以由视频文件,图像,文本或者动画来创建实例。vedio clip可以拥有一个音频轨道(audio clip) 和一个叠加层的vedio clip(这是一个特殊的VedioClip,这意味着,当一个视频和其他VedioClip混合的时候,这个叠加层clip是隐藏的)

一个clip可以被MoviePy中多多种效果作用,比如(clip.resize(width="360")clip.subclip(t1,t2), or clip.fx(vfx.black_white)).

当然,也可以被用户自定义的效果作用。MoviePy实现了许多类似(clip.flclip.fx)这样的方法,可以简便地修改效果。

moviepy.video.tools里面,还可以找到许多好东西,实现很多高级功能,比如跟踪视频中的一个对象,画一些简单的图形,斜线,或者颜色,制作副标题等等效果

最后,即使moviepy没有图形化的用户交互界面,但是在我们高质量地加工我们的视频的时候,我们仍然有很多可以允许很好地控制和调节脚本的预览方式。

QQ群:MoviePy中文 :819718037

猜你喜欢

转载自blog.csdn.net/ucsheep/article/details/81004033