Spielzeiten von Video-Dateien auslesen

  • Hallo

    Es ist jetzt schon einige Jahre her, seit ich das letzte Mal mit Autoit gearbeitet habe und ich hab vieles vergessen - muss mich quasi neu einlesen.
    Jetzt möchte ich aber wieder was tun und zwar Eigenschaften, vor allem die Länge, von Videodateien (hauptsächlich mp4-Dateien) auslesen.

    Vielleicht könnt Ihr mir dazu ein paar Stichworte liefern - was includen, Funktionsnamen, etc. - damit ich mich auf das Wesentliche konzentrieren kann?

    Danke, entsel

    Schöne Grüße,
    entsel
    AutoLisp(eln) geht ganz gut, aber AutoIt nur mit Dictionary. 
    Das Problem - man sollte wissen, welche Vokabel man sucht.

  • Du könntest das mit dem WMPlayer.ocx Objekt bewerkstelligen. Statt dem Sleep würde ich lieber solange warten bis der ReadyState auf playing lautet und dann auslesen.

  • Danke Euch - werd mir das mal zu Gemüte führen ...

    SG, entsel

    Schöne Grüße,
    entsel
    AutoLisp(eln) geht ganz gut, aber AutoIt nur mit Dictionary. 
    Das Problem - man sollte wissen, welche Vokabel man sucht.

  • Ich mache das mit MediaInfo... und das Futter besorgt ein von mir geschriebenes AutoIt-Script, dass ich vom Total Commander aus aufrufe...

    _GetExtProperty.au3 - ohohohooo... das ist ja fast noch taufrisch... von 2006!!! :D

    Im Anhang liegt dann noch mein angepasstes InformFile für MediInfo als Muster... NFO.csv (mit RAR gepackt, weil der Dateityp hier nicht erlaubt ist)

    MakeNFO
  • Filesharer? :D

    Da ich selbst mal sehr aktiv in diesem Bereich war wäre auch mein Tipp mediainfo zum Ermitteln der Videodatei Eigenschaften zu verwenden.

    Ich verwende in meinen Programmen hierfür aber nicht die mediainfo.exe mit Dateioutput, sondern ich verwende die mediainfo DLL. Das schöne ist, dass das Mediainfo source Paket sogar mit einem Autoit Beispielscript geliefert wird, welches die Nutzung der DLL beispielhaft zeigt. Vorteil von der DLL Methode ist, dass man die Werte sehr viel schneller zur Verfügung hat und nicht erst wieder aus einem Textoutput parsen muss. Ich benötige die Einzelwerte z.B. nicht nur zur Erzeugung einer NFO-Datei, sondern auch für diverse Entscheidungen im weiteren Programmablauf.

    https://mediaarea.net/de/MediaInfo/Download/Windows

    32bit Source: https://mediaarea.net/download/binar…outInstaller.7z

    Das Autoit Beispiel liegt im Unterordner "\Developers\Source\Example"

  • Ich habe das auch bereits mit der MediaInfo.dll gemacht und kann das nur empfehlen.
    Falls nötig kann ich dir ein Bsp. Skript erstellen. Aber wenn du mal AutoIt und MediaInfo mit der Suchmaschine deines Vertrauens suchst, solltest du im englischen Forum auch fündig werden.


    Ich werde mich hier aber nicht als Filesharer outen! :P

    Grüße autoiter

  • Filesharer?

    Wie wo was... sind wir das nicht alle? Welchen primären Grund könnte es sonst noch geben, aus dem das Internet ins Leben gerufen wurde? :D

    Danke für den Tip... via DLL war natürlich schon ein Begriff, aber damals brauchte ich eine schnelle Lösung und zu der Zeit waren meine AutoIt-Kenntnisse noch nahe null. 8)
    Eine kleine Fußnote noch... via DLL ist das Handling zwar weitaus flexibler, wobei dies dann aber auch mehr Arbeit erfordert... und ich wage mal zu behaupten, dass Anfänger mit der (eindeutig besseren) DLL-Lösung evtl. überfordert sein könnten.

    Ich werde mich hier aber nicht als Filesharer outen!

    Der Logik folgend hast du es hiermit aber getan... :P

    Und outen... bzw. Auskünfte jeder Art gibt es eh nur gegen Bares! :rofl:

    @autoiter
    Achso... nur mal kurz erwähnt... Arrays vs ByRef - dass bringt bei großen Arrays weitaus weniger, als ich es für möglich gehalten habe... dein Beispiel ist derzeit von etwa 12 Varianten, die ich getestet habe, die zweitschnellste! Ich knabbere noch daran, eine schnellere Lösung zu finden... :rock:

    3 Mal editiert, zuletzt von Bitnugger (28. November 2016 um 21:31)

  • Ich wünschte heute, ich hätte schon viel mehr mit DLLs gemacht, als ich habe. @entsel ist schon länger als ich hier unterwegs und es sollte nicht zu früh für ihn sein, sich das anzusehen. Wenn du Hilfe brauchst, wird dir hier auch geholfen @entsel. Selbst machen und Hilfe holen, ist dauerhaft sicher der beste Weg.

    Grüße autoiter

  • :P

    Jupp da hast du durchaus recht. Meine ersten Versuche waren damals auch noch mit der EXE Variante. Aber das erwähnte Beispielscript liefert einem eigentlich fast alles was man braucht. Mehr Arbeit ist es letzlich auch nicht, zumindestens dann wenn man die Daten noch weiterverarbeiten muss. Wie dem auch sei, ich denke er hat genug input um seine Aufgabe zu bewältigen. Wie ist letztlich ja egal. ;)

  • Entschuldigung OT:

    Gerade habe ich die email bekommen, dass ich mich als Filesharer geoutet habe. :D

    Ich habe das für ein Tool für Linux Receiver genutzt. Really!
    Aber Interessant ist es schon, dass ich auch bei einem Bearbeiten eines Beitrags über eingefügte Erwähnungen informiert werde. Coole Forensoftware.

    @Bitnugger
    Vielen Dank für die Info zu den Arrays. Einen Grund kann ich dir dafür auch nicht nennen. Mein Skript kann man wahrscheinlich schon dadurch beschleunigen, dass man nicht die Arrays in einem Array abspeichert und damit weiter arbeitet. Das sollte ja nur den Code verkürzen.. Aber das es eine der schnellen Varianten ist, überrascht mich auch ^^

    PS: Das nächste Mal aber besser in dem Thread aus dem das kommt. (Nicht nur das es hier OT ist. Für kommende Fragesuchende fehlt die Info dort. Wobei du sie wahrscheinlich dort noch hinzufügst, wenn du alle Varianten ausgetestet hast :D
    Viel Erfolg dabei!)

    Grüße autoiter