如何用Exiftool从文件名提取日期批量修改MP4文件元数据?
使用Exiftool批量恢复视频拍摄日期信息
一、批量处理CreateDate的命令
你之前的单文件命令可直接扩展为批量操作,只需将单个文件名替换为通配符或文件夹路径,配合对应参数即可:
- 处理当前目录下所有MP4文件:
exiftool.exe -api QuickTimeUTC "-CreateDate<Filename" *.mp4
- 递归处理目标文件夹(含子文件夹)内所有MP4文件:
exiftool.exe -api QuickTimeUTC "-CreateDate<Filename" -r "目标文件夹路径"
-r参数用于递归遍历子文件夹- 若无需保留原文件备份,可添加
-overwrite_original参数(谨慎操作)
二、修正你最初的DateTimeOriginal命令
你第一条命令报错的原因是正则表达式不完整,且未指定目标文件/文件夹。以下是修正后的批量命令:
仅提取日期(无需时间信息时):
exiftool.exe "-DateTimeOriginal<${filename;s/^PXL_(\d{8})_\d+\.mp4/$1/}" -d "%Y:%m:%d %H:%M:%S" *.mp4
从文件名提取完整日期+时间(更精准):
你的文件名包含8位日期和6位时间(如173346对应17:33:46),可直接提取完整时间戳:
exiftool.exe "-DateTimeOriginal<${filename;s/^PXL_(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2})\d+\.mp4/$1:$2:$3 $4:$5:$6/}" *.mp4
- 正则会精准匹配
PXL_YYYYMMDD_HHMMSSxxxx.mp4格式的文件名,捕获日期和时间后转换为Exif标准的YYYY:MM:DD HH:MM:SS格式
关键注意事项
-api QuickTimeUTC参数必须保留,MP4属于QuickTime格式,其时间戳默认基于UTC,该参数会自动转换为本地时间,避免时间偏差- 处理前建议备份文件,Exiftool默认生成带
_original后缀的备份文件,可通过-overwrite_original关闭备份
内容的提问来源于stack exchange,提问作者user284759393
相关产品推荐
相关产品推荐

