修改元数据(音视频/metadata/tag/标签)

本文用途

如何修改一个媒体文件的详细数据比如
标题、作者、艺术家、标记、备注等等

准备工具(exiftool)

能编辑几乎所有数据(讲道理翻外网帖子才看到,不然都不知道有这个工具)
下载地址
在这里插入图片描述

前置基础知识

会使用cmd
会编辑环境变量

使用方法

首先自行下载并配置环境变量,使其在cmd状态下可用。

MP4标签对照表

红色字:输入中文时可能会出现最后一个字消失的问题 或者有更多问题详情见备注。
绿色字:不可写或者个人原因没有研究使用方式。

标签对应中文 标签名 备注
标题 ItemList:Title 文本
副标题 Microsoft:Subtitle 文本
分级 Microsoft:Rating 1-99的整数(不可写)
标记 Microsoft:Category 文本组 用;分割
备注 ItemList:Comment 文本
参与创作的艺术家 ItemList:Artist 文本组 用;分割
ItemList:ContentCreateDate 时间类型 只显示年 格式(YYYY:mm:dd HH:MM:SS)
流派 ItemList:Genre 文本组 用;分割
导演 Microsoft:Director 文本组 用;分割
制作人 Microsoft:Producer 文本组 输入中文的话由于吞字导致无法分割
创作人 Microsoft:Writer 文本组 输入中文的话由于吞字导致无法分割
发布者 Microsoft:Publisher 文本
内容提供商 Microsoft:ContentDistributor 写不进去 具体原因未知 用不上这个tag
创建媒体日期 Quicktime:CreateDate 是时间类型但写不进去 不用这个tag没研究
编码人员 Microsoft:EncodedBy 文本
作者URL Microsoft:AuthorURL 文本
促销URL Microsoft:PromotionURL 文本
版权 Microsoft:Copyright 不可写 且会报Warning
家长分级 Microsoft:ParentalRating 文本
父级分级原因 Microsoft:ParentalRatingReason 不可写 且会报Warning
作曲者 ItemList:Composer 文本组 输入中文的话由于吞字导致无法分割
指挥者 Microsoft:Conductor 文本组 输入中文的话由于吞字导致无法分割
时期 Microsoft:Period 文本
氛围 Microsoft:Mood 文本
部分设置(Part of set) ItemList:DiskNumber 整数
初始调性 Microsoft:InitialKey 文本
每分钟节拍数 ItemList:BeatsPerMinute 整数
保护 Microsoft:IsProtected 不可写 且会报Warning

使用样例

命令行代码
单行命令(不方便看)

exiftool -ItemList:Title=标题 -Microsoft:Subtitle=副标题 -Microsoft:Rating=50 -Microsoft:Category=标记1;标记2 -ItemList:Comment=备注 -ItemList:Artist=参与创作的艺术家1;参与创作的艺术家2 -ItemList:ContentCreateDate="1145:01:04 11:45:14" -ItemList:Genre=流派1;流派2 -Microsoft:Director=导演1;导演2 -Microsoft:Producer=制作人1;制作人2 -Microsoft:Writer=创作人1;创作人2 -Microsoft:Publisher=发布者 -Microsoft:ContentDistributor=内容提供商 -Quicktime:CreateDate="1145:01:04 11:45:14" -Microsoft:EncodedBy=编码人员 -Microsoft:AuthorURL=作者URL -Microsoft:PromotionURL=促销URL -Microsoft:Copyright=版权 -Microsoft:ParentalRating=家长分级 -Microsoft:Microsoft:ParentalRatingReason=父级分级原因 -ItemList:Composer=作曲者 -Microsoft:Conductor=指挥者 -Microsoft:Period=时期 -Microsoft:Mood=氛围 -ItemList:DiskNumber=1 -Microsoft:InitialKey=初始调性 -ItemList:BeatsPerMinute=1 -Microsoft:IsProtected=true %~1
pause

多行命令方便看和修改

exiftool ^
-ItemList:Title=标题 ^
-Microsoft:Subtitle=副标题 ^
-Microsoft:Rating=50 ^
-Microsoft:Category=标记1;标记2 ^
-ItemList:Comment=备注 ^
-ItemList:Artist=参与创作的艺术家1;参与创作的艺术家2 ^
-ItemList:ContentCreateDate="1145:01:04 11:45:14" ^
-ItemList:Genre=流派1;流派2 ^
-Microsoft:Director=导演1;导演2 ^
-Microsoft:Producer=制作人1;制作人2 ^
-Microsoft:Writer=创作人1;创作人2 ^
-Microsoft:Publisher=发布者 ^
-Microsoft:ContentDistributor=内容提供商 ^
-Quicktime:CreateDate="1145:01:04 11:45:14" ^
-Microsoft:EncodedBy=编码人员 ^
-Microsoft:AuthorURL=作者URL ^
-Microsoft:PromotionURL=促销URL ^
-Microsoft:Copyright=版权 ^
-Microsoft:ParentalRating=家长分级 ^
-Microsoft:Microsoft:ParentalRatingReason=父级分级原因 ^
-ItemList:Composer=作曲者 ^
-Microsoft:Conductor=指挥者 ^
-Microsoft:Period=时期 ^
-Microsoft:Mood=氛围 ^
-ItemList:DiskNumber=1 ^
-Microsoft:InitialKey=初始调性 ^
-ItemList:BeatsPerMinute=1 ^
-Microsoft:IsProtected=true ^
%~1
pause

使用后会自动生成后缀为original的备份 如果不想要这个备份添加-overwrite_original指令即可
至此为止你已经可以写入mp4的元数据了(虽然只能写入英文或者有限制的写入中文)

F&Q

我想改的格式不是mp4怎么办?

题外话 其实这个工具原本就是为了 修改图片的元数据而存在的,只是同时能修改mp4而已。
回到主题 你先右键属性 查看详细信息,就知道当前格式能不能修改(大多数都能这么判断 但不是所有),能改的你可以直接手动输入,本文工具是为了批处理。
确定好格式可以修改后,使用命令:

exiftool -a -s -g1 文件地址/文件.XXX >输出路径/信息文件名.txt

就可以在对应的路径生成一个txt,能在文件中看到所有信息,包括当前标签叫什么名字等。
可以通过手动修改元数据,然后导出信息文件来查看哪些标签是你需要的。

我就是想输入中文怎么办?

我也是这么想的,所以用C# 写了工具控制,控制方法来源于社区
工具Git源码

2023年1月10日更新
具体方法请参考社区,由于我自己的项目许久不维护已经非常不好用了,且需要反复读写本地文件也显得很睿智。
如果你会使用C# 请下载TagLib NuGet包,如果不会但还是需要该工具可以留言,也许会考虑出工具。

具体使用方法:

在command.txt写入命令 和cmd命令几乎相同,不同的是用回车分割元素而非空格,下面是具体示例:

-ItemList:Title=标题
-Microsoft:Subtitle=副标题
-Microsoft:Category=标记1;标记2
-ItemList:Comment=备注
-ItemList:Artist=参与创作的艺术家1;参与创作的艺术家2
-ItemList:ContentCreateDate="2000:01:01 11:45:14"
-ItemList:Genre=流派1;流派2
-Microsoft:Director=导演1;导演2
-Microsoft:Producer=制作人1;制作人2
-Microsoft:Writer=创作人1;创作人2
-Microsoft:Publisher=发布者
-Microsoft:ContentDistributor=内容提供商
-Quicktime:CreateDate="2000:01:01 11:45:14"
-Microsoft:EncodedBy=编码人员
-Microsoft:AuthorURL=作者URL
-Microsoft:PromotionURL=促销URL
-Microsoft:ParentalRating=家长分级
-ItemList:Composer=作曲者
-Microsoft:Conductor=指挥者
-Microsoft:Period=时期
-Microsoft:Mood=氛围
-ItemList:DiskNumber=1
-Microsoft:InitialKey=初始调性
-ItemList:BeatsPerMinute=1
%path%

使用%path%来替换mp4的路径,也可以直接指定路径,该功能适用于批处理。

然后运行ExifToolHelper,按照引导选择一个文件夹,然后输入扩展名,这样就会筛选该文件夹下所有以该扩展名结尾的文件,并将文件路径自动带入path,进行批处理。

不能翻墙的从这里下载示例,能翻墙的去git直接下载就行。 示例过旧

猜你喜欢

转载自blog.csdn.net/weixin_44558405/article/details/126015642