Auslesen von Dateiattributen

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.

Auslesen von Dateiattributen

Beitragvon Hercules » 12. Feb 2017, 10:10 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.
Hercules
 
Beiträge: 101
Registriert: 2. Jun 2010, 16:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Jole » 12. Feb 2017, 11:40 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.
Jole
 
Beiträge: 116
Registriert: 4. Jul 2014, 13:39
OS, Lazarus, FPC: Linux | 
CPU-Target: amd64
Nach oben

Beitragvon Hercules » 12. Feb 2017, 12:15 Re: Auslesen von Dateiattributen

Hallo Jole,
vielen Dank für Deine schnelle Antwort.
Ich werd' mich da mal schlau machen.
M.f.G. Hercules
Hercules
 
Beiträge: 101
Registriert: 2. Jun 2010, 16:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Hercules » 12. Feb 2017, 15:23 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.
Hercules
 
Beiträge: 101
Registriert: 2. Jun 2010, 16:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Jole » 12. Feb 2017, 16:26 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.
Jole
 
Beiträge: 116
Registriert: 4. Jul 2014, 13:39
OS, Lazarus, FPC: Linux | 
CPU-Target: amd64
Nach oben

Beitragvon Hercules » 12. Feb 2017, 18:25 Re: Auslesen von Dateiattributen

Hallo Jole,
werde morgen nochmal darüber in mich gehen.....
Danke, Hercules
Hercules
 
Beiträge: 101
Registriert: 2. Jun 2010, 16:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Garfield » 14. Feb 2017, 18:44 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.
Gruß Garfield
Garfield
 
Beiträge: 136
Registriert: 5. Jun 2008, 21:07
Wohnort: Aken
OS, Lazarus, FPC: Win10/Ubuntu16.04 L1.6 FPC3.0.0 | 
CPU-Target: 64Bit
Nach oben

Beitragvon Hercules » 21. Feb 2017, 15:09 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.
Hercules
 
Beiträge: 101
Registriert: 2. Jun 2010, 16:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Hercules » 22. Feb 2017, 10:18 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.
Hercules
 
Beiträge: 101
Registriert: 2. Jun 2010, 16:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Garfield » 22. Feb 2017, 19:14 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.
Gruß Garfield
Garfield
 
Beiträge: 136
Registriert: 5. Jun 2008, 21:07
Wohnort: Aken
OS, Lazarus, FPC: Win10/Ubuntu16.04 L1.6 FPC3.0.0 | 
CPU-Target: 64Bit
Nach oben

Beitragvon Hercules » 22. Feb 2017, 20:39 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
Hercules
 
Beiträge: 101
Registriert: 2. Jun 2010, 16:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Hercules » 26. Feb 2017, 17:36 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.
Hercules
 
Beiträge: 101
Registriert: 2. Jun 2010, 16:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Jole » 27. Feb 2017, 11:02 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.

Könnte es sein, dass die DLL Bit mäßig nicht zur CPU passt (32/64BIt)?
Vielen Dank nochmal, aber ich bin schon am überlegen, ob ich die Filmlänge vieloleicht
aus der Dateigröße errechnen kann.

Wissen tu ichs nicht, kann es mir aber nicht vorstellen. Beispiel zweier Filme:

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.
Jole
 
Beiträge: 116
Registriert: 4. Jul 2014, 13:39
OS, Lazarus, FPC: Linux | 
CPU-Target: amd64
Nach oben

Beitragvon wp_xyz » 27. Feb 2017, 12:32 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.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von wp_xyz am 27. Feb 2017, 17:45, insgesamt 1-mal geändert.
wp_xyz
 
Beiträge: 2183
Registriert: 8. Apr 2011, 08:01

Beitragvon Garfield » 27. Feb 2017, 17:43 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.
Gruß Garfield
Garfield
 
Beiträge: 136
Registriert: 5. Jun 2008, 21:07
Wohnort: Aken
OS, Lazarus, FPC: Win10/Ubuntu16.04 L1.6 FPC3.0.0 | 
CPU-Target: 64Bit
Nach oben

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu Programmierung



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron
porpoises-institution
accuracy-worried