處理視頻時,會遇到想要遮住某一區域的問題,比如去除視頻中的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:更改圖片大小