moviepy视频添加中文水印

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

背景: 在使用 moviepy 的 TextClip 给视频添加中文水印时,发现指定中文字体后水印无法显示,而英文水印可以正常显示
原因分析: moviepy 的 TextClip 在生成水印时,会将 font 参数通过get_setting拼接到命令行,使用subprocess_call以执行命令的方式交给 ImageMagick 处理

在 Windows 系统下,os.path.join 方法生成的字体路径包含反斜杠(\),但是ImageMagick 只识别正斜杠(/)或 Unix 风格的路径,由于路径分隔符不兼容,ImageMagick 找不到指定的字体文件,导致中文水印无法正常显示
解决办法: 把 Windows 下拼接的字体路径中的反斜杠全部替换为正斜杠replace('\', '/')

可执行代码:

python 复制代码
from moviepy.editor import *
from moviepy.config import change_settings
from moviepy.video.VideoClip import TextClip

from 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
相关推荐
DogDaoDao4 分钟前
深入解析 libaom:AV1 开源编解码库技术分析
google·开源·音视频·视频编解码·hevc·av1·libaom
开开心心就好1 小时前
解决图片无页码添加功能的实用工具
javascript·python·安全·智能手机·pdf·音视频·1024程序员节
EasyCVR11 小时前
国标GB28181视频监控平台EasyCVR行业解决方案深度解读——雪亮工程、智慧城市与智慧交通
人工智能·音视频·智慧城市
“码”力全开13 小时前
打破芯片与协议壁垒:基于 Docker + 边缘计算的 GB28181/RTSP 视频智能管理平台架构设计与源码交付方案
docker·音视频·边缘计算
AI服务老曹21 小时前
解密企业级视频中台:基于 GB28181/RTSP 统一接入与边缘计算的 AI 视频管理平台(附 Docker 部署与源码交付方案)
人工智能·音视频·边缘计算
shandianchengzi21 小时前
【记录】LosslessCut|Linux下配置开源无损剪辑软件 LosslessCut AppImage 命令行启动和设置图标
linux·运维·服务器·音视频·视频·剪辑
zhaoshuzhaoshu1 天前
无线耳机的音频传输时延技术对比总结
音视频
ai产品老杨1 天前
深度解析:基于 Docker 与异构计算的下一代 AI 视频管理平台架构(附 GB28181/RTSP 统一接入与源码交付方案)
人工智能·docker·音视频
hz567891 天前
2026主流RTC音视频SDK选型全解析:性能对比+避坑指南+国产化适配深度横评
云计算·音视频·实时音视频·信息与通信
AI前沿资讯1 天前
哪个AI 3D创作工具更适合视频创作?——2026年V2Fun实战指南
人工智能·3d·音视频