如何找到实际录制视频(.AVI .MP4)的日期?

时间:2010-06-23 18:59:53

标签: video metadata

性状>创建日期...我认为这意味着视频创建的日期,但最终意识到每次移动,重组,甚至打开文件时日期都会改变。通常,修改日期早于创建日期。 jpeg的日期很容易获得。有没有办法从AVI或MP4文件中获取相同的信息? 感谢您提供的任何信息。

8 个答案:

答案 0 :(得分:6)

视频元数据似乎没有明确定义的标准(与分别有EXIF和ID3 /等的照片和音频文件相比)

有些标签存在,例如标题,作曲家等。如果您在Windows 7(也许是早期版本)资源管理器中选择电影文件或右键单击并查看属性,则可以看到这些文件。我遗憾地找不到录制日期的标签 - 最接近的是Year(整数): - (

以编程方式,您可以使用单个项目中的Taglib Sharp在.NET中读取和写入大多数这些标记。 banshee FTP server上提供了来源和二进制文件。它有一个非常令人印象深刻的格式列表它支持(但是,仍然,确保你在尝试读取或写入标记时捕获异常 - 它会在找到一个它无法理解的文件时抛出,这对我来说几次发生在我的适度集合中家庭录音。)

阅读标签:

using (var f = TagLib.File.Create(@"c:\Path\To\MyVideo.mp4"))
{
    if (f.Tag != null)
    {
        string title = f.Tag.Title;
        Size resolution = new Size(f.Properties.VideoWidth, f.Properties.VideoHeight);
        int year = f.Tag.Year;
        // etc.
    }
}

同样地,将元数据写回文件:

using (var f = TagLib.File.Create(@"c:\Path\To\MyVideo.mp4"))
{
    f.Tag.Title = "My Awesome Movie";
    f.Tag.Year = (uint)2011;
    f.Save();
}

答案 1 :(得分:2)

在许多视频文件中查找日期/时间元数据的快速命令

以下命令在查找各种AVI / MP4视频上的日期/时间元数据方面非常有用:

ffmpeg -i /path/to/video.mp4 -dump

注意:如其他答案所述,不能保证此类信息在所有视频文件中可用或以特定格式提供。

某些AVI文件的缩写示例输出

    Metadata:
      Make            : FUJIFILM
      Model           : FinePix AX655
      DateTime        : 2014:08:25 05:19:45
      JPEGInterchangeFormat:     658
      JPEGInterchangeFormatLength:    1521
      Copyright       :     
      DateTimeOriginal: 2014:08:25 05:19:45
      DateTimeDigitized: 2014:08:25 05:19:45

某些MP4文件的缩写示例输出

  Metadata:
    major_brand     : mp41
    minor_version   : 538120216
    compatible_brands: mp41
    creation_time   : 2018-03-13T15:43:24.000000Z

答案 2 :(得分:1)

该元数据的存在完全取决于编写该文件的应用程序。使用有关文件的元数据(EXIF标记)加载JPG文件非常常见,例如时间戳或摄像机信息或地理位置。 MP3文件中的ID3标签也很常见。但是在视频文件中看到这种元数据并不常见。

如果你只是需要一个工具来手动从文件中读取这些数据,GSpot可能会这样做: http://www.videohelp.com/tools/Gspot

如果你想在代码中读到这个,那么我想每个容器格式都有自己的标准,每个都需要一些研究和实现来支持。

答案 3 :(得分:1)

尝试exiftools或mediainfo,它为您提供文本导出功能。请注意夏令时。

答案 4 :(得分:0)

对我来说,mtime(修改时间)也早于许多(大多数)情况下的创建日期,因为正如你所说,任何重组都会修改创建时间。但是,mtime AFAIUI可准确反映文件内容何时实际更改,因此应准确记录视频捕获日期。

在发现电影文件的元数据失败后,我将基于他们的mtime重命名我的视频,所以我以更强大的方式存储它!

答案 5 :(得分:0)

我发现获取视频或图片的“dateTaken”日期的最佳方法是使用:

 Imports Microsoft.WindowsAPICodePack.Shell
 Imports Microsoft.WindowsAPICodePack.Shell.PropertySystem
 Imports System.IO
 Dim picture As ShellObject = ShellObject.FromParsingName(path)
 Dim picture As ShellObject = ShellObject.FromParsingName(path)
 Dim ItemDate=picture.Properties.System.ItemDate

上面的代码需要shell api,它是Microsoft内部的,并且不依赖于任何其他外部dll。

答案 6 :(得分:0)

我使用了以下在线工具:https://www.get-metadata.com 它允许上传文件并进行分析,然后显示其所有元数据。

答案 7 :(得分:0)

实际上,在创建视频的那一天,右键单击属性,您会发现非常容易,但是请记住,它仅会提供视频的任何复制日期的详细信息,但是如果您单击了显示详细信息的位置,则只需您需要创建存档的原始日期。请注意,大多数现代设备在拍摄照片和视频时都会产生此信息,而其他设备则不会。