我们如何使用带有moviepy的png中的掩码以及如何指定大小和transperancy?

时间:2018-06-02 20:43:16

标签: masking moviepy

我正在尝试使用带有moviepy的面具。

我想使用像这样的png文件(http://imgur.com/1IGHflk)并将其作为遮罩叠加在视频顶部,这样只有视频的黑色部分才是透明的。

当我使掩模图像的大小与视频完全相同时,我能够使其工作,但我无法弄清楚如何使掩模图像更小。我想拍摄给出的小掩模图像,并将其放置在视频上(进一步我实际上想要拍摄这个掩模图像并将其作为掩模放在几个不同位置的视频上)。

我已经在下面的代码中包含了我尝试执行此操作的代码以及我得到的错误。任何帮助(或只是一个简单的示例链接,显示如何使用moviepy蒙版)。谢谢!

DEFAULT_CLIP_HEIGHT = 406
DEFAULT_CLIP_WIDTH = 720
DEFAULT_FPS = 5
color_clip = ColorClip(size=(DEFAULT_CLIP_WIDTH, DEFAULT_CLIP_HEIGHT), col=((0, 0, 255)))
color_clip = color_clip.set_duration(15)
color_clip = color_clip.set_fps(DEFAULT_FPS)

color_clip2 = ColorClip(size=(DEFAULT_CLIP_WIDTH, DEFAULT_CLIP_HEIGHT), col=((255, 0, 0)))
color_clip2 = color_clip2.set_duration(15)
color_clip2 = color_clip2.set_fps(DEFAULT_FPS)


rounded_border_path = 'mask_sd.png'
mask_clip = ImageClip(rounded_border_path, ismask=True, transparent=True)
mask_clip = mask_clip.set_duration(10)
mask_clip = mask_clip.set_fps(DEFAULT_FPS)
mask_clip = mask_clip.set_position(('center', 'center'))

comp_clip = CompositeVideoClip([mask_clip], bg_color=(255, 255, 255), size=(DEFAULT_CLIP_WIDTH, DEFAULT_CLIP_HEIGHT), ismask=True)

color_clip.mask = comp_clip

comp_clip = CompositeVideoClip([color_clip2, color_clip])

o_path = 'comp_color.mp4'
comp_clip.write_videofile(o_path, fps=DEFAULT_FPS, codec='libx264')

Click to see the Error when executed the above code

0 个答案:

没有答案