2017-03-01 4 views
3

Ich versuche ein Dienstprogramm zu schreiben, um meine eigenen Informationen gegen aufgezeichnete Videos einzufügen, aber es scheint, dass es keine Bibliothek dafür gibt.Bearbeiten von Metadaten gegen Videodateien

In meinem letzten Versuch dies zu tun, ich Nutzung der TagLib Sharp Bibliothek gemacht, aber dies für Audiodateien geeignet scheint aus:

private void ApplyTags(string p_sFilePath, Result p_Result) 
{ 
    TagLib.File f = TagLib.File.Create(p_sFilePath); 

    f.Tag.Title = p_Result.title; 
    f.Tag.Year = Convert.ToUInt32(p_Result.year); 

    f.Save(); 
} 

Während den Titel und Jahr ausfüllen kann für Video-Dateien arbeiten, Elemente wie "Bewertung", "Mitwirkende Künstler", "Regisseure" usw. werden von TagLib Sharp nicht unterstützt.

Also meine Frage ist, gibt es eine andere Bibliothek da draußen mit einer breiteren Palette von Unterstützung für Videodateien? Wenn nicht, wie würde ich das manuell für MP4 oder AVI machen?

+1

Alternate (fact) weg: http://stackoverflow.com/questions/15300567/alternative-zum-findenmimefromdata-method-in-urlmon-dll-one-which-has-more-mime-typ Ein dupe mit nein Antworten: http://stackoverflow.com/questions/11183093/video-metadata-edit-with-ffmpeg Und das ist die beste Lösung imho: http://stackoverflow.com/questions/11706049/converting-video-formats-and -copying-tags-with-ffmpeg –

+1

Ich benutze generell ffmpeg für alles im Zusammenhang mit Video, es kann tun, was Sie auch brauchen. Es gibt Wrapper für .NET, aber ich bevorzuge es, es nur extern zu nennen. – Evk

+0

Wiki zeigte dies: "Als eine Ableitung des Resource Interchange File Format (RIFF) werden AVI-Dateien häufig mit Metadaten im INFO-Chunk markiert. Außerdem können AVI-Dateien Extensible Metadata Platform (XMP) einbetten." Suchen Sie nach RIFF INFO Bibliotheken: http://www.exiv2.org/doc/classExiv2_1_1RiffVideo.html – vguberinic

Antwort

2

Es gibt verschiedene Möglichkeiten, verschiedene Arten von erweiterten Daten zu speichern.
Alle hier beschriebenen Lösungen sind den im Text angegebenen Links entnommen. Unter den Links finden Sie Details und weitere Informationen.

Im Wesentlichen gibt es drei Möglichkeiten für Sie Ich habe gefunden, wo Sie Ihre Metadaten je nachdem, welche Informationen Sie festlegen möchten, und welche Programme möchten Sie möglicherweise zeigen sie. Aus Ihrer Frage bin ich nicht sicher, was Sie genau suchen, so nehme ich eine Vermutung:

Apfel-Tag
Aus Ihrer Frage könnten Sie am ehesten für diesen suchen bestimmte Werte hinzuzufügen. Es sieht für mich so aus, als wäre das etwas anderes als EXIF, aber ich könnte mich irren (siehe unten für EXIF):
Beispiel hier gefunden https://stackoverflow.com/a/21997119 Schreiben einer Producer Information mit "value". Ich habe es aus Bequemlichkeit kopiert. Gutgeschrieben für @ hannan-hossain. Es sollte zumindest Arbeit für MP4-Dateien:

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

Shell Eigenschaften der Dateien
Dies ist etwas, das für alle Dateien möglich ist, und nicht nur auf Videodateien. Aber einige Informationen im Web verweisen auf diese Art des Hinzufügens von Videoinformationen.
siehe: https://stackoverflow.com/a/2096315 zum Lesen dieser erweiterten Eigenschaften.

EXIF-Daten
TagLib-Sharp schreibt Daten EXIF. Wenn Sie Werte fehlen und suchen tatsächlich für sie Sie vielleicht einen Blick auf dieses Projekt-Code zu sehen, wie neue Werte codieren oder vielleicht taglib scharfe Unterstützung sie machen: https://www.codeproject.com/Articles/27242/ExifTagCollection-An-EXIF-metadata-extraction-libr

Mehr Infos
Diese Frage hat eine schöne Reihe von Antworten, die noch mehr Möglichkeiten zum Zugriff auf Metadaten mit verschiedenen Bibliotheken zusammenfassen: Accessing audio/video metadata with .NET
Aber ich würde sagen, dass TagLib-Sharp Ihre Bedürfnisse erfüllen sollte.

Eine gute Zusammenfassung von Links ist auch hier in dieser Antwort: https://stackoverflow.com/a/26770986

Die am häufigsten genannt, die ich über gestolpert waren TagLib-Sharp und DirectShowNet. Daher sollte Ihr TagLib-Sharp die meisten Tags, die Sie setzen möchten, lösen.Vielleicht können Sie detailliertere Beispielvideo-Dateien mit den Informationen angeben, die Sie festlegen möchten. Ein EXIF-Viewer (wenn es exif ist) könnte möglicherweise zeigen, welches Tag Sie suchen.

+0

Um dies zu erweitern, verwende ich FFMPEG, um Daten in die Dateien zu schreiben, wie von Evk empfohlen. – MrDKOz

Verwandte Themen