根据图片放置剪辑

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

你想做一些像这样复杂的合成吗?

视频地址:https://youtu.be/1hdgNxX-tas

在这个脚本里,我们将使用这个由Inkscape生成的图片:

http://zulko.github.io/moviepy/_images/compo_from_image.jpeg

我们将会发现这张图片的区域和不同的剪辑适配这些区域:

from moviepy.editor import *
from moviepy.video.tools.segmenting import findObjects

# Load the image specifying the regions.
im = ImageClip("../../ultracompositing/motif.png")

# Loacate the regions, return a list of ImageClips
regions = findObjects(im)


# Load 7 clips from the US National Parks. Public Domain :D
clips = [VideoFileClip(n, audio=False).subclip(18,22) for n in
     [ "../../videos/romo_0004.mov",
      "../../videos/apis-0001.mov",
      "../../videos/romo_0001.mov",
      "../../videos/elma_s0003.mov",
      "../../videos/elma_s0002.mov",
      "../../videos/calo-0007.mov",
      "../../videos/grsm_0005.mov"]]

# fit each clip into its region
comp_clips =  [c.resize(r.size)
                .set_mask(r.mask)
                .set_pos(r.screenpos)
               for c,r in zip(clips,regions)]

cc = CompositeVideoClip(comp_clips,im.size)
cc.resize(0.6).write_videofile("../../composition.mp4")

# Note that this particular composition takes quite a long time of
# rendering (about 20s on my computer for just 4s of video).

(注意,有些照片的尺寸是扭曲的,无法照顾到他们的宽高比。这可以由更多的行数改变)