我使用 ffmpeg 转换一些在 Android 手机(三星 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
我的目标是,在重新编码后保留元数据,尤其是 creation_time。
当我查看 MediaInfo 时,creation_time 似乎是正确的。我指定的日期出现在所有流中,甚至出现在容器部分中。
但是,如果我将文件复制到三星,在图库中,它不会显示该日期,而是显示修改日期(文件级别)。
因此,当我更改文件的修改日期时,它也会随 android 一起改变。
当我拍摄已由手机相机录制的 mp4 文件并在那里更改文件的修改日期时,手机上的图库仍然显示原始日期。
因此,三星相机存储日期信息的方式一定存在某种问题,或者可能有使用 ffmpeg 进行编码的特殊方式,以便 creation_time 能够被 android 识别。
将两个文件与 MediaInfo 进行比较并查看时间戳,我没有发现编码文件中可能缺少的任何内容。
有人在这里有什么想法吗?