"THE-END"特效

原文链接: http://zulko.github.io/moviepy/examples/the_end.html



视频地址:https://youtu.be/sZMyzzGlsc0


让我们来看下这个:

这里这个片段有一个“The End”写在画面的中间,而在这个片段之上,才是真正的视频。真正的视频拥有一个遮罩,其对应一个白色(不透明)圆圈在黑色(透明)背景上。

在视频的最开始,白色圆圈十分的大,以致我们看到的全部是真正的视频,而没有看到“The End”的片段。接着,这个被色圆圈逐渐缩小,因此我们看的真正的视频画面越来越小,“The End”的画面则逐渐出现。



代码如下:

from moviepy.editor import *
from moviepy.video.tools.drawing import circle

clip = VideoFileClip("../../videos/badl-0006.mov", audio=False).\
           subclip(26,31).\
           add_mask()
           
w,h = clip.size

# The mask is a circle with vanishing radius r(t) = 800-200*t               
clip.mask.get_frame = lambda t: circle(screensize=(clip.w,clip.h),
                                       center=(clip.w/2,clip.h/4),
                                       radius=max(0,int(800-200*t)),
                                       col1=1, col2=0, blur=4)


the_end = TextClip("The End", font="Amiri-bold", color="white",
                   fontsize=70).set_duration(clip.duration)

final = CompositeVideoClip([the_end.set_pos('center'),clip],
                           size =clip.size)
                           
final.write_videofile("../../theEnd.avi")