it-swarm.com.de

wie finde ich das Datum, an dem ein Video (.AVI .MP4) tatsächlich aufgenommen wurde?

eigenschaften> Datum erstellt ... Ich dachte, dies bedeutete das Datum, an dem das Video erstellt wurde, aber schließlich wurde mir klar, dass sich das Datum jedes Mal ändert, wenn ich mich bewege, reorganisiere oder sogar eine Datei öffne. Das geänderte Datum liegt häufig vor dem erstellten Datum. das datum, an dem ein jpeg genommen wurde, ist jederzeit verfügbar. Gibt es eine Möglichkeit, die gleichen Informationen aus einer AVI- oder MP4-Datei zu erhalten? Vielen Dank für alle Informationen, die Sie geben können.

19
user374552

Es scheint keinen genau definierten Standard für Video-Metadaten zu geben (verglichen mit Fotos und Audiodateien, die jeweils EXIF ​​und ID3/etc haben)

Einige Tags existieren wie z. Title, Composer usw. Sie können diese anzeigen, wenn Sie in Windows 7 (möglicherweise auch früheren Versionen) eine Filmdatei auswählen oder mit der rechten Maustaste klicken und die Eigenschaften anzeigen. Ich habe leider kein Tag für das Aufnahmedatum gefunden - die nächste verfügbare Sache ist Year (integer) :-(

Programmgesteuert können Sie die meisten dieser Tags in .NET mit Taglib Sharp aus dem Monoprojekt lesen und schreiben. Quell- und Binärdateien sind auf dem banshee FTP-Server verfügbar. Es gibt eine ziemlich beeindruckende Liste von Formaten, die unterstützt werden. Trotzdem sollten Sie beim Lesen oder Schreiben von Tags Ausnahmen einfangen - es wird immer dann ausgegeben, wenn es eine Datei findet, die es nicht versteht. Dies ist mir bei meiner bescheidenen Sammlung mehrmals passiert von Aufnahmen zu Hause.)

Tags lesen:

using (var f = TagLib.File.Create(@"c:\Path\To\MyVideo.mp4"))
{
    if (f.Tag != null)
    {
        string title = f.Tag.Title;
        Size resolution = new Size(f.Properties.VideoWidth, f.Properties.VideoHeight);
        int year = f.Tag.Year;
        // etc.
    }
}

Und in ähnlicher Weise: schreibe Metadaten zurück in die Datei:

using (var f = TagLib.File.Create(@"c:\Path\To\MyVideo.mp4"))
{
    f.Tag.Title = "My Awesome Movie";
    f.Tag.Year = (uint)2011;
    f.Save();
}
6
Isak Savo

Kurzbefehl zum Suchen von Datums-/Zeitmetadaten in vielen Videodateien

Der folgende Befehl hat mir beim Auffinden von Datums-/Zeit-Metadaten für verschiedene AVI/MP4-Videos geholfen:

ffmpeg -i /path/to/video.mp4 -dump

Hinweis: Wie in anderen Antworten erwähnt, kann nicht garantiert werden, dass solche Informationen in all Videodateien oder in einem bestimmten Format verfügbar sind.

Verkürzte Beispielausgabe für einige AVI-Dateien

    Metadata:
      Make            : FUJIFILM
      Model           : FinePix AX655
      DateTime        : 2014:08:25 05:19:45
      JPEGInterchangeFormat:     658
      JPEGInterchangeFormatLength:    1521
      Copyright       :     
      DateTimeOriginal: 2014:08:25 05:19:45
      DateTimeDigitized: 2014:08:25 05:19:45

Verkürzte Beispielausgabe für einige MP4-Dateien

  Metadata:
    major_brand     : mp41
    minor_version   : 538120216
    compatible_brands: mp41
    creation_time   : 2018-03-13T15:43:24.000000Z
5
Chriki

Versuchen Sie es mit Exiftools oder Mediainfo, die Ihnen eine Exportfunktion als Text bieten. Achten Sie einfach auf die Sommerzeit.

1
skyrail

Für mich ist die mtime (Änderungszeit) in vielen (meisten) Fällen auch vor dem Erstellungsdatum, da, wie Sie sagen, jede Umorganisation die Erstellungszeit ändert. Das mtime AFAIUI ist jedoch ein genaues Abbild davon, wann der Dateiinhalt tatsächlich geändert wurde. Daher sollte das Datum der Videoaufzeichnung genau aufgezeichnet werden.

Nachdem ich diesen Metadatenfehler für Filmdateien entdeckt habe, werde ich meine Videos nach ihrer Mtime umbenennen, damit ich sie auf eine robustere Art und Weise speichern kann!

0
darrenp

Die beste Möglichkeit, das Datum "dateTaken" für Videos oder Bilder zu erhalten, ist die Verwendung von:

 Imports Microsoft.WindowsAPICodePack.Shell
 Imports Microsoft.WindowsAPICodePack.Shell.PropertySystem
 Imports System.IO
 Dim picture As ShellObject = ShellObject.FromParsingName(path)
 Dim picture As ShellObject = ShellObject.FromParsingName(path)
 Dim ItemDate=picture.Properties.System.ItemDate

Der obige Code erfordert die Shell-API, die intern von Microsoft ist und von keiner anderen externen DLL abhängt.

0
rogsonl

Ich habe das folgende Online-Tool verwendet: https://www.get-metadata.com Es ermöglicht das Hochladen und Analysieren einer Datei und zeigt dann alle Metadaten an.

0
Andrej Adamenko

Das Vorhandensein dieser Metadaten hängt vollständig von der Anwendung ab, die die Datei geschrieben hat. Es ist sehr üblich, JPG-Dateien mit Metadaten (EXIF-Tags) über die Datei zu laden, z. B. Zeitstempel oder Kamerainformationen oder Geolocation. ID3-Tags in MP3-Dateien sind ebenfalls sehr verbreitet. Diese Art von Metadaten wird in Videodateien jedoch viel seltener angezeigt.

Wenn Sie nur ein Werkzeug zum manuellen Lesen dieser Daten aus Dateien benötigen, könnte GSpot den Trick ausführen: http://www.videohelp.com/tools/Gspot

Wenn Sie dies im Code lesen möchten, stelle ich mir vor, dass jedes Containerformat seine eigenen Standards haben wird und dass jedes Format ein wenig Forschung und Implementierung erfordert, um es zu unterstützen.

0
David