2013-08-15 10 views
7

Ho bisogno di aiuto nella lettura/scrittura di metadati informativi di file audio/video. Ho cercato molto ma non ho trovato nulla di utile. Taglib sharp è una libreria open source che fornisce aiuto nella lettura/scrittura dei metadati. Usando il tag lib sono in grado di modificare alcuni valori ma non tutti mi piace.Lettura/Scrittura di metadati di file audio/video

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

ma non riesco a modificare le seguenti proprietà come URL di autore, produttori ecc. Come modifico queste proprietà ??

+0

Penso che la risposta qui è dato: http://stackoverflow.com/questions/5337683/how-to-set -estenduto-proprietà-file – BobClaerhout

risposta

7

Non l'ho mai fatto prima per i file video, ma per i file mp3. È possibile ottenere l'accesso a quei fotogrammi così:

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(); 

È possibile trovare un elenco degli identificatori cornice di testo su Wikipedia: ID3v2 Frame Specification (Version 2.3)

Non so se i file video ti danno la stessa gamma di frame che ID3 fa, anche se si noti che Wikipedia dice anche (Implementation in non-mp3s and alternatives)

MP4 consente anche l'incorporamento di un tag ID3, e questo è ampiamente supportato.

Quindi suppongo che questo funzioni anche per i file mp4 come si sta provando.

+0

Grazie lo controllerò e tornerò da te se c'è qualche problema. –

+0

Utilizzando il file mp4, il tag id3v2 restituisce sempre null. –

+0

Che dire di un altro TagType, come TagType.Id3v1? –

3

È necessario utilizzare AppleTag. Questo funzionerà. Per il file mp4 devi scrivere valore in dashbox. Come questo:

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(); 

E si può ottenere il valore in questo modo:

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

Sta funzionando bene per i file mp4. Mi hai salvato la giornata, grazie –

Problemi correlati