fudyou 发表于 2024-10-6 03:58:16

FFMPEG随机位置文字水印BAT脚本

@ECHO Off & setlocal enabledelayedexpansion
color 0a
TITLE FFMPEG批量加水印-%cd%
@ md download
@ md video
:start
cls
ECHO.   ┌──────雪球联盟MCN批量视频水印工具──────┐
ECHO.                                 
ECHO.         By:魏枫伦http://www.xqmcn.com
ECHO.                                       
ECHO.          视频路径/download,导出路径/video
ECHO.                               
echo.   └──────雪球联盟MCN批量视频水印工具──────┘
ECHO.
for /f "tokens=1,2 delims==" %%a in ('wmic path Win32_VideoController get Name /value^|findstr "Name"') do (echo %%b | findstr "NVIDIA" >nul &&(
    echo.★本机支持硬件加速,显卡型号:%%b
    set /auser_input=1
) || (
    echo.☆本机不支持硬件加速,默认采用软件编码
    set /auser_input=2
    goto text
))
echo.
ECHO.==========设置开始,保持默认值请直接按回车==========
echo.
ECHO.【须提前准备字体文件"font.ttf"放到:程序所在目录】
echo.
ECHO.▼设置编码方式:【1.Nvida硬件编码(快)】【2.软件编码(慢)】(默认:1):
set user_input=&set /puser_input=
if "%user_input%"==""set /auser_input=1
if "%user_input%"==" "set user_input=&goto start
:text
SET fontFile=%cd%\font.ttf
ifexist %fontFile% ( echo.水印字体存在,继续操作 ) else ( echo.水印字体font.ttf不存在,请先添加 && goto start)
ECHO.
ECHO.▼需要添加的文字水印内容:
set text=&set /ptext=
if "%text%"==""echo.文字未设置,请重新设置 && goto text
if "%text%"==" " set text=&goto start
ECHO.▼水印切换周期(帧):
ECHO.【例:30fps的视频,3秒切换一次,填90】
set during=&set /pduring=
if "%during%"==""set /aduring=150
if "%during%"==" " set during=&goto start
ECHO.▼请填写字体大小(默认40):
set fontsize=&set /pfontsize=
if "%fontsize%"==""set /afontsize=40
if "%fontsize%"==" " set fontsize=&goto start
ECHO.▼请填写水印字体颜色(默认white):
set fontcolor=&set /pfontcolor=
if "%fontcolor%"==""setfontcolor=white
if "%fontcolor%"==" " set fontcolor=&goto start

set shuiyinstr="drawtext=fontfile=font.ttf:fontsize=%fontsize%:fontcolor=%fontcolor%@0.5:text='%text%':x=if(eq(mod(n\,%during%)\,0)\,rand(0\,(W-tw))\,x):y=if(eq(mod(n\,%during%)\,0)\,rand(0\,(H-th))\,y)"

if "%user_input%"=="1" (set bianmastr=-threads 2-vcodec h264_nvenc&& set bianma=硬件编码) else (set bianmastr=-vcodec libx264-preset slow-crf 18   &&set bianma=软件编码)
ECHO.%bianma%-水印文字:%text%-周期%during%-字号%fontsize%-颜色%fontcolor%
ECHO.==========参数设置完成,按任意键开始,输入N重新设置==========
setyes=&set /pyes=
if "%yes%"=="N" goto start
if "%yes%"=="n" goto start
if "%yes%"==" " goto start

for /R %cd%\download\ %%a in (*.mp4 *.flv *.mov *.ts *.mkv) do (TITLE FFMPEG%bianma%-水印%text%-周期%during%-字号%fontsize%-颜色%fontcolor%-已处理!sum!个-【%cd%\%%~na.mp4】&& ffmpeg -i "%%a" -vf %shuiyinstr%%bianmastr%-c:a copy -y "%cd%\video\%%~na.mp4" &&echo.处理"%%~na.mp4结束" && set /a sum+=1 )
TITLE FFMPEG%bianma%完成,%cd%\该目录总共处理!sum!个视频
echo 按任意键退出 & pause
exit

页: [1]
查看完整版本: FFMPEG随机位置文字水印BAT脚本