
Eu uso o ffmpeg para converter alguns dos meus vídeos que foram gravados em um telefone Android (samsung galaxy s9+):
ffmpeg -i src.mp4 -metadata creation_time="2013-05-02 22:01:04" -c:v libx265 -crf 24 -preset ultrafast -c:a aac -b:a 160k target.mp4
Meu objetivo é manter os metadados após a reencodificação, especialmente o Creation_time.
Quando olho para o MediaInfo, o Creation_time parece estar correto. A data que especifiquei aparece em todos os streams e até na parte do container.
Porém, se eu copiar o arquivo para o meu Samsung, na galeria, ele não será mostrado com essa data, mas sim com a data de modificação (nível do arquivo).
Então, quando altero a data de modificação do arquivo, ela muda no android.
Quando pego um arquivo mp4 que foi gravado pela câmera do telefone e altero a data de modificação do arquivo, a galeria do telefone ainda mostra a data original.
Então, deve haver algo no caminho, como a câmera Samsung armazena as informações de data, ou talvez uma maneira especial de codificar com ffmpeg, para que o Creation_time seja reconhecido pelo Android.
Comparando os dois arquivos com o MediaInfo e observando os carimbos de data e hora, não consigo encontrar nada que possa estar faltando no arquivo codificado.
Alguém tem uma ideia aqui?