目录
- 前言
- 一、漫剧左下角平滑水印 (极致微动版)
- 二、 漫剧边缘环绕水印 (慢速平滑版)
前言
之前发过一篇“使用ffmpeg+python实现自动给视频添加移动水印”,对于视频教学可以,但用在漫剧制作的话,会特别影响观看体验。需提先安装好ffmpeg和设置好环境变量。
单独放一个目录,路径不要有中文,要处理的视频名称不要有中文,水印图片和批处理放在同一个目录下,水印名称“logo.png”
参考水印:

参考目录:

一、漫剧左下角平滑水印 (极致微动版)
@echo off
chcp 65001 >nul
title GPU 编码 - 漫剧左下角平滑水印 (极致微动版)echo ==========================================
echo 🚀 功能:左下角超低频平滑位移水印
echo 🎬 目的:防盗录的同时,最大程度减小视觉干扰
echo ⏱️ 效果:约 2 分钟完成一次极小范围的“呼吸”运动
echo ==========================================:: --- 配置区域 ---
:: 基础边距:距离左侧和底部的像素距离
set "PADDING=60"
:: 移动范围:在 15 像素内微调,确保不遮挡主要画面或字幕
set "MOVE_RANGE=15"
:: 速度系数:0.05 为极慢速,视觉上几乎感知不到在动
set "SPEED=0.05"
:: 输出文件名
set "OUTPUT_FILE=output_bottom_left.mp4":: --- 自动查找视频文件 ---
for %%f in (*.mp4 *.mov *.avi *.mkv) do (if "%%f" neq "%OUTPUT_FILE%" (set "INPUT_FILE=%%f"goto found)
):found
if "%INPUT_FILE%"=="" (echo ❌ 错误:文件夹内未发现视频文件!pauseexit /b
)if not exist "logo.png" (echo ❌ 错误:未找到 logo.png 水印文件! [cite: 2]pauseexit /b
)echo ✅ 匹配视频:%INPUT_FILE%
echo ✅ 目标位置:左下角 (呼吸感微动):: --- 坐标修改说明 ---
:: X 坐标:%PADDING% 确保从左侧开始,sin 函数提供横向平滑波动
:: Y 坐标:H-h-%PADDING% 定位到底部,减去波动值使其产生纵向平移
set "X_COORD=%PADDING%+(%MOVE_RANGE%*(1+sin(t*%SPEED%))/2)"
set "Y_COORD=H-h-%PADDING%-(%MOVE_RANGE%*(1+cos(t*%SPEED%))/2)":: 封装滤镜表达式
set "FILTER=[0:v][1:v]overlay=x='%X_COORD%':y='%Y_COORD%'"echo ⏳ 正在调用显卡硬件加速 (NVENC) 渲染... :: --- 执行渲染命令 ---
:: -c:v h264_nvenc: 使用 NVIDIA 显卡硬件编码
:: -b:v 8M: 针对 1080p 画质的稳定码率
ffmpeg -i "%INPUT_FILE%" -i logo.png -filter_complex "%FILTER%" -c:v h264_nvenc -preset p4 -b:v 8M -c:a aac -y "%OUTPUT_FILE%"if %errorlevel% equ 0 (echo.echo ==========================================echo ✅ 任务完成!保存为:%OUTPUT_FILE%echo ==========================================
) else (echo.echo ❌ 渲染失败,请检查 FFmpeg 路径或显卡驱动。
)pause
二、 漫剧边缘环绕水印 (慢速平滑版)
@echo off
chcp 65001 >nul
title GPU 编码 - 漫剧边缘环绕水印 (慢速平滑版)echo ==========================================
echo 🚀 功能:超低频、慢速平滑的边缘环绕水印
echo 🎬 目的:防盗录的同时,大范围移动增加干扰,速度更慢更平滑
echo ⏱️ 效果:约 10 分钟完成一次画面的边缘椭圆环绕
echo ==========================================:: --- 配置区域 ---
:: 基础边距:距离各边缘的最小像素距离
set "PADDING=60"
:: 速度系数:将速度调至 0.01,使得移动极其缓慢和平滑
set "SPEED=0.01"
:: 输出文件名
set "OUTPUT_FILE=output_edge_slow_orbit.mp4":: --- 自动查找视频文件 ---
for %%f in (*.mp4 *.mov *.avi *.mkv) do (if "%%f" neq "%OUTPUT_FILE%" (set "INPUT_FILE=%%f"goto found)
):found
if "%INPUT_FILE%"=="" (echo ❌ 错误:文件夹内未发现视频文件!pauseexit /b
)if not exist "logo.png" (echo ❌ 错误:未找到 logo.png 水印文件!pauseexit /b
)echo ✅ 匹配视频:%INPUT_FILE%
echo ✅ 目标位置:全画面的边缘慢速环绕:: --- 坐标修改说明 ---
:: X 坐标:以画面中心为基础,结合 cos 产生沿画面边缘的大范围椭圆环绕
:: Y 坐标:以画面中心为基础,结合 sin 产生沿画面边缘的大范围椭圆环绕
set "X_COORD=(W-w)/2+((W-w-2*%PADDING%)/2)*cos(t*%SPEED%)"
set "Y_COORD=(H-h)/2+((H-h-2*%PADDING%)/2)*sin(t*%SPEED%)":: 封装滤镜表达式
set "FILTER=[0:v][1:v]overlay=x='%X_COORD%':y='%Y_COORD%'"echo ⏳ 正在调用显卡硬件加速 (NVENC) 渲染... :: --- 执行渲染命令 ---
ffmpeg -i "%INPUT_FILE%" -i logo.png -filter_complex "%FILTER%" -c:v h264_nvenc -preset p4 -b:v 8M -c:a aac -y "%OUTPUT_FILE%"if %errorlevel% equ 0 (echo.echo ==========================================echo ✅ 任务完成!保存为:%OUTPUT_FILE%echo ==========================================
) else (echo.echo ❌ 渲染失败,请检查 FFmpeg 路径或显卡驱动。
)pause
- end
