Moviepy模块实现视频添加图片水印

2023-05-18 05:05:57 模块 添加 水印

前言

本篇给大家分享一下Moviepy模块之视频添加图片水印。
本篇使用的moviepy版本如下:
Name: moviepy
Version: 1.0.3

视频添加图片水印

1.引入库

from moviepy.editor import *

2.加载视频文件

local = '/Users/kkstar/Downloads/video/'
video = VideoFileClip(local+"demo.mp4")

3.加载水印图片

watermark = ImageClip(local+"demo.png")

4.缩放水印图片大小

watermark = watermark.resize(width=200, height=50)

5.设置水印的位置

5.1 相对于视频的左上角

watermark = watermark.set_position(("left","top"))

5.2 相对于视频的左下角

watermark = watermark.set_position(("left","bottom"))

5.3 相对于视频的右上角

watermark = watermark.set_position(("right","top"))

5.4 相对于视频的右下角

watermark = watermark.set_position(("right","bottom"))

5.5 相对于视频的左中位置

watermark = watermark.set_position(("left","center"))

5.6 相对于视频的正中位置

watermark = watermark.set_position(("center","center"))

5.7 相对于视频的右中位置

watermark = watermark.set_position(("right","center"))

5.8 相对于视频的中上位置

watermark = watermark.set_position(("center","top"))

5.9 相对于视频的中下位置

watermark = watermark.set_position(("center","bottom"))

以上9种位置效果图

5.10 显示在某个点位上

# 显示在100, 50的位置上
watermark = watermark.set_position((100, 50))

5.11 显示在左边距x、右边距y的位置上

# 显示在距离左边百分之10、距离上边百分之5的位置上
# 效果就是距左为 屏幕宽度*0.1,距上为 屏幕高度*0.05的位置上
watermark = watermark.set_position((0.1, 0.05), True)

6. 设置水印出现的时间段

6.1 从视频开始到结束

watermark = watermark.set_duration(video.duration)

6.2 从第x秒开始到结束

# 从第3秒开始到结束
watermark = watermark.set_duration(video.duration-3).set_start(3)

这里需要注意,如果水印开始时间不是视频开始时间,那么水印的持续时长需要原视频时长减去水印开始时间,不然新的视频会被拉长。
假设原视频5秒,设置水印开始时间是第3秒,如果水印持续时长仍是原视频时长,那么新视频将会是5+3=8秒,当原视频播放完了,还有3秒会是一直显示水印的一个黑屏。

6.3 从第x秒开始到第y秒结束

# 水印从第3秒开始到第4秒结束
watermark = watermark.set_duration(4-3).set_start(3).set_end(4)

7. 将水印添加到视频中

video_with_watermark = CompositeVideoClip([video, watermark])

8. 保存带有水印的视频文件

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方法用于设置结束显示的时间点。

到此这篇关于Moviepy模块实现视频添加图片水印的文章就介绍到这了,更多相关Moviepy视频添加水印内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

相关文章