Чтение/запись метаданных аудио/видео файлов

Мне нужна помощь в чтении/записи метаданных аудио/видео файла. Я много искал, но не нашел ничего полезного. Taglib Sharp — это библиотека с открытым исходным кодом, которая помогает в чтении/записи метаданных. Используя тег lib, я могу редактировать некоторые значения, но не все.

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

но я не могу редактировать следующие свойства, такие как URL-адрес автора, производители и т. д. Как я могу редактировать эти свойства ??


person Muhammad Umar    schedule 15.08.2013    source источник
comment
Я думаю, что ответ дан здесь: stackoverflow. ком/вопросы/5337683/   -  person Bob Claerhout    schedule 15.08.2013


Ответы (2)


Я никогда раньше не делал этого для видеофайлов, но у меня есть для 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 (версия 2.3). )

Я не знаю, дают ли видеофайлы тот же диапазон кадров, что и ID3, хотя обратите внимание, что Википедия также говорит (Реализация в форматах, отличных от mp3, и альтернативах)

MP4 также позволяет встраивать тег ID3, и это широко поддерживается.

Так что я предполагаю, что это также работает для файлов mp4, как вы пытаетесь.

person Ben Allred    schedule 15.08.2013
comment
Спасибо, я проверю это и вернусь к вам, если есть какие-либо проблемы. - person Muhammad Umar; 16.08.2013
comment
При использовании файла mp4 тег id3v2 всегда возвращает значение null. - person Muhammad Umar; 16.08.2013
comment
Как насчет другого TagType, например TagType.Id3v1? - person Ben Allred; 16.08.2013
comment
Id3v1 не содержит функции SetTextFrame. - person Muhammad Umar; 18.08.2013
comment
Файлы mp4 содержат tagType Apple без Id3v2 и Id3v1 - person Muhammad Umar; 27.08.2013
comment
@MuhammadUmar, посмотри мой ответ. Надеюсь, это сработает для вас. - person Hannan Hossain; 24.02.2014

Вам нужно будет использовать AppleTag. Это сработает. Для файла mp4 вы должны записать значение в приборную панель. Нравится:

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");
person Hannan Hossain    schedule 24.02.2014
comment
Он отлично работает с файлами mp4. Вы спасли мой день, спасибо - person Farukh Zahoor; 28.11.2016