如何修改视频的“创建媒体日期”?

电脑上有两个视频,拍摄时间均为2012年,手机拍摄的,是以前经百度网盘同步到电脑上的诸多视频里的其中两个。这是前话。

最近发现视频文件属性里的“创建媒体日期”错误(见下图1),变成1970年了,
尝试粗暴地手动更改,却出现错误提示(见下图2),
请问各路大侠有什么方法能修正/修改这个“创建媒体日期”呢?
(备注,文件属性常规项里的“只读”没勾选)

点“常规”标签看看是不是设为只读了

我提供一个思路 winhex打开目录项 目录项里有创建时间 直接修改十六进制值应该可以吧

当然以上只是思路,因为:我已经忘了改哪个值了,如果为了这个再去学习一下winhex和哪个ntfs目录项的含义 感觉代价太高了

试试这个 newfiletime,来自微博 @gaelthas

original=原件=修改前的文件

试了下,Windows 的媒体创建时间取的是CreateDate的值,而不是MediaCreateDate的。
CreateDate就行了,但要追求稳妥,最好把和媒体创建时间相关的三个值都改了:
CreateDateMediaCreateDateTrackCreateDate
因为说不定别的软件读取的就是其他两项。

命令改一下就好:

//媒体创建时间=文件创建时间
exiftool.exe "-CreateDate<FileCreateDate" "d:\test.mp4"
exiftool.exe "-MediaCreateDate<FileCreateDate" "d:\test.mp4"
exiftool.exe "-TrackCreateDate<FileCreateDate" "d:\test.mp4"

//媒体创建时间=自定义时间
exiftool.exe "-CreateDate=2012:12:12 01:23:45" "d:\test.mp4"
exiftool.exe "-MediaCreateDate=2012:12:12 01:23:45" "d:\test.mp4"
exiftool.exe "-TrackCreateDate=2012:12:12 01:23:45" "d:\test.mp4"

命令还得改一下,开启时区转换并设置时区:

exiftool.exe -api "QuickTimeUTC" "-CreateDate=2012:12:12 21:23:45+08:00" "d:\test.mp4"
2 Likes

成功了!只是有个不能理解的小瑕疵,

复制了自定义时间的那三行,修改了目标目录(没有指定文件),其他的没改,

运行批处理文件后,“详细信息”属性卡里的“创建媒体日期”变成“2012/12/12 9:23”,

细看这日期时间,日期与自定义的日期一致,但时间却不一样(我操作的时间是22点20分)

另问一下,MediaCreateDate、TrackCreateDate指的是哪个时间,查看了文件属性里的“常规”卡和“详细信息”卡,均无发现有任何时间修改成对应的那个自定义时间







大意漏了时区设置,之前的命令设置的是本地时间,但系统把这个当作+0 的 UTC 时间来读取并转换成了北京时间(+8)来显示。
命令还得改一下,开启时区转换并设置时区:

exiftool.exe -api "QuickTimeUTC" "-CreateDate=2012:12:12 21:23:45+08:00" "d:\test.mp4"

至于看不到其他两个属性,这很正常。
这三个创建日期都是 QuickTime 格式的属性,Win 只是读取了其中一个。 另外两个其他系统、设备、影音管理/编辑软件可能会读取。
三个一模一样的属性,说白了就是格式标准在进化中产生的历史残留。既然改了,自然是统一比较好。

3 Likes

万分感激!成功完美修改了!

大神,可以给个完整的教程不?我也遇到你一样的问题

你好,请教一下,这个就是创造那个bat文件的代码嘛?

非常宝贵的经验,请问下完整的操作流程是怎样的?可以指导下嘛

其实allor上面的回帖已是教程了啊

建一批处理文件:

//媒体创建时间=文件创建时间

exiftool.exe “-CreateDate<FileCreateDate” “目标目录或目标文件”

exiftool.exe “-MediaCreateDate<FileCreateDate” “目标目录或目标文件”

exiftool.exe “-TrackCreateDate<FileCreateDate” “目标目录或目标文件”



//媒体创建时间=自定义时间2012:12:12 21:23:45

exiftool.exe -api “QuickTimeUTC” “-CreateDate=2012:12:12 21:23:45+08:00” “目标目录或目标文件”

exiftool.exe -api “QuickTimeUTC” “-MediaCreateDate=2012:12:12 21:23:45+08:00” “目标目录或目标文件”

exiftool.exe -api “QuickTimeUTC” “-TrackCreateDate=2012:12:12 21:23:45+08:00” “目标目录或目标文件”

如果需要遍历子文件夹,在 exiftool 后面加上 -r,目标是单一文件则可去掉

前阵子出差拯救世界去了没法上论坛……

12楼(底下标记有 解决方案 那层) 就是最终的命令,命令的具体说明看 8 楼。

至于具体使用过程,可以 Win+Rcmd 进命令提示符输入命令使用,也可以新建一个 txt文件,把命令输入进去,保存后把 .txt 改成 .bat,然后双击执行。

1 Like

你好,我最近也遇到了这种情况。但是按照12楼的办法,怎么都没有办法实现修改 创建媒体时间 不知道哪里出了问题。。我是这样操作的
新建txt文件,将代码复制进去(我将文件名也改成了test.mp4)
//媒体创建时间=文件创建时间
exiftool.exe “-CreateDate<FileCreateDate” “d:\test.mp4”
exiftool.exe “-MediaCreateDate<FileCreateDate” “d:\test.mp4”
exiftool.exe “-TrackCreateDate<FileCreateDate” “d:\test.mp4”
保存,然后修改后缀为bat。然后以管理员身份运行,然后就是无反应。创建媒体时间那一栏,还是空的。
请帮帮我,谢谢

  1. 你得先下载一个 exiftool
  2. 脚本和 exiftool 放在一块
  3. //开头那行是注释(还不是bat格式的注释,需要去掉)
  4. 给我看错误信息才知道到底哪里出问题了

谢谢你,按照之前的那样操作,没有什么错误信息,点击bat直接无提示信息。不过我昨晚后来结合网上的信息,用exfitool gui弄出来了。。。文科生没代码基础,一点点的试错弄出来了。

我是想在视频文件名上添加媒体创建时间,可是试了好多办法都不行,要么各种软件只能读取文件创建时间而不能读取媒体创建时间,要么只支持照片操作,于是就准备将文件创建时间改为媒体创建时间。我的bat文件内写的是:

exiftool.exe -r -api “QuickTimeUTC” “-FileCreateDate<MediaCreateDate” “E:\test”

exiftool.exe -r -api “QuickTimeUTC” “-CreateDate=CreateDate+08:00” “E:\tset”

第一行遍历test文件夹将媒体创建时间赋值给文件创建时间;
第二行遍历test文件夹将文件创建时间加上8小时变成北京时间。
且两行的“-api “QuickTimeUTC””都不能少,至于为什么第一行不能直接在后面加“+08:00”我也说不上来,反正试了没成功。”

注意bat文件要和 exiftool 放在一个文件夹下。

按照步骤还是没反应

简单呀, 你系统上先设置成你要改的日期, 然后呢 只要复制视频到新文件夹,那 创建日期 就被修改为当前日期了.但"修改日期"还是老样子,不要紧,你再右键文件-属性-详细信息里随便改个东西,比如说星标标记等.然后确定, 就ok了.(注意:win10系统只能对mp4,jpg修改详细信息,所以我一看你的视频就知道不是mp4格式的,因为不是mp4的话,不能修改或者修改会出错的)

1 Like