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

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

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

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

没,常规里的“只读”并没有勾选上

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

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

听你这么说感觉有点复杂,于我这半小白有点困难哦

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

这个软件之前试过,它只能修改“常规”卡里的创建时间、访问时间和修改时间,而不能修改“详细信息”卡里的“创建媒体日期”

用修改 Exif/Metadata 的(批量重命名/图片管理)软件来改。

或者下个 ExifTool ,写个脚本来统一创建时间:

exiftool.exe -r "-MediaCreateDate<CreateDate" "d:\test"

命令解释:
-r —— 递归遍历,如果不需要遍历子文件夹或者目标是单一文件则去掉
"-MediaCreateDate<CreateDate" —— 将媒体创建时间的值设为创建时间的值
"d:\test" —— 目标文件夹,也可以是目标文件的路径

1赞

下了exiftool.exe试了一下,未能成功。步骤及结果如下:

0、用NewFileTime修改待修改视频的创建日期为 2012-10-28 11:20
1、下载exiftool.exe,放在 E:\桌面 上
2、新建一个批处理文件 xx.bat,内容是 exiftool.exe “-MediaCreateDate<CreateDate” “E:\桌面\test”,也是放在 E:\桌面 上
3、将待修改视频文件复制到 E:\桌面\test 文件夹里
4、运行xx.bat,瞬间在test文件夹里自动生成名为“原视频名.mp4_original”的文件,大小与原视频一样

新旧文件“详细信息”属性如下图(左旧右新):
2019-03-13_093627
5、拷贝一份新生成的“原视频名.mp4_original”副本,副本“详细信息”里创建日期立马变成拷贝时的日期和时间

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赞

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

复制了自定义时间的那三行,修改了目标目录(没有指定文件),其他的没改,
运行批处理文件后,“详细信息”属性卡里的“创建媒体日期”变成“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赞

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

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

你好,请教一下,这个就是创造那个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赞