python 利用moviepy覆蓋視頻中某區域畫面

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章