変換されたビデオの作成日(生年月日)を保持する

変換されたビデオの作成日(生年月日)を保持する

古いビデオ ファイルがたくさんあります。それらを変換すると、新しい作成 (誕生) 日が取得されます。その後、並べ替えや検索が「機能」しなくなります。

変換されたビデオ ファイルでも元のビデオの作成日を保持するにはどうすればよいでしょうか。すべての情報を保持できればさらに良いでしょうか。ビデオとオーディオのデータを変換されたビデオに置き換え、その他のすべてのデータを保持するだけでも良いでしょうか。

答え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/ディレクトリ内に安全に残ります。

関連情報