我有很多舊影片檔。當我轉換它們時,它們會得到新的創建(出生)日期。那麼排序和搜尋就不再「有效」了。
如何在轉換後的影片檔案中保留原始影片的建立日期?如果它可以保留所有資訊就更好了?也許甚至只是用轉換後的視訊替換視訊和音訊資料並保留所有其他資料?
答案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
不僅如此,如果您的其中一個轉換出現問題,您不可替代的艾瑪生日影片仍然安全地保存在backup/
目錄中。