求助:如何用FFmpeg批量为目录中MP4文件添加帧号文字水印
批量用FFmpeg给MP4分片添加帧编号文字
需求概述
需要批量处理old目录下的chunk_0.mp4至chunk_19.mp4,为每个视频添加底部居中的帧编号(从1开始),处理后输出到new目录,音频直接复制不重新编码。单文件处理命令已验证可行,以下是批量实现方案:
Windows 批处理脚本
创建batch_process.bat文件,粘贴以下内容:
@echo off setlocal enabledelayedexpansion if not exist "new" mkdir "new" for /L %%i in (0,1,19) do ( ffmpeg -i "old/chunk_%%i.mp4" -vf ^ "drawtext=fontfile=Arial.ttf: text='%%{frame_num}': start_number=1: x=(w-tw)/2: y=h-(2*lh): ^ fontcolor=black: fontsize=20: box=1: boxcolor=white: boxborderw=5" ^ -c:a copy "new/chunk_%%i.mp4" ) echo 批量处理完成! pause
- 双击运行该批处理文件即可自动完成所有分片的处理
^用于换行转义,保证FFmpeg命令格式正确- 脚本会自动创建
new目录(如果不存在)
Linux/macOS Shell 脚本
创建batch_process.sh文件,内容如下:
#!/bin/bash mkdir -p new for i in {0..19}; do ffmpeg -i "old/chunk_$i.mp4" -vf \ "drawtext=fontfile=Arial.ttf: text='%{frame_num}': start_number=1: x=(w-tw)/2: y=h-(2*lh): \ fontcolor=black: fontsize=20: box=1: boxcolor=white: boxborderw=5" \ -c:a copy "new/chunk_$i.mp4" done echo "批量处理完成!"
执行步骤:
- 给脚本添加执行权限:
chmod +x batch_process.sh - 在终端运行脚本:
./batch_process.sh
关键注意事项
- 确保
Arial.ttf字体文件在当前工作目录,或者指定完整路径(例如Windows下C:/Windows/Fonts/Arial.ttf,macOS下/Library/Fonts/Arial.ttf) - 若系统未将FFmpeg加入环境变量,需替换
ffmpeg为FFmpeg的完整安装路径 - 处理过程中若出现字体相关错误,可尝试更换系统中存在的其他字体(如
SimHei.ttf)
内容的提问来源于stack exchange,提问作者spazznolo
相关产品推荐
相关产品推荐

