古いビデオ ファイルがたくさんあります。それらを変換すると、新しい作成 (誕生) 日が取得されます。その後、並べ替えや検索が「機能」しなくなります。
変換されたビデオ ファイルでも元のビデオの作成日を保持するにはどうすればよいでしょうか。すべての情報を保持できればさらに良いでしょうか。ビデオとオーディオのデータを変換されたビデオに置き換え、その他のすべてのデータを保持するだけでも良いでしょうか。
答え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/
ディレクトリ内に安全に残ります。