大家好,我是空空star,本篇给大家分享一下Moviepy模块之视频添加图片水印。
本篇使用的moviepy版本如下:
Name: moviepy
Version: 1.0.3
from moviepy.editor import *
local = '/Users/kkstar/Downloads/video/'
video = VideoFileClip(local+"demo.mp4")
watermark = ImageClip(local+"demo.png")
watermark = watermark.resize(width=200, height=50)
watermark = watermark.set_position(("left","top"))
watermark = watermark.set_position(("left","bottom"))
watermark = watermark.set_position(("right","top"))
watermark = watermark.set_position(("right","bottom"))
watermark = watermark.set_position(("left","center"))
watermark = watermark.set_position(("center","center"))
watermark = watermark.set_position(("right","center"))
watermark = watermark.set_position(("center","top"))
watermark = watermark.set_position(("center","bottom"))
# 显示在100, 50的位置上
watermark = watermark.set_position((100, 50))
# 显示在距离左边百分之10、距离上边百分之5的位置上
# 效果就是距左为 屏幕宽度*0.1,距上为 屏幕高度*0.05的位置上
watermark = watermark.set_position((0.1, 0.05), True)
watermark = watermark.set_duration(video.duration)
# 从第3秒开始到结束
watermark = watermark.set_duration(video.duration-3).set_start(3)
这里需要注意,如果水印开始时间不是视频开始时间,那么水印的持续时长需要原视频时长减去水印开始时间,不然新的视频会被拉长。
假设原视频5秒,设置水印开始时间是第3秒,如果水印持续时长仍是原视频时长,那么新视频将会是5+3=8秒,当原视频播放完了,还有3秒会是一直显示水印的一个黑屏。
# 水印从第3秒开始到第4秒结束
watermark = watermark.set_duration(4-3).set_start(3).set_end(4)
video_with_watermark = CompositeVideoClip([video, watermark])
video_with_watermark.write_videofile(local+"output_video.mp4")
VideoFileClip
:VideoFileClip是MoviePy中的一个类,用于从视频文件中创建一个Clip对象。
ImageClip
:ImageClip是MoviePy中的一个类,用于创建图像剪辑。ImageClip类的一些常用方法包括resize
(更改图像大小)、set_position
(设置图像位置)和set_duration
(设置图像持续时间)。set_start
方法用于设置开始显示的时间点,set_end
方法用于设置结束显示的时间点。