변환된 영상의 생성(생년월일) 날짜 유지

변환된 영상의 생성(생년월일) 날짜 유지

오래된 비디오 파일이 많이 있습니다. 변환하면 새로운 생성(생년월일) 날짜가 표시됩니다. 그러면 정렬 및 검색이 더 이상 '작동'하지 않습니다.

변환된 비디오 파일에서도 원본 비디오의 생성 날짜를 유지하는 방법은 무엇입니까? 모든 정보를 보존할 수 있다면 더욱 좋겠죠? 아마도 비디오 및 오디오 데이터를 변환된 비디오로 교체하고 다른 모든 데이터를 유지할 수도 있을까요?

답변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/.

관련 정보