花猫壁纸开放平台开发者社区
  • 注册
  • 登录

【MoviePy 中文文档】剪辑变换和效果

返回目录

MoviePy 中有几类剪辑修改:

  • 更改剪辑属性的常见方法有:clip.set_duration、clip.set_audio、clip.set _mask、clip.sett_start 等。

  • 已经实施的效果。像 clip.subclip(t1, t2)(只保留 t1 和 t2 之间的切割)这样非常重要的核心效果被实现为类方法。更高级和不太常见的效果,如 loop(使剪辑在循环中播放)或 time_mirror(使剪辑向后播放)。被放置在 moviepy.video.fx 和 moviepy.audio.fx 的特殊模块中,并使用 clip.fx 方法进行应用,例如 clip-fx(time_mirror)(使剪辑向后播放)、clip.fx(black_white)(将剪辑变黑变白)等。

  • 你可以使用自己创造的效果。

所有这些效果的共同点是它们不在原地:它们不会修改原始剪辑,而是创建一个新剪辑,该剪辑是应用了更改的前一个剪辑的版本。例如:

my_clip = VideoFileClip('some_file.mp4') # 错误做法:什么都不做,更改丢失my_clip.set_start(t = 5) # 正确做法my_new_clip = my_clip.set_start(t = 5)

此外,当你编写 clip.resize(width = 640) 时,它不会立即将效果应用于剪辑的所有帧,而是仅应用于第一帧:只有在需要时(即,当你将整个剪辑写入预览文件时),才会调整所有其他帧的大小。换句话说,创建一个新剪辑既不需要时间,也不需要内存,所有的计算都发生在最终渲染期间。

MoviePy 中的时间表示

我们将看到的许多方法都接受时间作为自变量。例如 clip.subclip(t_start, t_end),它在两次之间剪切片段。对于这些方法,时间可以用秒表示( t_start = 230.54 ),也可以用一对(分,秒)表示( t_start = (3, 50.54) ),用三元组表示(小时,分钟,秒)( t_start = (0, 3, 50.54) )或用字符串表示( t_start = ('00:03:50.54') )。

大多数情况下,当没有提供时间时,它们是猜测的,例如在 clip.subclip(t_start = 50) 中,暗示 t_end 对应于剪辑的结尾,在 clip.subclip(t_end = 20) 中表示 t_start = 0 。如果时间为负数,则视为剪辑结束前的时间:clip.subclip(-20, -10) 在剪辑结束前20秒和结束前10秒之间剪切剪辑。

更改片段属性的方法

clip.fx

假设你有一些函数在剪辑上实现效果,给定剪辑和一些参数的函数,返回一个新剪辑:

effect_1(clip, args1) -> new clipeffect_2(clip, args2) -> new clipeffect_3(clip, args3) -> new clip

其中 args 表示参数或关键字参数。要将这些函数按顺序应用于一个剪辑,您需要编写以下内容:

newclip = effect_3(effect_2(effect_1(clip, args3), args2), args1)
前一篇【MoviePy 中文文档】示例脚本下一篇 【MoviePy 中文文档】混合剪辑
花猫壁纸  |关于花猫壁纸  |组织成员  |情报总局  |广告联盟
依托花猫壁纸技术沉淀,整合花猫壁纸内部核心资源,提供开放内容。
Copyright ©2020-2026 花猫导航 Color Puss All Rights Reserved.