网站首页 > 技术教程 正文
当谈到处理图像、音频和视频文件的元数据时,ExifTool 是一个功能强大的命令行工具
ExifTool 介绍
ExifTool (ExifTool by Phil Harvey)是由 Phil Harvey 开发的免费、开源的工具,用于读取、写入和编辑多媒体文件的元数据信息。它支持众多文件格式,包括图像(如 JPEG、TIFF、PNG)、音频(如 MP3、WAV)和视频(如 MP4、AVI)。ExifTool 能够处理文件的各种元数据,比如拍摄日期、相机型号、地理位置、作者信息等。
什么是Exif
??Exif是可交换图像文件格式(Exchangeable image file format),是一种标准,定义了与数码相机捕获的图像(或其他媒体)有关的信息,用于存储重要的数据,比如相机的曝光、拍摄日期和时间,甚至GPS定位等。在早期,摄影师需要随身携带笔记本来记录重要信息,如日期、快门速度、光圈等,这非常麻烦而且容易出错。如今,每台数码相机都支持Exif,能够将拍摄时的很多参数通过这种格式(Exif)记录到照片中,这些照片(或其他类型的文件)中的额外数据就叫元数据(metadata),它由一系列参数组成,如快门速度、光圈、白平衡、相机品牌和型号、镜头、焦距等等。Exif信息可能会造成隐私泄露(相机型号、位置等),在社会工程学中,Exif也是获取目标信息的一种手段,所以建议在把照片上传到互联网之前先清理Exif数据。
查看图片的GPS
exiftool '-Make=shooter' file.png
exiftool '-Software=shooter' file.png
exiftool -Model='Kodak Hawkeye Instamatic' file.jpg
exiftool -a -u -g1 file.png
exiftool -n -gpslatitude -gpslongitude file.png
exiftool -filename -gpslatitude -gpslongitude -T file.png
检索视频
locat file.mp4
22.81 107.54 56.23 Apple
#ffprobe得到更为丰富的信息
#ffprobe -show_streams -i file.mp4
删除gps信息
exiftool -gps:all= file.png 删除照片所有的gps信息
exiftool "-gps*=" file.png 删除照片一部分gps信息
删除时间信息
exiftool -alldates= -gpsdatestamp= -gpstimestamp= file.jpg
exiftool -a -s -G1 -time:all file.jpg
ExifTool支持的文件类型和标签
- ExifTool支持的文件类型(File Type):参考官网Supported File Types
- ExifTool支持的标签(Tag):参考官网ExifTool Tag Names
安装ExifTool
- Windows:下载ExifTool可执行文件(名为:exiftool-x.x.zip),解压得到exiftool(-k).exe,重命名为exiftool.exe,通过CMD命令行运行。
- Linux:下载ExifTool发行包(名为:Image-ExifTool-x.x.tar.gz),解压后运行./exiftool即可。或通过perl Makefile.PL && make install编译安装。
- MacOS:下载ExifTool安装包(名为ExifTool-x.x.dmg),安装后在终端执行exiftool使用。
??详细的安装文档,参考ExifTool主页安装文档
ExifTool命令格式
?读取:exiftool [OPTIONS] [-TAG...] [--TAG...] FILE...
?写入:exiftool [OPTIONS] -TAG[+-<]=[VALUE]... FILE...
?复制:exiftool [OPTIONS] -tagsFromFile SRCFILE [-SRCTAG[>DSTTAG]...] FILE...
?其他:exiftool [ -ver | -list[w|f|r|wf|g[NUM]|d|x] ]
ExifTool参数一览
标签选项
-TAG or --TAG 提取或排除指定的标签
-TAG[+-^]=[VALUE] 向标签写入新值
-TAG[+-]<=DATFILE 从数据文件读取标签写入文件
-TAG[+-]<SRCTAG 复制标签值(见-tagsFromFile)
-tagsFromFile SRCFILE 复制某文件的标签值
-x TAG (-exclude) 排出指定标签
输入输出文本格式
-args (-argFormat) 将元数据格式化为ExifTool参数
-b (-binary) 以二进制输出元数据
-c FMT (-coordFormat) 设置GPS坐标格式
-charset [[TYPE=]CHARSET] 指定字符编码
-csv[[+]=CSVFILE] 以CSV格式导出/导入标签
-d FMT (-dateFormat) 设置日期/时间的格式
-D (-decimal) 以十进制显示标签ID号
-E,-ex,-ec (-escape(HTML|XML|C))为HTML,XML或C的转义标记值
-f (-forcePrint) 强制打印所有指定的标签
-g[NUM...] (-groupHeadings) 按标签组输出
-G[NUM...] (-groupNames) 打印每个标签的组名
-h (-htmlFormat) 输出为HTML格式
-H (-hex) 以十六进制显示标签ID号
-htmlDump[OFFSET] 生成HTML格式的二进制转储
-j[[+]=JSONFILE] (-json) 以JSON格式导出/导入标签
-l (-long) 使用长2行输出格式(标签、值各一行)
-L (-latin) 使用Windows Latin1编码
-lang [LANG] 设定当前语言
-listItem INDEX 从列表中提取特定项目
-n (--printConv) 不转换,直接打印
-p FMTFILE (-printFormat) 以指定格式输出
-php 将标签导出为PHP数组
-s[NUM] (-short) 简短输出
-S (-veryShort) 非常简短输出
-sep STR (-separator) 设置列表项的分隔符字符串
-sort 按字母顺序对输出进行排序
-struct 启用结构化信息的输出
-t (-tab) 以制表符分隔的列表格式输出
-T (-table) 以表格格式输出
-v[NUM] (-verbose) 打印详细消息
-w[+|!] EXT (-textOut) 写入(或覆盖!)输出的文本文件
-W[+|!] FMT (-tagOut) 为每个标签写入输出文本文件
-Wext EXT (-tagOutExt) 用-W指定要写入的文件类型
-X (-xmlFormat) 使用RDF/XML输出格式
执行选项
-a (-duplicates) 允许提取重复的标签
-e (--composite) 不生成复合标签
-ee (-extractEmbedded) 从嵌入式文件中提取信息
-ext[+] EXT (-extension) 只处理具有指定扩展名的文件
-F[OFFSET] (-fixBase) 修复制造商Makernotes偏移
-fast[NUM] 提取元数据时提高速度
-fileOrder[NUM] [-]TAG 设置文件处理顺序
-i DIR (-ignore) 忽略指定的目录名称
-if[NUM] EXPR 按条件处理文件
-m (-ignoreMinorErrors) 忽略小错误和警告
-o OUTFILE (-out) 设置输出文件或目录名称
-overwrite_original 重命名tmp文件覆盖原始文件
-overwrite_original_in_place 通过复制tmp文件覆盖原始文件
-P (-preserve) 保留文件修改日期/时间
-password PASSWD 处理受保护文件的密码
-progress[:[TITLE]] 显示文件进度计数
-q (-quiet) -q不显示正常消息,-q-q不显示警告
-r[.] (-recurse) 递归处理子目录
-scanForXMP 扫描所有文件以获取XMP
-u (-unknown) 提取未知标签
-U (-unknown2) 提取未知的二进制标签
-wm MODE (-writeMode) 设置用于写入/创建标签的模式
-z (-zip) 读/写压缩信息
其他选项
-@ ARGFILE 从文件中读取命令行参数
-k (-pause) 结束前先暂停
-list[w|f|wf|g[NUM]|d|x] 列出各种exiftool功能
-ver 打印版本号
-- 结束选项
特殊功能
-geotag TRKFILE 从指定的GPS日志对图像进行地理标记
-globalTimeShift SHIFT 移位所有格式化的日期/时间值
-use MODULE 从插件模块添加功能
实用工具
-delete_original[!] 删除"_original"备份
-restore_original 从"_original"备份还原
高级选项
-api OPT[[^]=[VAL]] 设置ExifTool API选项
-common_args 定义通用参数
-config CFGFILE 指定配置文件名
-echo[NUM] TEXT 将文本回显到stdout或stderr
-efile[NUM][!] ERRFILE 保存错误的文件名
-execute[NUM] 一行执行多个命令
-srcfile FMT 处理其他文件来源
-stay_open FLAG 继续阅读-@ argfile,即使在EOF之后
-userParam PARAM[[^]=[VAL]] 设置用户参数 (API UserParam opt)
ExifTool使用示例
几个常用的参数
??-r:递归处理子目录
??-overwrite_original:不备份_original文件,直接覆盖
??-restore_original:恢复备份
??-delete_original:删除备份
读取文件a.jpg的所有元数据
exiftool a.jpg
写入标签artist、值rmnof到文件a.jpg(如果artist已存在将更新其值)
exiftool -artist=rmnof a.jpg
exiftool -artist=rmnof a.jpg b.jpg c.jpg??(同时写入多个文件)
exiftool -artist=rmnof D:/images????(写入目录中所有文件)
exiftool -artist=rmnof D:/images -r???(递归处理子目录)
exiftool -artist="rmnof" -copyright="rmnof.com" a.jpg?(同时写入多个标签)
将创建时间、光圈、快门速度和ISO四项以列表形式保存为out.txt
exiftool -T -createdate -aperture -shutterspeed -iso DIR > out.txt
打印某照片的尺寸和曝光时间
exiftool -s -ImageSize -ExposureTime a.jpg
递归扫描某目录所有照片,将共有的元数据写入相同文件名的txt文件中
exiftool -r -w .txt -common DIR
生成image.raw的缩略图thumbnail.jpg
exiftool -b -ThumbnailImage image.raw > thumbnail.jpg
从a.jpg提取完整的xmp数据记录
exiftool -xmp -b a.jpg> out.xmp
递归删除某目录下所有文件的全部元数据
exiftool -all= -r DIR
读取图像文件的基本信息
exiftool image.jpg
查看特定标签的元数据信息
exiftool -DateTimeOriginal -GPSLatitude image.jpg
修改图像文件的日期信息
exiftool -AllDates="2023:12:01 12:00:00" image.jpg
批量处理文件
exiftool -AllDates="2023:12:01 12:00:00" *.jpg
常用功能:
- 读取元数据信息: ExifTool 可以读取文件的各种元数据,包括 EXIF、XMP、IPTC 等标准和自定义的元数据。
- 编辑和修改元数据: 它允许你修改文件的元数据,比如修改照片的拍摄日期、更改文件描述信息等。
- 批量处理文件: 支持批量处理文件,可以应用相同的元数据修改到多个文件中。
- 修复损坏的元数据: 有时文件的元数据可能损坏,ExifTool 可以尝试修复这些损坏的元数据。
猜你喜欢
- 2024-09-30 eBPF程序注入到内核中的流程,现在就带你研究(上)
- 2024-09-30 衣定云YDY动态 | Efilevol 2020Resort东京男女装
- 2024-09-30 .NET下绕过任意反Dump的方法 跳过fan error
- 2024-09-30 CRA给1700万加拿大人发钱,人均$2000!快查查你有没有拖后腿
- 2024-09-30 东京首间足球时装选卖店 LFY 盛大开幕
- 2024-09-30 春夏女装T恤色彩趋势--超级粉色 粉色t恤显白吗
- 2024-09-30 Blazor 使用拖放(drag and drop)上传文件 , 粘贴文件上传
- 2024-09-30 巧用“记事本”让病毒无效运行 记事本病毒怎么破解
- 2024-09-30 .efiLevol 十周年纪念系列 real10周年纪念
你 发表评论:
欢迎- 05-1613步震撼淘宝大促闪光裂纹破墙立体字PS制作教程
- 05-16AI教程 | 绘制扁平的萌萌哒图标
- 05-160基础学平面设计所需了解的基础常识汇总
- 05-16自学平面设计需要多长时间?十六年职业设计总监告诉你
- 05-16平面设计都要学习哪些内容?
- 05-16李涛PS教程 高手之路PS教程 合成教程 —制作一个小星球
- 05-16Illustrator实例教程:制作炫酷的漩涡效果
- 05-16Illustrator实例教程:利用混合工具制作一朵炫酷的花
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)