EXIF Ferramenta e arquivos de vídeo que são salvos com timestamps UTC

0

Estou curioso para saber se alguém poderia me dar algumas dicas sobre um problema atual que estou tendo.

Para algum contexto, minha esposa e eu temos um telefone Android (Moto G5 Plus). Os telefones sincronizam todos os itens na pasta DCIM para o meu servidor Ubuntu por SFTP. Os itens são armazenados em um diretório "unsorted_pictures". Uma vez por noite, um cron job é executado, executando um script que copia automaticamente o conteúdo de unsorted_pictures para imagens / ano / mês. Mais tarde (após o máximo de telefones no espaço), limparei o diretório unsorted_pictures como uma etapa de manutenção.

O script, por qualquer valor, é o seguinte:

#!/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

Então, basicamente, a primeira linha exiftool verifica se o CreateDate existe. Se não, ele usa o FileModifyDate para criar o parâmetro CreateDate. Isso é realmente útil apenas para imagens salvas por meio de conversas do Hangouts, pois o Google parece remover dados exif. (?!) Depois disso, a segunda linha exiftool faz a cópia + ordenação.

Esse processo é incrível e estou muito feliz com isso. Há um snafu embora - os arquivos de vídeo parecem estar gravando no tempo UTC, enquanto as imagens parecem ser gravadas na hora local. Abaixo está um arquivo de vídeo que foi tirado, imediatamente transferido para o meu servidor, e o exiftool foi executado contra ele para verificar todos os carimbos de hora.

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

Como você pode ver, o CreateDate está definido, aparentemente, para um momento futuro. Mais abaixo eu corri o comando 'date' para que você possa ver a hora local atual quando isso aconteceu. Nas linhas superiores, você pode ver os horários que terminam com 05:00, que é o meu entendimento de que é o diferencial de tempo para o UTC.

Em minhas perguntas reais:

1) Eu tentei vários aplicativos de câmera no meu Motorola, mas todos eles produziram exatamente o mesmo comportamento. Isso sugere que não é uma configuração específica do aplicativo. Existe uma maneira de impedir que meus vídeos sejam gravados no formato UTC? As fotos estão bem, são apenas vídeos. Acho isso um pouco estranho, mas a pesquisa on-line sugere que é comum, mas ainda tenho que ouvir e entender o motivo.

2) Tenho certeza que posso adicionar alguma lógica dentro do meu script para simplesmente classificar imagens via CreateDate e classificar tipos de arquivos de vídeo via FileModifyDate, ou até mesmo adicionar algum parâmetro extra para sistematicamente redigitar todos os vídeos em 5 horas. Mas eu comecei a pensar, existe um meio de ter exiftool olhar para um arquivo mp4 e reconhecer a diferença de tempo UTC? Eu sei que os arquivos de vídeo são um animal diferente e exiftool é amplamente focado em imagens, mas mesmo assim, dado exiftool faz um trabalho tão bom com o reconhecimento de metadados, mesmo nesses vídeos, me fez pensar que poderia ser uma maneira de ajustá-lo para ver o hora não UTC. Ou talvez não haja esperança se o telefone estiver gravando no horário UTC. / shrug

Talvez seja mais um motivo para classificar por ano / mês em vez de ano / mês / dia, já que nem vou dizer que os vídeos foram alterados em 5 horas, pois todos estarão no diretório desse mês. Mas ainda assim, eu me sinto intrigado com isso e me perguntando ... por quê?

Qualquer ajuda ou percepção seria muito apreciada!

    
por JaSauders 26.12.2017 / 16:40

1 resposta

2

De acordo com Phil Harvey (criador do exiftool), os timestamps do Quicktime devem ser configurados para o horário UTC de acordo com o padrão. Mas parece que muitas câmeras não fazem isso, então o exiftool não assume um fuso horário e aceita o tempo como está escrito. Consulte o terceiro parágrafo em tags do Quicktime

O Exiftool inclui uma opção para corrigir isso. Se você estiver executando exiftool ver 9.40 ou posterior, você pode adicionar -api QuickTimeUTC ao comando e ele assumirá que os timestamps estão escritos corretamente como UTC e os converterão em horário local.

    
por StarGeek 26.12.2017 / 17:08