我有很多旧视频文件。当我转换它们时,它们会获得新的创建(出生)日期。然后排序和搜索就不再“起作用”了。
如何在转换后的视频文件中保留原始视频的创建日期?如果可以保留所有信息就更好了?也许甚至只用转换后的视频替换视频和音频数据并保留所有其他数据?
答案1
我想到了一些方法。最简单的方法是姓名带有日期/时间的视频,例如,Emmas-birthday-20190722.mp4
并使用文件名来确定视频的拍摄日期。如果您希望日期可排序,那么也许可以使用20190722-Emmas-birthday.mp4
。
另一种方法涉及(喘气)备份你的文件在开始转换过程之前。转换完所有文件后,您可以将转换文件的时间戳重新设置为备份中原始文件的值。
定义一个函数使这变得简单。此示例使用在 FreeBSD 中有效的语法。
setdate()
{
# set file $1 to have same timestamp as file $2
touch -t $(date -r "$2" "+%Y%m%d%H%M.%S") "$1"
}
以下是该函数的用法示例setdate
:
$ ls -ltTr
total 10
-rw------- 1 jim jim 405 Jul 22 14:12:52 2019 foo
-rw------- 1 jim jim 361 Jul 22 14:13:06 2019 bar
-rw------- 1 jim jim 0 Jul 22 16:17:06 2019 farkle
$ setdate farkle bar # sets timestamp of file 'farkle' to be the same as 'bar'
$ ls -ltTr
total 10
-rw------- 1 jim jim 405 Jul 22 14:12:52 2019 foo
-rw------- 1 jim jim 0 Jul 22 14:13:06 2019 farkle
-rw------- 1 jim jim 361 Jul 22 14:13:06 2019 bar
因此,如果您先备份文件:
$ mkdir backup
$ cp -p *.mp4 backup/
然后,在完成所有转换后,您可以:
$ for i in *.mp4; do setdate "$i" "backup/$i"; done
不仅如此,如果您的一次转换出现问题,您不可替代的 Emma 生日视频在backup/
目录中仍然是安全的。