读/写音频/视频文件的元数据

时间:2013-08-15 09:54:24

标签: c# taglib-sharp

我需要一些帮助来读/写音频/ vido文件的元数据信息。我搜索了很多,但没有发现任何有用的东西。 Taglib sharp是一个开源库,提供读/写元数据的帮助。使用标签lib我可以编辑一些值但不是全部。

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

但我无法编辑以下属性,如作者网址,制作人等。我如何编辑这些属性?

2 个答案:

答案 0 :(得分:7)

我以前从未为视频文件做过这个,但我有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文件。

答案 1 :(得分:3)

您需要使用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");