04, MoviePy api讲解-video.fx

1,990 阅读1分钟

这个模块里提供了许多现成的转换函数, 就讲讲这些函数的作用及使用。 这边会通过代码加效果来展示每个函数的作用, 使讲解得更加清楚。

一般来说: 其定义虽然是: moviepy.video.fx.all.XXX(clip, param1, param2, param3)

我们可以这样使用

# 伪代码
from moviepy.editor import *

video = VideoFileCip('../xxx/xxx.mp4')
out = video.fx(vfx.XXX, param1, param2, param3).fx(vfx.YYY, param1, param2)...
out.write_videofile('../xxx/xxx_out.mp4')

因为不是所有的函数都是有用的, 下面就讲解一些常用的函数。

1, colorx

控制亮度

# coding:utf-8
from moviepy.editor import *

video = VideoFileClip('../demo/result.mp4')

out = video.fx(vfx.colorx, 0.8)

out.write_videofile('../demo/result_colorx.mp4')
-- 处理1 处理2
亮度 0.8 0.2
图片

2, crop

crop(clip, x1=None, y1=None, x2=None, y2=None, width=None, height=None, x_center=None, y_center=None)

返回一个矩形剪辑区域, 参数比较多, 可以有多种组合效果, 剪辑比较灵活

# coding:utf-8
from playutil import *


video = VideoFileClip('../demo/result.mp4')

out = video.fx(vfx.crop, x_center=video.w/2, y_center=video.h/2, width=video.w, height=video.h/3*2)

# out.write_videofile('../demo/result_colorx.mp4')

这是一个视频不同时间的截图, 忽略下, 主要看他的剪辑范围

剪辑前 剪辑后

3, fadein, fadeout

这一对api 表示剪辑逐渐显示和逐渐消失

他们都有2个参数: 第一个参数为消失或者消失持续的时间, 第二个参数为消失后显示的颜色和显示前的颜色

# coding:utf-8
import  cv2
from moviepy.editor import *

from playutil import *

video = VideoFileClip('../demo/result.mp4').set_start(0).set_duration(1)

out = video.fx(vfx.fadein, 1).set_fps(3)

out.write_videofile('../demo/result_colorx.mp4')
# out.write_gif('../demo/fade.gif')