MoviePy - 堆叠多个视频文件
在本文中,我们将了解如何在 MoviePy 中堆叠多个视频文件剪辑。 MoviePy 是一个用于视频编辑的Python模块,可用于视频和 GIF 的基本操作。与堆叠多个视频剪辑的串联不同,所有视频文件都像拼贴中的图像一样同时播放。
注意:剪辑不需要是相同的大小。如果它们的大小不同,它们都将出现在一个足够大的剪辑的中心以包含其中最大的一个
In order to do this we will use clips_array method
Syntax : clips_array(clips)
Argument : It takes list of video file clips as argument
Return : It returns VideoFileClip object
下面是实现
Python3
# Import everything needed to edit video clips
from moviepy.editor import *
# loading video dsa gfg intro video and getting only first 5 seconds
clip1 = VideoFileClip("dsa_geek.webm").subclip(0, 5)
# rotating clip1 by 90 degree to get the clip2
clip2 = clip1.rotate(90)
# rotating clip1 by 180 degree to get the clip3
clip3 = clip1.rotate(180)
# rotating clip1 by 270 degree to get the clip4
clip4 = clip1.rotate(270)
# list of clips
clips = [[clip1, clip2],
[clip3, clip4]]
# stacking clips
final = clips_array(clips)
# showing final clip
final.ipython_display(width = 480)
Python3
# Import everything needed to edit video clips
from moviepy.editor import *
# loading video dsa gfg intro video
# getting subclip as video is large
# adding margin to the video
clip1 = VideoFileClip("geeks.mp4").subclip(0, 5).margin(10)
# getting clip2 by mirroring over x axis
clip2 = clip1.fx(vfx.mirror_x)
# getting clip3 by mirroring over y axis
clip3 = clip1.fx(vfx.mirror_y)
# getting clip 4 by resising the clip
clip4 = clip1.resize(0.60)
# clips list
clips = [[clip1, clip2],
[clip3, clip4]]
# stacking clips
final = clips_array(clips)
# showing final clip
final.ipython_display(width = 480)
输出 :
Moviepy - Building video __temp__.mp4.
Moviepy - Writing video __temp__.mp4
Moviepy - Done !
Moviepy - video ready __temp__.mp4
另一个例子
Python3
# Import everything needed to edit video clips
from moviepy.editor import *
# loading video dsa gfg intro video
# getting subclip as video is large
# adding margin to the video
clip1 = VideoFileClip("geeks.mp4").subclip(0, 5).margin(10)
# getting clip2 by mirroring over x axis
clip2 = clip1.fx(vfx.mirror_x)
# getting clip3 by mirroring over y axis
clip3 = clip1.fx(vfx.mirror_y)
# getting clip 4 by resising the clip
clip4 = clip1.resize(0.60)
# clips list
clips = [[clip1, clip2],
[clip3, clip4]]
# stacking clips
final = clips_array(clips)
# showing final clip
final.ipython_display(width = 480)
输出 :
Moviepy - Building video __temp__.mp4.
MoviePy - Writing audio in __temp__TEMP_MPY_wvf_snd.mp3
MoviePy - Done.
Moviepy - Writing video __temp__.mp4
Moviepy - Done !
Moviepy - video ready __temp__.mp4