“The End” effect — MoviePy 1.0.1 documentation

# “The End” effect

So let’s explain this one: there is a clip with “The End” written in the middle, and above this clip there is the actual movie. The actual movie has a mask which represents a white (=opaque) circle on a black (=transparent) background. At the begining, that circle is so large that you see all the actual movie and you don’t see the “The End” clip. Then the circle becomes progressively smaller and as a consequence you see less of the actual movie and more of the “The End” clip.

    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")