Auslesen von Dateiattributen
-
- Beiträge: 104
- Registriert: Mi 2. Jun 2010, 17:56
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Auslesen von Dateiattributen
Hallo an alle.
Wenn ich aus einer Datei die Dateigröße auslesen möchte, dann kann ich das z.B. wie folgt machen:
G := FileSize('TEST.TXT');
G ist ein Integer und da kann ich dann die Dateigröße finden.
Bei Video-Dateien (MPG, MP4, u.s.w) gibt es auch ein Dateiattribut für die Länge (Abspieldauer) der Datei.
Wenn man sich die Eigenschaften einer solchen Datei anschaut und dann die Details aufklappt,
dann steht da unter Video z.B. Länge 1:10:15 also 1 Stunde, 10 Minuten und 15 Sekunden.
Kann mir jemand sagen, wie ich den Wert mit Lazarus auslesen kann ?
Schönen Sonntag noch allen,
Hercules.
Wenn ich aus einer Datei die Dateigröße auslesen möchte, dann kann ich das z.B. wie folgt machen:
G := FileSize('TEST.TXT');
G ist ein Integer und da kann ich dann die Dateigröße finden.
Bei Video-Dateien (MPG, MP4, u.s.w) gibt es auch ein Dateiattribut für die Länge (Abspieldauer) der Datei.
Wenn man sich die Eigenschaften einer solchen Datei anschaut und dann die Details aufklappt,
dann steht da unter Video z.B. Länge 1:10:15 also 1 Stunde, 10 Minuten und 15 Sekunden.
Kann mir jemand sagen, wie ich den Wert mit Lazarus auslesen kann ?
Schönen Sonntag noch allen,
Hercules.
Re: Auslesen von Dateiattributen
Google mal nach Mediainfo.dll und deren Referenz, damit kannst du alle Infos aus Medien lesen die da drin sind. Unter Linux Mint lässt sie sich über die Anwendungsverwaltung installieren. Einfach nach Mediainfo suchen und libmediainfo-dev installieren. Ich selber hab sie allerdings noch nie verwendet und kann dir deshalb keine weiteren Infos geben.
-
- Beiträge: 104
- Registriert: Mi 2. Jun 2010, 17:56
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Auslesen von Dateiattributen
Hallo Jole,
vielen Dank für Deine schnelle Antwort.
Ich werd' mich da mal schlau machen.
M.f.G. Hercules
vielen Dank für Deine schnelle Antwort.
Ich werd' mich da mal schlau machen.
M.f.G. Hercules
-
- Beiträge: 104
- Registriert: Mi 2. Jun 2010, 17:56
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Auslesen von Dateiattributen
Hallo Jole,
die Beschreibung, was Mediainfo zu bieten hat, war eigentlich ganz
vielversprechend. Ich habe es mir runtergeladen und installiert.
Aber das war es dann auch schon. Bin nicht dahinter gekommen,
wie man es anwendet. Nach der Installation kein Icon oder Ähnliches zum
Starten gefunden, aber vielen Dank nochmal, vielleicht schaff ich es doch noch.....
Hercules.
die Beschreibung, was Mediainfo zu bieten hat, war eigentlich ganz
vielversprechend. Ich habe es mir runtergeladen und installiert.
Aber das war es dann auch schon. Bin nicht dahinter gekommen,
wie man es anwendet. Nach der Installation kein Icon oder Ähnliches zum
Starten gefunden, aber vielen Dank nochmal, vielleicht schaff ich es doch noch.....
Hercules.
Re: Auslesen von Dateiattributen
Du brauchst ja auch eine Bindung (Header unit) zur Bibliothek. Da hat aber schon mal einer was für Delphi gemacht, schau mal hier ob du was damit anfangen kannst.
-
- Beiträge: 104
- Registriert: Mi 2. Jun 2010, 17:56
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Auslesen von Dateiattributen
Hallo Jole,
werde morgen nochmal darüber in mich gehen.....
Danke, Hercules
werde morgen nochmal darüber in mich gehen.....
Danke, Hercules
- Garfield
- Beiträge: 173
- Registriert: Do 5. Jun 2008, 22:07
- OS, Lazarus, FPC: Ubuntu 22.04 LTS (Laz 3.0 FPC3.2.2)
- CPU-Target: 64Bit
- Wohnort: Aken
Re: Auslesen von Dateiattributen
Zum Programmieren unter Windows nimmt man nicht die Anwendung MediaInfo sondern die MediaInfoLib, d. h. die von Jole genannte MediaInfo.DLL.
Auf der von Jole verlinkten Seite ist links ein Menue. Da siehst Du die Unterseiten mit Erläuterungen. Der letzte Link unter Downloads ist ein Link zum MediaInfoLib-Projekt.
Auf der von Jole verlinkten Seite ist links ein Menue. Da siehst Du die Unterseiten mit Erläuterungen. Der letzte Link unter Downloads ist ein Link zum MediaInfoLib-Projekt.
Gruß Garfield
-
- Beiträge: 104
- Registriert: Mi 2. Jun 2010, 17:56
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Auslesen von Dateiattributen
Hallo Garfield,
vielen Dank für Deinen Hinweis.
Tut mir leid, dass ich mich erst so spät melde, aber mich hatte
eine Erkältung so richtig erwischt, konnte 14 Tage kaum ein Wort reden
und keinen klaren Gedanken fassen.
Jetzt geht es wieder, werde Deinen Tipp mal folgen.
Vielen Dank erst mal....
Hercules.
vielen Dank für Deinen Hinweis.
Tut mir leid, dass ich mich erst so spät melde, aber mich hatte
eine Erkältung so richtig erwischt, konnte 14 Tage kaum ein Wort reden
und keinen klaren Gedanken fassen.
Jetzt geht es wieder, werde Deinen Tipp mal folgen.
Vielen Dank erst mal....
Hercules.
-
- Beiträge: 104
- Registriert: Mi 2. Jun 2010, 17:56
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Auslesen von Dateiattributen
Hallo Garfield,
ich habe jetzt mit Deiner Hilfe folgende Dateien gefunden, heruntergeladen
und in das folgende Lazarus-Verzeichnis kopiert:
Lazarus\Components\LazUtils\MediaInfoDll.Pas
Lazarus\Components\LazUtils\MediaInfoDllmod.Pas
Wenn ich in einer Anwendung in den USES die MediaInfoDll eintrage und die Anwendung starte,
dann bekomme ich den folgenden Fehler:
unit1.pas(0,0) Fatal: Can not find unit MediaInfoDll used by Unit1.
Hab' ich da noch was vergessen, oder geht das so nicht.....?
Hercules.
ich habe jetzt mit Deiner Hilfe folgende Dateien gefunden, heruntergeladen
und in das folgende Lazarus-Verzeichnis kopiert:
Lazarus\Components\LazUtils\MediaInfoDll.Pas
Lazarus\Components\LazUtils\MediaInfoDllmod.Pas
Wenn ich in einer Anwendung in den USES die MediaInfoDll eintrage und die Anwendung starte,
dann bekomme ich den folgenden Fehler:
unit1.pas(0,0) Fatal: Can not find unit MediaInfoDll used by Unit1.
Hab' ich da noch was vergessen, oder geht das so nicht.....?
Hercules.
- Garfield
- Beiträge: 173
- Registriert: Do 5. Jun 2008, 22:07
- OS, Lazarus, FPC: Ubuntu 22.04 LTS (Laz 3.0 FPC3.2.2)
- CPU-Target: 64Bit
- Wohnort: Aken
Re: Auslesen von Dateiattributen
Der Compiler findet die Unit nicht, weil sie sich nicht in einem Pfad, welcher im Suchpfad Deines Projektes eingetragen ist, befindet. Da Du auch eine MediaInfoDllmod.pas dabei hast, willst Du wohl eine ältere MediaInfoDLL, also vor 0.7.x.x, verwenden? Bei den alten Versionen wird die MediaInfoDll.pas zum statischen und die MediaInfoDllMod.pas zum dynamischen Laden der DLL verwendet. Für die DLL 0.7..x.x gibt es nur noch eine Unit zum dynamischen Laden der DLL.
Das einfachste wäre die Source zur GUI und die jetzt oder die damals aktuelle DLL zu nehmen. Ob die aktuelle Version der DLL mit den Units funktioniert, weiß ich nicht. Ob die Units mit Lazarus ohne Anpassungen arbeiten habe ich nicht ausprobiert. Die Compiler sind bei den Archiven angegeben. Die DLL muss im Pfad Deiner EXE liegen.
Das einfachste wäre die Source zur GUI und die jetzt oder die damals aktuelle DLL zu nehmen. Ob die aktuelle Version der DLL mit den Units funktioniert, weiß ich nicht. Ob die Units mit Lazarus ohne Anpassungen arbeiten habe ich nicht ausprobiert. Die Compiler sind bei den Archiven angegeben. Die DLL muss im Pfad Deiner EXE liegen.
Gruß Garfield
-
- Beiträge: 104
- Registriert: Mi 2. Jun 2010, 17:56
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Auslesen von Dateiattributen
Hallo Garfield,
vielen Dank für Deine schnelle Reaktion. Bin gerade von der Firma nach hause gekommen, werde mir das morgen mal anschauen. Danke ......
Hercules
vielen Dank für Deine schnelle Reaktion. Bin gerade von der Firma nach hause gekommen, werde mir das morgen mal anschauen. Danke ......
Hercules
-
- Beiträge: 104
- Registriert: Mi 2. Jun 2010, 17:56
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Auslesen von Dateiattributen
Hallo Garfield,
jetzt habe ich drei Tage alles Mögliche ausprobiert, auch Deinen Vorschlag, die MediaInfoDll.bas in den Pfad der Anwendung zu legen.
Aber die MediaInfoDll wird einfach nicht gefunden. Vielen Dank nochmal, aber ich bin schon am überlegen, ob ich die Filmlänge vieloleicht
aus der Dateigröße errechnen kann. Ich weiß im Moment noch nicht so richtig, wo ich hinfassen könnte.
Erst mal Danke an alle, die mir geantwortet haben.
Hercules.
jetzt habe ich drei Tage alles Mögliche ausprobiert, auch Deinen Vorschlag, die MediaInfoDll.bas in den Pfad der Anwendung zu legen.
Aber die MediaInfoDll wird einfach nicht gefunden. Vielen Dank nochmal, aber ich bin schon am überlegen, ob ich die Filmlänge vieloleicht
aus der Dateigröße errechnen kann. Ich weiß im Moment noch nicht so richtig, wo ich hinfassen könnte.
Erst mal Danke an alle, die mir geantwortet haben.
Hercules.
Re: Auslesen von Dateiattributen
Könnte es sein, dass die DLL Bit mäßig nicht zur CPU passt (32/64BIt)?Hallo Garfield,
jetzt habe ich drei Tage alles Mögliche ausprobiert, auch Deinen Vorschlag, die MediaInfoDll.bas in den Pfad der Anwendung zu legen.
Aber die MediaInfoDll wird einfach nicht gefunden.
Wissen tu ichs nicht, kann es mir aber nicht vorstellen. Beispiel zweier Filme:Vielen Dank nochmal, aber ich bin schon am überlegen, ob ich die Filmlänge vieloleicht
aus der Dateigröße errechnen kann.
Zeit Größe (MB) Type
3.17.43 -> 686.8 -> MP4
1.34.34 -> 850.8 -> MP4
Es scheint also unterschiedliche Komprimierungs tiefen zu geben die du dann auch erst ermitteln müsstest.
Re: Auslesen von Dateiattributen
Hercules, ich weiß nicht, was du genau machst, aber bei mir läuft das Demo-Programm nach geringen Anpassungen für Lazarus auf Anhieb. Ich habe es angehängt, die zugehörige DLL habe ich mit ins Archiv gesteckt - es sollte die 32-Bit Version sein, da ich zwar das 64-Bit Win10 verwende, Lazarus dagegen nur in der 32-Bit-Version (ist im Download der dll nicht klar zu erkennen). Einfach alles auspacken, die Demo kompilieren - sollte laufen. Ich hab's mit einigen Videos auf meiner Platte getestet.
- Dateianhänge
-
mediainfodll.zip
- (1.81 MiB) 173-mal heruntergeladen
Zuletzt geändert von wp_xyz am Mo 27. Feb 2017, 17:45, insgesamt 1-mal geändert.
- Garfield
- Beiträge: 173
- Registriert: Do 5. Jun 2008, 22:07
- OS, Lazarus, FPC: Ubuntu 22.04 LTS (Laz 3.0 FPC3.2.2)
- CPU-Target: 64Bit
- Wohnort: Aken
Re: Auslesen von Dateiattributen
@Hercules:
Wenn Du die Demo in Lazarus lädst gibt es einige Fehlermeldungen. Allerdings nicht, dass eine Unit nicht gefunden wird.
Die Spieldauer kann man mit Hilfe der Dateigröße schätzen. Dafür musst Du Bitrate ermitteln. Funktioniert aber nur bei konstanter Bitrate. Für MP1 und MP2 http://www.fr-an.de/projects/mpeg/04_04.htm
@Jole:
Richtig. 32bit Anwendung und 32bit DLL sowie 64bit Anwendung und 64bit DLL.
@wp_xyz
Damit sollte Hercules zurechtkommen.
Wenn Du die Demo in Lazarus lädst gibt es einige Fehlermeldungen. Allerdings nicht, dass eine Unit nicht gefunden wird.
Die Spieldauer kann man mit Hilfe der Dateigröße schätzen. Dafür musst Du Bitrate ermitteln. Funktioniert aber nur bei konstanter Bitrate. Für MP1 und MP2 http://www.fr-an.de/projects/mpeg/04_04.htm
@Jole:
Richtig. 32bit Anwendung und 32bit DLL sowie 64bit Anwendung und 64bit DLL.
@wp_xyz
Damit sollte Hercules zurechtkommen.
Gruß Garfield