读写音视频文件元数据

8

我需要一些帮助来读取/编写音频/视频文件的元数据信息。我已经搜索了很多,但没有找到任何有用的东西。Taglib sharp是一个开源库,在读取/编写元数据方面提供帮助。使用tag lib,我能够编辑一些值,但不是所有值。

TagLib.File videoFile = TagLib.File.Create("test.mp4");
videoFile.Tag.Title = "Test";
videoFile.Tag.Comment = "Nothing";

但我无法编辑作者网址、制片人等属性。我该如何编辑这些属性?

我认为答案在这里:https://dev59.com/NG435IYBdhLWcg3wkBBe - Bob Claerhout
2个回答

8

我以前从未为视频文件做过这个,但对于mp3文件是可以的。您可以通过以下方式访问这些帧:

TagLib.File file = TagLib.File.Create(mp3FileName);
file.Tag.Title = "some title"; // you've got this
TagLib.Id3v2.Tag tag = (TagLib.Id3v2.Tag)file.GetTag(TagTypes.Id3v2);
tag.SetTextFrame("WOAR", "some url"); // WOAR = Official artist/performer webpage
file.Save();

您可以在维基百科上找到文本框架标识符的列表: ID3v2 Frame Specification (Version 2.3) 我不知道视频文件是否能提供与ID3相同范围的帧,但请注意,维基百科还说(Implementation in non-mp3s and alternatives
MP4也允许嵌入ID3标签,并且这得到了广泛支持。
因此,我会猜想这对于您正在尝试的mp4文件也有效。

谢谢,我会检查一下,如果有问题会回复您。 - Muhammad Umar
使用mp4文件时,id3v2标签始终返回null。 - Muhammad Umar
另外还有其他的标签类型,比如TagType.Id3v1? - Ben Allred
Id3v1 不包含 SetTextFrame 函数。 - Muhammad Umar
mp4文件包含tagType Apple,没有Id3v2和Id3v1。 - Muhammad Umar
@MuhammadUmar 看看我的回答,希望对你有用。 - Hannan Hossain

5

您需要使用AppleTag。这样会起作用。对于mp4文件,您需要将值写入dashbox中。就像这样:

TagLib.File videoFile = TagLib.File.Create("test.mp4");
TagLib.Mpeg4.AppleTag customTag = (TagLib.Mpeg4.AppleTag)f.GetTag(TagLib.TagTypes.Apple);
customTag.SetDashBox("Producer","Producer1", "value");
f.Save();
f.Dispose();

您可以这样获取值:

var tokenValue = customTag.GetDashBox("Producer", "Producer1");

它对于mp4文件运行良好。你救了我的一天,谢谢。 - Farukh Zahoor

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