Công cụ EXIF ​​và các tệp video được lưu với dấu thời gian UTC


2

Tôi tò mò liệu có ai có thể cho tôi cái nhìn sâu sắc về vấn đề hiện tại mà tôi đang gặp phải không.

Đối với một số bối cảnh, vợ tôi và tôi có một điện thoại Android (Moto G5 Plus). Các điện thoại đồng bộ hóa tất cả các mục trong thư mục DCIM với Máy chủ Ubuntu của tôi qua SFTP. Các mục được lưu trữ trong thư mục "unsort_pictures". Mỗi đêm, một công việc định kỳ chạy, thực thi một tập lệnh tự động sao chép nội dung từ unsort_pictures sang hình ảnh / năm / tháng. Sau này (sau khi điện thoại tối đa trong không gian) tôi sẽ xóa thư mục unsort_pictures làm bước bảo trì.

Kịch bản, cho bất cứ điều gì nó có giá trị, như sau:

#!/bin/bash
exiftool -overwrite_original_in_place -P -if 'not $CreateDate' '-CreateDate<FileModifyDate' -r /mnt/vault/unsorted_pictures/staging
exiftool -o . '-Directory<CreateDate' -d /mnt/vault/pictures/%Y/%m -r /mnt/vault/unsorted_pictures/staging
exit

Về cơ bản, dòng exiftool đầu tiên sẽ kiểm tra xem CreatDate có tồn tại không. Nếu không, nó sử dụng FileModifyDate để tạo tham số CreateDate. Điều này thực sự chỉ hữu ích cho các hình ảnh được lưu thông qua các cuộc hội thoại trên Hangouts vì Google dường như loại bỏ dữ liệu exif. (?!) Sau đó, dòng exiftool thứ hai thực hiện sao chép + sắp xếp.

Quá trình này là tuyệt vời và tôi rất hài lòng với nó. Mặc dù có một snafu - các tệp video dường như được ghi trong thời gian UTC, trong khi các hình ảnh dường như được ghi lại theo giờ địa phương. Dưới đây là một tệp video đã được chụp, ngay lập tức được chuyển đến máy chủ của tôi và exiftool đã được chạy với nó để kiểm tra tất cả các dấu thời gian.

administrator@vault:/mnt/vault/unsorted_pictures$ exiftool -time:all -s VID_20171225_214456599.mp4
FileModifyDate      : 2017:12:25 21:47:02-05:00
FileAccessDate      : 2017:12:25 21:47:00-05:00
FileInodeChangeDate : 2017:12:25 21:47:02-05:00
CreateDate          : 2017:12:26 02:45:00
ModifyDate          : 2017:12:26 02:45:00
TrackCreateDate     : 2017:12:26 02:45:00
TrackModifyDate     : 2017:12:26 02:45:00
MediaCreateDate     : 2017:12:26 02:45:00
MediaModifyDate     : 2017:12:26 02:45:00

administrator@vault:/mnt/vault/unsorted_pictures$ date
Mon Dec 25 21:47:23 EST 2017

Như bạn có thể thấy, dường như CreatDate được đặt vào một thời điểm trong tương lai. Hơn nữa bên dưới tôi đã chạy lệnh 'ngày' để bạn có thể thấy giờ địa phương hiện tại khi điều này diễn ra. Ở dòng trên, bạn có thể thấy các dấu thời gian kết thúc bằng 05:00, theo hiểu biết của tôi rằng đó là sự khác biệt về thời gian với UTC.

Về câu hỏi thực tế của tôi:

1) Tôi đã thử nhiều ứng dụng camera trên Motorola, nhưng tất cả chúng đều mang lại hành vi giống hệt nhau. Điều này cho thấy rằng đó không phải là một cài đặt dành riêng cho ứng dụng. Có cách nào để giữ cho video của tôi không bị ghi ở định dạng UTC không? Hình ảnh là tốt, nó chỉ là video. Tôi thấy điều này hơi lạ, nhưng tìm kiếm trực tuyến cho thấy nó phổ biến, nhưng tôi chưa nghe và hiểu lý do tại sao.

2) Tôi chắc chắn rằng tôi có thể thêm một số logic trong tập lệnh của mình để chỉ cần sắp xếp hình ảnh thông qua CreatDate và sắp xếp các loại tệp video qua FileModifyDate hoặc thậm chí thêm một số tham số bổ sung để cập nhật lại một cách có hệ thống tất cả các video sau 5 giờ. Nhưng tôi đã tự hỏi, có một phương tiện để exiftool nhìn vào một tập tin mp4 và thừa nhận sự khác biệt thời gian UTC? Tôi biết các tệp video là một quái thú khác và exiftool chủ yếu tập trung vào hình ảnh, nhưng ngay cả khi, exiftool thực hiện công việc tốt như vậy với việc thừa nhận siêu dữ liệu ngay cả trên các video này, tôi nghĩ có thể có cách để điều chỉnh nó để xem thời gian không thuộc UTC. Hoặc có lẽ không có hy vọng nếu điện thoại được ghi trong thời gian UTC. /nhún vai

Có lẽ đây là lý do thậm chí nhiều hơn để sắp xếp theo năm / tháng thay vì năm / tháng / ngày, vì tôi thậm chí sẽ không nói rằng các video được thay đổi trong 5 giờ vì tất cả chúng sẽ nằm trong thư mục của tháng đó. Nhưng tôi vẫn thấy mình bị hấp dẫn bởi điều này và tự hỏi ... tại sao?

Bất kỳ trợ giúp hoặc cái nhìn sâu sắc sẽ được rất nhiều đánh giá cao!

Câu trả lời:


2

Theo Phil Harvey (người tạo ra exiftool), dấu thời gian Quicktime được cho là được đặt thành thời gian UTC theo tiêu chuẩn. Nhưng có vẻ như rất nhiều máy ảnh không làm điều này, vì vậy exiftool không giả sử múi giờ và chấp nhận thời gian như đã viết. Xem đoạn thứ ba dưới thẻ Quicktime

Exiftool bao gồm một tùy chọn để sửa lỗi này. Nếu bạn đang chạy exiftool ver 9.40 trở lên, bạn có thể thêm -api QuickTimeUTCvào lệnh và nó sẽ cho rằng dấu thời gian được viết chính xác là UTC và chuyển đổi chúng thành giờ địa phương.


Chào bạn Cảm ơn vì đầu vào của bạn. Chỉ cần thêm tham số đó vào 'exiftool -time: all -s.' lệnh cho thấy sự khác biệt ngay lập tức. Cảm ơn vì điều đó. Bởi vì tôi là một người tò mò, tôi có xu hướng hỏi ... điều đó không liên quan gì đến bất kỳ chức năng cụ thể nào của QuickTime, phải không? Tôi đoán rằng tôi đã nhìn vào tham số đó ngay từ cái nhìn đầu tiên và nghĩ rằng "nhưng tôi không sử dụng QuickTime ..." Giả định xấu về phía tôi, nhưng nếu bạn có bất kỳ cái nhìn sâu sắc nào về thông số này được đặt tên là Tôi rất muốn nghe. :)
JaSauder

Thêm -g1vào lệnh của bạn để xem các thẻ được nhóm ở đâu (bạn cũng có thể thêm -ađể xem nơi có các thẻ có tên trùng lặp). Siêu dữ liệu video thường được lưu theo tiêu chuẩn Quicktime. Đây không phải là một chức năng cụ thể của QuickTime, chỉ là tiêu chuẩn phổ biến nhất.
StarGeek

Cảm ơn bạn. Tôi chưa bao giờ nghĩ về máy ảnh kỹ thuật số góp phần làm thế nào điều này xảy ra. Với exiftool có cách tiếp cận thận trọng hơn với điều này, tôi đoán rằng lý do là nếu tôi muốn chạy thời gian: tất cả để kiểm tra tất cả các dấu thời gian, nếu tôi đặc biệt xem video, tôi sẽ phải tập thói quen thêm cờ -api QuickTimeUTC vào đó để thời gian mang lại những gì tôi đang theo đuổi. Cuối cùng, như một sự phản ánh nhẹ, tôi đoán siêu dữ liệu là "luôn luôn ở đó", chỉ là cờ này ra lệnh exiftool để hiển thị cho tôi thời gian theo cách mà tôi theo sau. Tôi cho rằng đó là một quan điểm chính xác về kịch bản này?
JaSauder

1
Âm thanh về đúng. Bạn có thể thêm khá nhiều -api QuickTimeUTCbất cứ khi nào bạn muốn giải nén -time:allvì nó sẽ chỉ ảnh hưởng đến các thẻ QuickTime hiếm thấy trong các tệp hình ảnh.
StarGeek

Cảm ơn bạn rất nhiều vì thời gian và cái nhìn sâu sắc của bạn StarGeek. Nó giúp làm sáng tỏ rất nhiều câu hỏi tôi có. Có một cái tốt!
JaSauder
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.