当前位置: 首页 > news >正文

Moviepy模块之视频添加图片水印

文章目录

  • 前言
  • 视频添加图片水印
    • 1.引入库
    • 2.加载视频文件
    • 3.加载水印图片
    • 4.缩放水印图片大小
    • 5.设置水印的位置
      • 5.1 相对于视频的左上角
      • 5.2 相对于视频的左下角
      • 5.3 相对于视频的右上角
      • 5.4 相对于视频的右下角
      • 5.5 相对于视频的左中位置
      • 5.6 相对于视频的正中位置
      • 5.7 相对于视频的右中位置
      • 5.8 相对于视频的中上位置
      • 5.9 相对于视频的中下位置
      • 以上9种位置效果图
      • 5.10 显示在某个点位上
      • 5.11 显示在左边距x、右边距y的位置上
    • 6. 设置水印出现的时间段
      • 6.1 从视频开始到结束
      • 6.2 从第x秒开始到结束
      • 6.3 从第x秒开始到第y秒结束
    • 7. 将水印添加到视频中
    • 8. 保存带有水印的视频文件
  • 总结


前言

大家好,我是空空star,本篇给大家分享一下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模块之视频添加图片水印

文章目录 前言视频添加图片水印1.引入库2.加载视频文件3.加载水印图片4.缩放水印图片大小5.设置水印的位置5.1 相对于视频的左上角5.2 相对于视频的左下角5.3 相对于视频的右上角5.4 相对于视频的右下角5.5 相对于视频的左中位置5.6 相对于视频的正中位置5.7 相对于视频的右中位…...

day35—编程题

文章目录 1.第一题1.1题目1.2思路1.3解题 2.第二题2.1题目2.2思路2.3解题 1.第一题 1.1题目 描述: 今年公司年会的奖品特别给力,但获奖的规矩却很奇葩: 首先,所有人员都将一张写有自己名字的字条放入抽奖箱中;待所有…...

Linux安装Nginx

前言 提示:这里可以添加本文要记录的大概内容: Linux安装Nginx的详细步骤。 一、安装Nginx的相关依赖 1、安装gcc,PCRE pcre-devel,zlib,OpenSSL, 提示:安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境。 PCRE(…...

Qt 项目Mingw编译器转换为VS编译器时的错误及解决办法

错误 在mingw生成的项目,转换为VS编译器时通常会报些以下错误(C4819警告,C2001错误,C2143错误) 原因及解决方式 这一般是由于字符编码引起的,在源代码文件中包含了中文字符导致的。Qt Creator 生成的代码文…...

大学生用什么蓝牙耳机好?2023好用的蓝牙耳机推荐

近几年,蓝牙耳机市场不断扩大,逐渐取代有线耳机成为最受人欢迎的数码产品之一。作为蓝牙耳机主要受众群的大学生,用什么蓝牙耳机比较好呢?下面,我来给大家推荐几款便宜好用的蓝牙耳机,一起来看看吧。 一、…...

【好题】好题分享

1001-四舍五入_牛客竞赛语法入门班数组模拟、枚举、贪心习题 (nowcoder.com) 题目描述 四舍五入是个好东西。比如你只考了45分,四舍五入后你是50分再四舍五入你就是满分啦!qdgg刚考完拓扑。成绩十分不理想。但老师觉得他每天都很认真的听课很不容易。于是…...

three.js 怎么在自动缩放的时候添加动画效果

要在自动缩放的时候添加动画效果可以使用three.js中的Tween.js库。Tween.js提供了一种简单的方式来创建和管理动画,它可以让开发者通过简单的API来控制对象的属性变化,从而实现动画效果。 以下是一个使用Tween.js实现模型缩放动画的示例: 加…...

考虑梯水电站群的水火电节能调度(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

CF914G Sum the Fibonacci

CF914G Sum the Fibonacci 洛谷Sum the Fibonacci 题目大意 给你一个长度为 n n n的数组 s s s,定义五元组 ( a , b , c , d , e ) (a,b,c,d,e) (a,b,c,d,e)是合法的当且仅当: 1 ≤ a , b , c , d , e ≤ n 1\leq a,b,c,d,e\leq n 1≤a,b,c,d,e≤n ( …...

Shell基础入门实战

写在前面 好久没在项目内做自动化了,主要是现阶段在项目内做自动化收益不大,最近开发做batch run的正好缺人,我看了一下代码,就是通过代码读取jar包和远程服务器连接,然后通过shell脚本,向数据库插入数据&a…...

如何进行微服务的技术选型?

本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"! 作者:陈于吉吉|慕课网讲师 随着这几年微服务的火爆,在平时的工作或者技术交流中,我们总能听到哪家公…...

Vue电商项目--应用开发详解

vue-cli脚手架初始化项目 首先,页面上新建一个文件夹。然后打开命令端口 vue create app 选择Default ([Vue 2] babel, eslint) 然后把项目拖拽到vscode中。项目目录看一下 脚手架项目的目录 node_modules:放置项目依赖的地方 public:一般放置一些共用的静态资源&a…...

Lvs负载均衡

系列文章目录 文章目录 系列文章目录一、集群1.集群2. 二、LVS1.LVS简介2.负载均衡的结构3.Lvs调度算法 总结 一、集群 1.集群 集群群集 cluster由多台主机构成的一个整体,提供一个放问入口(IP或域名),集群中的多台主机都干一件事提供一样的服务 负载均…...

JAVAWeb08-手动实现 Tomcat 底层机制+ 自己设计 Servlet

1. 前言 先看一个小案例, 引出对 Tomcat 底层实现思考 1.1 完成小案例 ● 快速给小伙伴完成这个小案例 0. 我们准备使用 Maven 来创建一个 WEB 项目, 老师先简单给小伙伴介绍一下 Maven 是什么, 更加详细的使用,我们还会细讲, 现在先使用一把 先创建…...

非监督学习简单介绍

文章目录 非监督学习简单介绍聚类K-meansHierarchical聚类DBSCAN 降维PCAt-SNE 其他非监督学习技术结论 非监督学习简单介绍 非监督学习是机器学习中的一种方法,其目标是基于数据的内在结构和关系,从而在无标签数据中识别样本的潜在结构和模式。非监督学…...

香港科技大学有什么好的专业?

香港科技大学创办于1991年10月,是一所坐落于香港清水湾半岛的公立研究型大学。大学设有4个学院:工学院、理学院、人文社会科学学院和工商管理学院,还设有2个研究院:香港科技大学公共政策和行政研究生院和香港科技大学霍英东研究院…...

【两个月算法速成】day04

本文以收录专题刷题记录 目录 24. 两两交换链表中的节点 题目链接 思路 代码 19. 删除链表的倒数第 N 个结点 题目链接 思路-双指针 代码 面试题 02.07. 链表相交 题目链接 思路 代码 24. 两两交换链表中的节点 题目链接 力扣 思路 建议使用虚拟节点&#xff0…...

【Python】实战:生成无关联单选问卷 csv《压疮风险评估表》

目录 一、适用场景 二、业务需求 三、Python 文件 (1)创建文件 (2)代码示例 四、csv 文件 一、适用场景 实战场景: 问卷全部为单选题问卷问题全部为必填问题之间无关联关系每个问题的答案分数不同根据问卷全部问…...

rsync 远程删除文件

rsync 远程删除文件 rsync是一个强大的远程数据同步工具,它不仅可以实现远程文件复制,也可以实现远程文件删除。 要使用rsync实现远程删除文件,可以使用如下命令: bash rsync -avz --delete usernameremotehost:/path/to/files /path/to/local/dir这个命令的主要参数: -a:归…...

LinkedBlockingQueue原理

1. 基本的入队出队 public class LinkedBlockingQueue<E> extends AbstractQueue<E>implements BlockingQueue<E>, java.io.Serializable {static class Node<E> {E item;/*** 下列三种情况之一* - 真正的后继节点* - 自己, 发生在出队时* - null, 表…...

Windows音频设备切换神器:AudioSwitch让你的音频管理效率提升300%

Windows音频设备切换神器&#xff1a;AudioSwitch让你的音频管理效率提升300% 【免费下载链接】AudioSwitch Switch between default audio input or output change volume 项目地址: https://gitcode.com/gh_mirrors/au/AudioSwitch 还在为Windows系统下繁琐的音频设备…...

VBA添加超链接:Hyperlinks.Add 方法 完整参数解析

Worksheet.Hyperlinks.Add Cells(j 1, 11), ar(2, j), "", "单击打开&#xff1a;" & ar(1, j), ar(1, j) 每个参数解析、 VBA Hyperlinks.Add 方法 完整参数解析 你这句代码是Excel VBA 给单元格添加超链接的核心语句&#xff0c;我把 Hyperlinks.…...

Gophish钓鱼页面制作指南:从克隆腾讯企业邮箱到数据收集

Gophish钓鱼页面制作实战&#xff1a;从企业邮箱克隆到数据捕获全流程 在企业安全防护体系中&#xff0c;钓鱼攻击模拟演练已成为检验员工安全意识的重要手段。作为开源钓鱼框架的标杆&#xff0c;Gophish以其模块化设计和易用性&#xff0c;成为红队演练的标配工具。本文将深…...

罗技鼠标宏:绝地求生后坐力控制全攻略

罗技鼠标宏&#xff1a;绝地求生后坐力控制全攻略 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 想要在《绝地求生》中实现精准压枪&#xff0c…...

macOS完整安装器下载工具终极指南:轻松获取Big Sur系统安装包

macOS完整安装器下载工具终极指南&#xff1a;轻松获取Big Sur系统安装包 【免费下载链接】DownloadFullInstaller macOS application written in SwiftUI that downloads installer pkgs for the Install macOS Big Sur application. 项目地址: https://gitcode.com/gh_mirr…...

别再用math.atan了!用NumPy的angle函数处理复数相位,效率提升不止一点点

别再用math.atan了&#xff01;用NumPy的angle函数处理复数相位&#xff0c;效率提升不止一点点 在信号处理、图像分析和科学计算领域&#xff0c;复数相位计算是基础但关键的操作。许多开发者习惯性地使用math.atan(y/x)来计算角度&#xff0c;却不知道NumPy提供的angle()函数…...

会议记录差点搞砸,直到遇见这个“录音转文字”神器

上周三下午&#xff0c;我差点因为一场两小时的跨部门评审会被老板“请喝茶”。事情是这样的&#xff1a;作为产品经理&#xff0c;我负责主持一场涉及技术、运营、销售三方的季度复盘会。会上大家争论激烈&#xff0c;我一边控场一边记笔记&#xff0c;结果手忙脚乱——技术总…...

Efinity RISC-V IDE实战指南:FPGA软硬件协同开发与调试

1. 项目概述&#xff1a;为什么你需要关注Efinity RISC-V IDE&#xff1f;如果你正在或即将踏入RISC-V开发的世界&#xff0c;尤其是涉及到FPGA&#xff08;现场可编程门阵列&#xff09;的软硬件协同设计&#xff0c;那么“Efinity RISC-V IDE”这个名字你大概率绕不开。它不是…...

SAP MIRO发票校验时,如何用增强LMR1M001自动检查供应商号?

SAP MIRO发票校验中供应商号自动检查的增强实战指南 在SAP系统中&#xff0c;发票校验(MIRO)是财务流程中的关键环节&#xff0c;而供应商号的准确性直接关系到后续的付款和账务处理。想象一下这样的场景&#xff1a;采购部门创建了一个采购订单&#xff0c;但财务人员在录入发…...

ESP32-S2开发入门:用VSCode远程连接WSL,打造丝滑的嵌入式开发工作流

ESP32-S2开发环境优化&#xff1a;VSCode与WSL的高效协作方案 嵌入式开发工程师常面临跨平台协作的挑战——既需要Linux环境的强大工具链&#xff0c;又依赖Windows的图形界面友好性。本文将揭示如何通过VSCode远程连接WSL&#xff0c;构建一个无缝衔接的ESP32-S2开发环境&…...