性状>创建日期...我认为这意味着视频创建的日期,但最终意识到每次移动,重组,甚至打开文件时日期都会改变。通常,修改日期早于创建日期。 jpeg的日期很容易获得。有没有办法从AVI或MP4文件中获取相同的信息? 感谢您提供的任何信息。
答案 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
注意:如其他答案所述,不能保证此类信息在所有视频文件中可用或以特定格式提供。
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
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)
实际上,在创建视频的那一天,右键单击属性,您会发现非常容易,但是请记住,它仅会提供视频的任何复制日期的详细信息,但是如果您单击了显示详细信息的位置,则只需您需要创建存档的原始日期。请注意,大多数现代设备在拍摄照片和视频时都会产生此信息,而其他设备则不会。