如何在 ffmpeg 中正确设置目标文件的时间戳?

如何在 ffmpeg 中正确设置目标文件的时间戳?

我正在使用 ffmpeg 将多个文件合并为一个文件,但创建文件的最终时间戳自然落在此操作的时间上。我尝试将新文件的时间戳设置为与第一个连接文件具有相同的创建时间戳,为此我使用以下命令:

ffmpeg.input('merge_list.txt', format='concat', safe=False).output(i, c='copy', **{'metadata:s:v:0': 'rotate=0'}, metadata=f'creation_time={creation_time}').run()

还有一些其他修改的元数据,但最重要的是,我在这里修改了创建时间。这种方法的问题是,它所做的只是修改视频元数据,而不是实际的文件元数据,如下所示:

在此处输入图片描述

这里,通过 exiftool:

在此处输入图片描述

尽可能接近地镜像原始文件的时间戳数据(在原始文件中,视频元数据和文件元数据都是准确的)的最佳方法是什么,以使目标文件有效地看起来像原始文件一样“正确”?

答案1

SyncStamper 是一款老款应用,但它是便携式的,因此应该可以在大多数 Windows 版本上运行。对于简单传输创建、修改和访问数据非常有用。

https://moochos.nobody.jp/en/software/syncstamper/index.html

首先,我建议启用最顶部在选项中。

要将创建、修改和访问信息从一个文件转移到另一个文件,只需将带有所需时间戳的文件拖到得到正方形。接下来,将新文件拖到同步正方形。就是这样。

您可以拖动多个文件进行批量同步,但必须将相同数量的文件拖动到每个方格上,并且要同步的文件必须与原始文件位于相同的目录顺序才能正确同步。

相关内容