AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Verwenden der MediaInfo.DLL
Thema durchsuchen
Ansicht
Themen-Optionen

Verwenden der MediaInfo.DLL

Ein Thema von Garfield · begonnen am 25. Okt 2004 · letzter Beitrag vom 5. Nov 2018
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.573 Beiträge
 
Delphi 12 Athens
 
#1

AW: Verwenden der MediaInfo.DLL

  Alt 22. Jan 2014, 14:04
Er hat bei der ANSI-Version Mist gebaut ... PChar muß dort explizit PAnsiChar sein usw. (drum funktionierte es bis D2007 noch)

Schnelle Lösung: Verwende seine Unicode-Variante, denn die ist scheinbar korrekt implementiert.
Wobei du mit der Unicode-Version eh besser kommst, da dein Delphi sowieso Unicode ist.

[add]
Unicode und ANSI zusammengeschmissen ... je nach Delphi wird das Passende verwendet.
Angehängte Dateien
Dateityp: pas MediaInfoDll.pas (2,8 KB, 82x aufgerufen)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (22. Jan 2014 um 14:18 Uhr)
  Mit Zitat antworten Zitat
Nero der Professor

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

AW: Verwenden der MediaInfo.DLL

  Alt 22. Jan 2014, 17:55
himitsu, Tausend Dank

Hat perfekt funktioniert

Gruß Nero
  Mit Zitat antworten Zitat
sintronic86

Registriert seit: 7. Dez 2009
Ort: Barsinghausen
90 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Verwenden der MediaInfo.DLL

  Alt 2. Feb 2015, 10:56
Ich greif das Thema nochmal auf, weil ich leider nen kleines Problem habe.

wenn ich die heruntergeladene Exe-Datei benutze, funktioniert es (allerdings nicht für MP4-Dateien).

Sobald ich aber den Source nehme und einmal selber kompiliere, sieht es aus wie aus dem angehängten Screenshot.

Kann einer von euch was damit anfangen?
Angehängte Grafiken
Dateityp: png Unbenannt.png (24,9 KB, 72x aufgerufen)
Björn
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.667 Beiträge
 
Delphi 12 Athens
 
#4

AW: Verwenden der MediaInfo.DLL

  Alt 2. Feb 2015, 11:04
Sieht so aus, als hättest Du einen Ansi-Source mit einem Unicode-Delphi übersetzt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH ( 2. Feb 2015 um 12:49 Uhr) Grund: Schlechtschreibung
  Mit Zitat antworten Zitat
Koloss

Registriert seit: 21. Jul 2010
74 Beiträge
 
Delphi 2 Desktop
 
#5

AW: Verwenden der MediaInfo.DLL

  Alt 2. Nov 2018, 11:47
Danke für deine Tipps @EWeiss!

Hier die DLL herunterladen:
https://mediaarea.net/de/MediaInfo/Download/Windows
Vom Paket die MediaInfoDLL.pas zum Projekt hinzufügen und in die Uses einbinden.
DLL zur Anwendung(EXE) dazulegen.

Code:
procedure TfrmMain.FormCreate(Sender: TObject);
begin
  ...
  MediaInfoDLL_Load('MediaInfo.dll');
  ...
end;

procedure TfrmMain.GetMediaInfo(FileName : String; var Runtime : Integer; var Bitrate : Double);
var
  Handle: Cardinal;
  iCpt : Integer;
  Value : PWideChar;
  iHelp : Integer;
  str : String;
  P : Integer;
begin
  Handle := MediaInfo_New();
  MediaInfo_Open(Handle, PWideChar(FileName));
  Value := MediaInfo_Get(Handle, Stream_Video, 0, 'BitRate', Info_Text, Info_Name);
  iHelp := StrToIntDef(Value, 0);
  BitRate := iHelp / 1000000;
  Value := MediaInfo_Get(Handle, Stream_Video, 0, 'Duration', Info_Text, Info_Name);
  str := Value;
  P := Pos('.', str);
  str := Copy(Value, 1, P-1);
  iHelp := StrToIntDef(str, 0);
  Runtime := iHelp div 60000;
  MediaInfo_Close(Handle);
end;

Geändert von Koloss ( 2. Nov 2018 um 11:50 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Verwenden der MediaInfo.DLL

  Alt 2. Nov 2018, 13:12
Und geht alles wie gewünscht?
iCpt wird nie verwendet kannst rausschmeißen.

gruss

Geändert von EWeiss ( 2. Nov 2018 um 13:23 Uhr)
  Mit Zitat antworten Zitat
Koloss

Registriert seit: 21. Jul 2010
74 Beiträge
 
Delphi 2 Desktop
 
#7

AW: Verwenden der MediaInfo.DLL

  Alt 5. Nov 2018, 10:16
Ja, funktioniert bestens !

Stimmt iCPt kann ich entfernen
Habe mir jetzt auch die "Width" rausgeholt, ich werde noch die Actors und Genres ansehen, ab man da vernüftige Daten bekommt.
  Mit Zitat antworten Zitat
Benutzerbild von sundance
sundance

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

Re: Verwenden der MediaInfo.DLL

  Alt 7. Jul 2009, 08: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.335 Beiträge
 
Delphi XE5 Professional
 
#9

Re: Verwenden der MediaInfo.DLL

  Alt 8. Jul 2009, 14: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
 
#10

Re: Verwenden der MediaInfo.DLL

  Alt 15. Jul 2009, 10: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
Antwort Antwort
Seite 2 von 3     12 3      


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 06:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz