20190228_155905.mp4
Linux 시스템에는 이름이 비슷 하지만 메타데이터는 없는 MP4 파일이 많이 있습니다 . 이전에 일부 jpg에서 비슷한 문제가 있었고 수동으로 해결했습니다.
exiv2 -M"set Exif.Photo.DateTimeOriginal 2018:09:18 20:11:04" 20180918_201104.jpg
그러나 내가 아는 한 이것은 DateTimeOriginal
비디오가 아닌 이미지에서만 작동합니다. 메타데이터가 있는 비디오에는 Xmp.video.MediaCreateDate
내가 원하는 것과 유사한 필드가 있습니다. 여기에는 Unix 타임스탬프가 포함되어 있는 것 같으니 파일 이름에서 날짜를 가져와서 Unix 타임스탬프로 변환하고 값을 Xmp.video.MediaCreateDate
. 아니면 내가 일을 너무 복잡하게 만들고 있는 걸까?
편집: 확실하지 않은 경우 프로그램이 메타데이터별로 모든 미디어 파일을 정렬할 수 있도록 날짜가 포함된 파일 이름을 사용하여 mp4 파일에 생성 날짜 메타데이터를 설정하고 싶습니다.
답변1
이는 다음을 사용합니다.ffmpeg( sudo apt install ffmpeg
설치) 정확한 파일 이름으로 작동합니다. 이전 파일을 메타데이터가 설정된 새 파일로 대체합니다. && mv "~$f" "$f"
먼저 해당 부분 없이 시도해 보세요 .
$ for f in *.mp4; do ffmpeg -i "$f" -metadata creation_time="${f:0:4}-${f:4:2}-${f:6:2} ${f:9:2}:${f:11:2}:${f:13:2}" -codec copy "~$f" && mv "~$f" "$f"; done
메타데이터를 확인하세요.
$ ffprobe -v quiet 20190228_155905.mp4 -print_format json -show_entries stream=index,codec_type:stream_tags=creation_time:format_tags=creation_time
답변2
또 다른 옵션은 다음을 사용하는 것입니다.exiftool
이 예에서는 먼저 touch
파일 수정 시간 설정을 실행한 후 다음을 수행합니다.
exiftool '-CreateDate<FileModifyDate' \
'-TrackCreateDate<FileModifyDate' \
'-MediaCreateDate<FileModifyDate' \
filename.mp4