在Windows中使用C#读取视频元数据(标题,描述,年份)

8

大家好,我正在尝试编写一个程序,用于浏览视频文件并从文件元数据中读取标题和描述。我在微软的文档这里找到了所需内容,但如何访问这些函数?在C#中需要哪些命名空间?我非常感谢提供的任何帮助。


1
不确定为什么会有负评;也许有人认为你没有在问题上投入足够的努力?老实说,我和你一样困惑;这个页面没有链接到函数或库。如果你滚动到底部并点击“Shell Metadata Providers”,就会有更多信息,包括一些C++代码。 - Reticulated Spline
让我们关闭这个。6年后,很可能没有一个链接仍然相关。它现在已经与主题无关(推荐第三方库)。 - TomTom
2个回答

8
在您发布的链接中,向下滚动并单击“Shell Metadata Providers”。有更多信息和一些示例C++代码。
以下是其他相关链接: 读写音频/视频文件的元数据

http://www.codeproject.com/Articles/14535/Accessing-WMF-metadata-with-C

https://social.msdn.microsoft.com/Forums/pt-BR/0f36a3b2-4d3d-4842-88a4-bea493bbbace/read-video-filemov-avi-mpg-etc-meta-data?forum=csharpgeneral

https://web.archive.org/web/20170225230114/https://stackoverflow.com/questions/7396265/c-sharp-to-read-properties-of-video-files

抱歉我无法提供更具体的内容,不过看起来一些标签库(例如用于读取MP3元数据的)也可能适用于视频元数据,因为视频的元数据似乎以类似甚至相同的格式存储。话虽如此,您可以尝试使用TagLib#。

https://www.nuget.org/packages/taglib/


1
我使用了TagLib#,目前为止效果很好。然而,我找不到需要使用的内容来获取视频文件的描述标签,我知道标签在那里,因为iTunes在查看视频时可以看到描述标签。如果有人想帮忙,请查看此线程 - Carbongrip

2
我已经编写了一个简单的C#代码(也可以移植到Unity)csatomreader。它经过了速度优化,也可以通过HTTP读取原子。
例如:获取标题:
using (FileStream stream = new FileStream(fileName, FileMode.Open))
{
    var mp4Reader = new AtomReader(stream);
    string value = mp4Reader.GetMetaAtomValue(AtomReader.TitleTypeName);
    Console.WriteLine($"{atomTypeName}: {value}");
}

如果您需要一次获取更多的元数据值,则可以迭代使用ParseAtoms(),例如查看GetMetaAtomValue()源代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接