处理视频时,会遇到想要遮住某一区域的问题,比如去除视频中的logo,二维码,某一段时间出现的场景等等......
方法一、利用ColorClip生成颜色块覆盖
def hide(src, dst):
video = VideoFileClip(video_src)
mask = (ColorClip((220, 200), (255, 255, 255))
.set_positon((1300, 500))
.set_duration(video.duration)
)
CompositeVideoClip([video, mask]).write_videofile(dst)
src:原视频地址
dst:修改后生成新视频地址
(220,200):生成颜色块的大小220*200
(255,255,255):白色,RGB
.set_positon((1300, 500)): 将颜色块放在需要覆盖的位置(1300,500)
.set_duration(video.duration):video.duration是原视频的时长。将颜色块放置的时长设置为视频时长,这样整个视频过程中指定画面都被覆盖。也可以指定具体的时间段,如:
.set_start(start_time).set_end(end_time)
方法二、利用图片覆盖
def hide(video_src, dst):
video = VideoFileClip(video_src)
mask = (ImageClip(image_PATH)
.set_duration(video.duration)
.resize((220,200))
.set_pos((1300, 500)))
CompositeVideoClip([video, mask]).write_videofile(dst)
调用ImageClip模块生成一个clip, image_path 为图片位置
resize:更改图片大小