AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Verwenden der MediaInfo.DLL

Verwenden der MediaInfo.DLL

Ein Thema von Garfield · begonnen am 25. Okt 2004 · letzter Beitrag vom 5. Nov 2018
Antwort Antwort
Seite 2 von 5     12 34     Letzte » 
Benutzerbild von sundance
sundance

Registriert seit: 9. Mai 2006
98 Beiträge
 
Delphi 7 Professional
 
#11

Re: Verwenden der MediaInfo.DLL

  Alt 7. Jul 2009, 09:24
@Garfield,

sorry wenn ich den alten Thread nochmal "herauskrame"...
Ich wollte die MediaInfoDLL.pas um die Funktion "MediaInfo_Info_Version()" erweitern, die in der aktuellen DLL v0.7.18 (immer noch) enthalten ist:
Delphi-Quellcode:
interface
  function MediaInfo_Info_Version: PChar cdecl stdcall;
implementation
  function MediaInfo_Info_Version; external 'MediaInfo.Dll';
Allerdings erhalte ich beim Aufruf anstelle der Versionsnummer nur folgenden Funktionswert:
'Your software uses an outdated interface, You must use MediaInfo.DLL 0.4.1.1 instead'

Was mache ich da falsch?
Oder kann man die DLL-Versionsnummer auch anders auslesen?

Nachtrag: Die DLL aus deinem BeispielGUI (0.7.1.2) liefert das selbe Ergebnis.

Nachtrag 2: So funktionierts:
MediaInfo_Option(0,'Info_Version',''); // liefert 'MediaInfoLib - v0.7.18' Um auch ältere Versionen der DLL zu unterstützen kann man beide auch kombinieren:
(analog zu http://www.fr-an.de, GUI MediaInfoLib)
Delphi-Quellcode:
result := MediaInfo_Info_Version();
if Pos('MediaInfoLib', result) = 0 then
  result := MediaInfo_Option(0,'Info_Version','');
.sundance.
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.333 Beiträge
 
Delphi XE5 Professional
 
#12

Re: Verwenden der MediaInfo.DLL

  Alt 8. Jul 2009, 15:57
Delphi-Quellcode:
  function String_holen : String;
  begin
    Result := '';

    @MediaInfo_Info_Version := NIL;
    @MediaInfo_Option := NIL;
    lib := LoadLibrary(@szNameDLL[1]);
    if lib <> 0
    then try
      @MediaInfo_Info_Version := GetProcAddress(lib, @szNameMediaInfo_Info_Version[1]);
      if Assigned(MediaInfo_Info_Version)
      then Result := MediaInfo_Info_Version();

      if pos('MediaInfoLib', Result) > 0 then Exit;

      @MediaInfo_Option := GetProcAddress(lib, @szNameMediaInfo_Option[1]);
      if Assigned(MediaInfo_Option)
      then Result := MediaInfo_Option (0, 'Info_Version', '');
    except
    end;
  end;
Aus der Demo auf dieser Seite, welche Du auch gefunden hast.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von sundance
sundance

Registriert seit: 9. Mai 2006
98 Beiträge
 
Delphi 7 Professional
 
#13

Re: Verwenden der MediaInfo.DLL

  Alt 15. Jul 2009, 11:59
Garfield,

vielen Dank für deine Antwort.
Leider bin ich jetzt noch auf ein Problem gestoßen.
Wie kann ich ermitteln, ob und wieviele Kapitelmarken in einem Matroska-Container enthalten sind?

So habe ich's schon (ohne Erfolg) probiert:
Delphi-Quellcode:
FNumChapters := MediaInfoA_Get(FHandle, 0,0, 'ChaptersCount', 1,0);
FNumChapters := MediaInfoA_Get(FHandle, 4,0, 'Count', 1,0);
FNumChapters := MediaInfoA_Get(FHandle, 4,0, 'Total', 1,0);
Edit:
Für das Ermitteln der Forced- und Default-Flags habe ich auch keinen Weg gefunden...
Siehe Output von mkvinfo:
Code:
| + A track
|  + Track number: 2
|  + Track UID: 2808210362
|  + Track type: audio
|  + Enabled: 1
|  + Default flag: 1
|  + Forced flag: 1
|  + Lacing flag: 1
|  + MinCache: 0
|  + Timecode scale: 1
|  + Max BlockAddition ID: 0
|  + Codec ID: A_AC3
|  + Codec decode all: 1
|  + Default duration: 32.000ms (31.250 fps for a video track)
|  + Language: ger
|  + Audio track
|   + Sampling frequency: 48000
|   + Channels: 6
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.333 Beiträge
 
Delphi XE5 Professional
 
#14

Re: Verwenden der MediaInfo.DLL

  Alt 15. Jul 2009, 16:05
Hier gibt ein wenig zu Matroska http://forum.doom9.org/showthread.ph...492#post814492
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von sundance
sundance

Registriert seit: 9. Mai 2006
98 Beiträge
 
Delphi 7 Professional
 
#15

Re: Verwenden der MediaInfo.DLL

  Alt 16. Jul 2009, 14:17
Garfield,

danke für den Hinweis im D9-Forum.
Dort habe ich (mit Hilfe des Autors von MediaInfo) folgendes in Erfahrung gebracht:
Zitat:
Chapter part is deprecated since 0.7.13.
See Changes.txt in the DLL package for more info
Und dort findet man dann:
Zitat:
0.7.12 --> 0.7.13
-----------------
- Chapters has now language type per item, another string format, and moved to the menu part
Old string format was "Chapter number : Time - chapter string"
New string format is "Time : chapter string / Optional info / Optional info"
Die Anzahl der Kapitelmarken kann man somit wie folgt auslesen:
Delphi-Quellcode:
      // Anzahl der Kapitelmarken auslesen (altes und neues Verfahren ab v0.7.13)
      FNumChapters := GetMediaInfoInt(FHandle, skGeneral, 0, 'ChaptersCount');
      if (FNumChapters = 0) then begin
        num := GetMediaInfoInt(FHandle, skGeneral, 0, 'MenuCount');
        if (num > 0) then
          for k:=0 to pred(num) do begin
            st := GetMediaInfoStr(FHandle, skMenu, k, 'StreamKind');
            if CompareText(st, 'menu') = 0 then begin
              c1 := GetMediaInfoInt(FHandle, skMenu, k, 'Chapters_Pos_Begin');
              c2 := GetMediaInfoInt(FHandle, skMenu, k, 'Chapters_Pos_End');
              FNumChapters := c2 - c1;
            end;
          end;
      end;
Das Auslesen der Flags ist im Moment leider noch nicht möglich...

.sundance.
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.333 Beiträge
 
Delphi XE5 Professional
 
#16

Re: Verwenden der MediaInfo.DLL

  Alt 17. Jul 2009, 11:54
Wenn Du nur Informationen zu Matroska willst, solltest Du Dir etwas eigenes entwickeln. Informationen findest Du auf Matroska. Dort findest auch ein Forum. Zum Team gehören unter anderem mehrere Deutsche, welche eventuell helfen würden. Moritz "Mosu" Bunkus und Christian HJ Wiesner sind zum Beispiel auch bei Doom9 | Gleitz DVD-Forum registriert. Moritz ist der Autor von MKVToolnix.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von sundance
sundance

Registriert seit: 9. Mai 2006
98 Beiträge
 
Delphi 7 Professional
 
#17

Re: Verwenden der MediaInfo.DLL

  Alt 18. Jul 2009, 10:12
Vielen Dank nochmal für deine Hilfe.
Ich habe mittlerweile noch eine interessante Matroska-Implementation gefunden:
http://www.alexander-noe.com/video/matroskadll

Für mein Progrämmchen werde ich mit nur einer "3rd-Party-DLL" nicht auskommen. Denn zum einen brauche ich eine komplette Streamübersicht (video/audio/subs/chapter/attachments), die ich z.B. mit obiger DLL oder auch mit dem output von mkvinfo von Moritz Bunkus bekommen kann. Leider kann ich über diese Schnittstellen nicht allzuviel über die Specs der einzelnen Streams (z.b. Audio-Bitrate) ermitteln; da hilft mir im Moment nur die mediainfo.dll weiter (die aber leider keine Attachments "kennt", bzw. man kann nur feststellen, ob welche da sind)...

.sundance.
  Mit Zitat antworten Zitat
Micha88
(Gast)

n/a Beiträge
 
#18

Re: Verwenden der MediaInfo.DLL

  Alt 6. Jan 2010, 03:10
Ich benutze D2009 und habe immer das Problm, dass ich nur schwarze dünne Striche sehe, statt Buchstaben und Texte.
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.333 Beiträge
 
Delphi XE5 Professional
 
#19

Re: Verwenden der MediaInfo.DLL

  Alt 6. Jan 2010, 09:41
Liegt vielleicht an Ansi und Wide.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Nero der Professor

Registriert seit: 15. Jun 2007
Ort: Halberstadt
14 Beiträge
 
Delphi 2009 Architect
 
#20

AW: Verwenden der MediaInfo.DLL

  Alt 22. Jan 2014, 14:11
Hallo, ich weiß das Thema ist älter, aber ich habe mich gestern mit der MediaInfo.dll beschäftigt und habe mir das Beispiel von Amnon82 geladen. Ich habe die exe erzeugt und kann die Edit-felder nicht lesen.

Ich habe ein Bild anbei

könnte mir bitte jemand helfen

Gruß Nero
Angehängte Grafiken
Dateityp: jpg Neue Bitmap.jpg (33,0 KB, 44x aufgerufen)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf