Python+ffmpeg 实现给视频添加字幕

创作灵感

孩子学校经常留作业,需要提交一段录制的视频,视频上要求添加学校、班级、姓名等信息的字幕,手机自带的相机软件字幕添加位置要么只能添加在视频正中,要么无法添加多行文本,要么只能添加在片头或者片尾,不能贯穿整个视频。

很多视频软件可以方便的进行视频编辑,添加文字功能更是简单易用,但是往往需要注册、登录并开通会员。

这样一个简单的功能弄的这么复杂,着实没有必要,所以想着自己做一个简单的小工具,实现这个简单的应用需求。

字幕添加效果

先来看一下效果,

原视频截图:

添加字幕后的视频截图:

功能介绍

主界面

界面非常简单,可以通过输入完整文件路径或者点击浏览按钮选择要添加字幕的视频文件,

选择视频文件

然后,在字幕位置的输入框中输入坐标,比如:30,60,30是横向坐标,60是纵向坐标位置,中间以英文逗号隔开,

设定字幕位置输入字幕信息

最后,点击开始添加按钮进行字幕的添加,在信息输出框内将显示添加字幕过程的输出信息。

添加字幕

添加完成

小结

以上就是这个实用字幕添加工具的介绍,用了一天时间做了这个小工具,为了方便大家使用,已经将这个小工具打包上传到我的下载资源当中,感兴趣的朋友可以下载。由于制作时间有限,只是简单实现了添加字幕功能,目前没有添加字幕颜色、字体、文本大小等设置功能。下方是实用视频签名工具的下载链接:

以Pyinstaller编译版本:

实用视频签名工具

以py2exe编译版本:

简易视频编辑签名工具-操作简单

感谢大家的阅读,欢迎大家使用,大家有好的建议欢迎留言,以便使这个小工具更加好用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/80266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenLayers 精确经过三个点的曲线绘制

OpenLayers 精确经过三个点的曲线绘制 根据您的需求,我将提供一个使用 OpenLayers 绘制精确经过三个指定点的曲线解决方案。对于三个点的情况,我们可以使用 二次贝塞尔曲线 或 三次样条插值,确保曲线精确通过所有控制点。 实现方案 下面是…

Django缓存框架API

这里写自定义目录标题 访问缓存django.core.cache.cachesdjango.core.cache.cache 基本用法cache.set(key, value, timeoutDEFAULT_TIMEOUT, versionNone)cache.get(key, defaultNone, versionNone)cache.add(key, value, timeoutDEFAULT_TIMEOUT, versionNone)cache.get_or_se…

Linux系统管理与编程17:自动化部署ftp服务

兰生幽谷,不为莫服而不芳; 君子行义,不为莫知而止休。 #virtual用户管理:passerbyA、captain和admin三个虚拟用户 # passerbyA只能看,captain可看读写上传,但不能删除。admin全部权限 [rootshell shell]…

2025python学习笔记

一.Python语言基础入门 第一章 01.初识Python Python的起源: 1989年,为了打发圣诞节假期,Gudio van Rossum吉多范罗苏姆(龟叔)决心开发一个新的解释程序(Python维形)1991年,第一个…

STM32单片机的快速成长路径规划

一、基础准备阶段(1-2周) C语言核心技能 重点掌握:指针操作、结构体、枚举、位操作、函数指针(回调函数基础)实践项目:通过51单片机或STM8完成LED控制、按键检测等基础项目,熟悉寄存器配置和调试…

torch.nn.init.uniform_

nn.init.uniform_ 是 PyTorch 中用于初始化张量(tensor)的一个函数,它的作用是将张量的值填充为从均匀分布中采样的随机数。 详细说明: 函数: torch.nn.init.uniform_(tensor, a0., b1.)tensor:需要被初始…

Spring MVC中跨域问题处理

在Spring MVC中处理跨域问题可以通过以下几种方式实现,确保前后端能够正常通信: 方法一:使用 CrossOrigin 注解 适用于局部控制跨域配置,直接在Controller或方法上添加注解。 示例代码: RestController CrossOrigin…

基本句子结构

以下是英语句子五种基本结构的详细解释,并附上系动词的全面分类及示例: ​1. 主谓结构(SV)​ ​结构:主语(Subject) 不及物动词(Intransitive Verb)​核心:…

游戏引擎学习第264天:将按钮添加到分析器

回顾并为今天的工作做铺垫 随着时间的推移,我们的分析器(profiler)变得越来越强大。我通常会问大家是否记得我们要做什么,今天我们要做的似乎是按钮相关的功能。 今天的目标是实现按钮功能。我们从昨天留下的地方继续&#xff0…

大节点是选择自建机房还是托管机房

选择PCDN大节点自建机房还是托管机房,需综合考量资金实力、技术能力、运维需求、业务规模及合规要求。以下为具体分析: 自建机房的适用场景与考量因素 资金与技术门槛高 自建机房需投入服务器、存储、网络设备等硬件,以及机房建设、电力、散…

【SpringBoot】SpringBoot中使用AOP实现日志记录功能

前言一、AOP基本概念二、项目准备三、实现日志记录切面1、创建自定义日志注解2、实现日志切面3、配置AOP 四、使用示例1. 在Controller中使用2. 在Service中使用 六、高级配置1. 日志内容格式化2. 异步日志记录3. 日志脱敏处理 七、代理类生成的核心逻辑问题1: 既然…

linux中的常用命令(一)

目录 常用的快捷键 1- tab键:命令或者路径提示及补全; 2-ctrlc:放弃当前输入,终止当前任务或程序 3-ctrll;清屏 4-ctrlinsert:复制 5-鼠标右键:粘贴; 6-altc:断开连接/ctrlshift r 重新连接 7-alt1/2/3/等:切换回话窗口 8-上下键…

Pycharm(十九)深度学习

一、深度学习概述 1.1 什么是深度学习 深度学习是机器学习中的一种特殊方法,它使用称为神经网络的复杂结构,特别是“深层”的神经网络,来学习和做出预测。深度学习特别适合处理大规模和高维度的数据,如图像、声音和文本。深度学习、机器学习和人工智能之间的关系如下图所…

多视图密集对应学习:细粒度3D分割的自监督革命

原文标题:Multi-view Dense Correspondence Learning (MvDeCor) 引言 在计算机视觉与图形学领域,3D形状分割一直是一个基础且具有挑战性的任务。如何在标注稀缺的情况下,实现对3D模型的细粒度分割?近期,斯坦福大学视觉…

Vue——前端vue3项目使用汉字转拼音

在 Vue3 项目中,可以通过以下 第三方 JavaScript 包 实现汉字转拼音。这些包均兼容 Vue3,且无需依赖后端处理: 推荐方案 1. pinyin-pro 特点:功能强大、支持多音字、声调、拼音匹配、轻量级(~20KB)。安装…

批量统计PDF页数,统计图像属性

软件介绍: 1、支持批量统计PDF、doc\docx、xls\xlsx页数 2、支持统计指定格式文件数量(不填格式就是全部) 3、支持统计JPG、JPEG、PNG图像属性 4、支持统计多页TIF页数、属性 5、支持统计PDF、JPG画幅 统计图像属性 「托马斯的文件助手」…

LeetCode 每日一题 2025/5/5-2025/5/11

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 5/5 790. 多米诺和托米诺平铺5/6 1920. 基于排列构建数组5/7 3341. 到达最后一个房间的最少时间 I5/8 3342. 到达最后一个房间的最少时间 II5/9 3343. 统计平衡排列的数目5…

pytest自动化测试执行环境切换的两种解决方案

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、痛点分析 在实际企业的项目中,自动化测试的代码往往需要在不同的环境中进行切换,比如多套测试环境、预上线环境、UAT环境、线上环…

visual studio 2015 安装闪退问题

参考链接: VS2012安装时启动界面一闪而过问题解决办法 visual studio 2015 安装闪退问题

RocketMQ Kafka区别

架构 ZooKeeper:管理 Broker 注册、分区 Leader 选举及消费者组状态。Broker:存储 Partition数据,每个 Partition 为独立日志文件。Producer/Consumer:通过 ZooKeeper获取路由信息,实现消息分发与消费。 NameServer&am…