FFMPEG - 获取创建和/或修改日期

Posted

技术标签:

【中文标题】FFMPEG - 获取创建和/或修改日期【英文标题】:FFMPEG - Get creation and/or modification date 【发布时间】:2015-10-11 01:13:22 【问题描述】:

我正在努力从我服务器上托管的 MP4 文件中获取修改日期。

我尝试了以下库:

ffmpeg -i video.mp4

没有任何运气。我得到的只是持续时间和其他一些字段,但我无法获得修改日期。我也试过 ffprobe 也没有。

有什么建议吗??

非常感谢

【问题讨论】:

你的意思是unix mdate吗?或者 mp4 规范中的特定元数据字段 - 在这种情况下:哪个?即元数据字段的四字母代码/标签是什么? 我不确定格式。我需要它来存储视频元数据。 我想我可以得到文件附带的任何东西。在所有元数据之间,总是有创建和修改日期,所以我想我可以得到它。 【参考方案1】:

ffprobe 获取creation_time

ffprobe -v quiet input.mp4 -print_format json -show_entries stream=index,codec_type:stream_tags=creation_time:format_tags=creation_time

查看所有标签:

ffprobe -v quiet input.mp4 -print_format json -show_entries stream_tags:format_tags

我找不到对modification_time 的任何引用,因此请考虑使用exiftool 或mediainfo。

【讨论】:

它说 -v 不是 ffprobe 的选项,当我删除它时,它说 -print_format 也是如此 您可能使用的是旧版本。我向您保证,这些参数对于最新版本是正确的。检查ffmpeg.org/ffprobe.html 我没有在输出中得到creation_time @RichardWiseman 只有在格式元数据中才会显示它【参考方案2】:

我检查了你,确实,mp4 在 MDHD 中有一个修改时间条目,但它没有导出(参见 code)。您可以提交enhancement request 以将此元数据功能添加到 FFmpeg,但现在它对您没有帮助,您需要其他工具来读取此字段。

【讨论】:

【参考方案3】:

在输出方面比 aergistal 更简单的替代方法是

$ ffprobe -v quiet -select_streams v:0  -show_entries stream_tags=creation_time -of default=noprint_wrappers=1:nokey=1 input.mp4

它只会像这样打印创建时间:

2020-07-23T11:51:02.000000Z

【讨论】:

【参考方案4】:

如果 ffmpeg 没有为您提供创建日期元数据,则它可能根本不存在于文件中。实用程序“mediainfo”可以显示更多信息,可能值得针对您的 mp4 调查其输出。

【讨论】:

以上是关于FFMPEG - 获取创建和/或修改日期的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg如何获取播放文件总的时间

OSX - 如何从命令行获取文件的创建和修改时间

LUA中如何获取文件创建时间和修改时间

python脚本获取文件的创建于修改日期并计算时间差

获取现有 UILocalNotifications 的列表并修改其日期

如何在 Bash/Debian 中获取文件创建日期/时间?