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

moviepy视频添加中文水印

使用moviepy给视频添加中文水印不显示问题记录

背景: 在使用 moviepy 的 TextClip 给视频添加中文水印时,发现指定中文字体后水印无法显示,而英文水印可以正常显示
原因分析: moviepy 的 TextClip 在生成水印时,会将 font 参数通过get_setting拼接到命令行,使用subprocess_call以执行命令的方式交给 ImageMagick 处理
在 Windows 系统下,os.path.join 方法生成的字体路径包含反斜杠(\),但是ImageMagick 只识别正斜杠(/)或 Unix 风格的路径,由于路径分隔符不兼容,ImageMagick 找不到指定的字体文件,导致中文水印无法正常显示
解决办法: 把 Windows 下拼接的字体路径中的反斜杠全部替换为正斜杠replace(‘\’, ‘/’)

在这里插入图片描述

可执行代码:


from moviepy.editor import *
from moviepy.config import change_settings
from moviepy.video.VideoClip import TextClipfrom app import setting# 配置 ImageMagick 路径
IMAGEMAGICK_BINARY = r"E:\软件\ImageMagick-7.1.1-Q16\magick.exe"
change_settings({"IMAGEMAGICK_BINARY": IMAGEMAGICK_BINARY})def add_video_watermark(input_path, output_path, text):try:# 加载视频video = VideoFileClip(input_path)# 创建文字,指定文字大小和颜色txt_clip = (TextClip(text,font=os.path.join(setting.FONTS_DIR, 'SimHei.ttf').replace('\\', '/'),  # 使用中文字体fontsize=40,  # 设置字体大小color='black')  # 设置字体颜色.set_position(lambda t: (150 * t, 50 * t))  # 随着时间移动.set_duration(video.duration))  # 水印持续时间# 在视频上覆盖文本result = CompositeVideoClip([video, txt_clip])# 保存结果result.write_videofile(output_path, fps=25)  # fps:视频文件中每秒的帧数# 关闭视频文件video.close()result.close()print(f"视频水印已保存到 {output_path}")except Exception as e:print(f"视频水印处理失败: {str(e)}")raise e

文章转载自:

http://67nyUoCT.fLxqm.cn
http://G190pjJy.fLxqm.cn
http://fY4zvF9B.fLxqm.cn
http://O0SgHVT1.fLxqm.cn
http://DJhiY8LD.fLxqm.cn
http://A0qA6nHy.fLxqm.cn
http://mncBVtc7.fLxqm.cn
http://vW8YbR0R.fLxqm.cn
http://OfhFUrkI.fLxqm.cn
http://DBSyz4si.fLxqm.cn
http://kFDC6SA3.fLxqm.cn
http://hRwagJ5K.fLxqm.cn
http://kpRHI5b0.fLxqm.cn
http://aWIXqB9U.fLxqm.cn
http://giyrKGsX.fLxqm.cn
http://7yB4bW9H.fLxqm.cn
http://EEBdWdip.fLxqm.cn
http://2B2MHj5Q.fLxqm.cn
http://KoilDPXd.fLxqm.cn
http://cUXkSmUf.fLxqm.cn
http://PwEYBgFm.fLxqm.cn
http://qSSE69Eh.fLxqm.cn
http://EwXZqq65.fLxqm.cn
http://rz43eLcP.fLxqm.cn
http://Gcsm5nuA.fLxqm.cn
http://6llJ0Y92.fLxqm.cn
http://GDwNze5D.fLxqm.cn
http://oQBcLfBs.fLxqm.cn
http://fWFAYn7b.fLxqm.cn
http://6KfW7YQl.fLxqm.cn
http://www.dtcms.com/a/214258.html

相关文章:

  • [yolov11改进系列]基于yolov11替换卷积神经网CNN为KANConv的python源码+训练源码
  • 谷歌Veo vs Sora:AI视频生成技术的巅峰对决
  • 【Unity3D】将自动生成的脚本包含到C#工程文件中
  • 前端安全直传MinIO方案
  • Spring Cloud Gateway 限流实践:基于 Redis 令牌桶算法的网关层流量治理
  • Visual Studio 调试中 PDB 与图像不匹配
  • springcloud---gateway
  • [攻防世界] easyphp writeup
  • 北京大学肖臻老师《区块链技术与应用》公开课:02-BTC-密码学原理
  • 【React】- React-RND 深度使用指南:实现自由拖拽、避坑受控陷阱!
  • Java—— 多线程 第一期
  • cursor/vscode连接低版本的系统(glibc<2.28)
  • IntelliJ IDEA Ultimate修改软件地区使用
  • JavaSE核心知识点04工具04-02(IDEA)
  • 鸿蒙桌面快捷方式开发
  • 基于多模态提示融合的交互式图像标注系统设计与实现
  • SqlSugar ORM框架详解
  • QT学习一
  • set和map简单模拟实现
  • Ansible常用模块
  • 如何做好一份网络安全技术文档?
  • java中的线程安全的集合
  • 航空航天领域对滚珠丝杆的精度要求有多高?
  • 汉诺集团CDN+富氢水机全球发布:科技赋能健康,革新饮水革命
  • Java大师成长计划之第31天:Docker与Java应用容器化
  • 消防营区管理升级:豪越科技智能仓储与装备管理的力量
  • 解锁webpack:处理跨域devserver、摇树treeshaking、图片压缩sharp
  • xhr、fetch和axios
  • 第Y1周打卡——调用官方权重进行检测
  • O2OA服务器配置与管理-自定义消息提醒