Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Länge einer Video-Datei ermitteln (https://www.delphipraxis.net/25072-laenge-einer-video-datei-ermitteln.html)

Tubos 2. Jul 2004 12:08

Re: Länge einer Video-Datei ermitteln
 
Könntest du den Code hier posten für andere die dasselbe Problem haben?

edit:
es ist nicht wirklich intelligent seine emailadresse in nem öffentlich zugänglichen forum zu posten, die bots der spamversender finden das garantiert
denselben fehler habe ich auch einmal gemacht und dann massig spam bekommen
--> emailadresse löschen müssen :mrgreen:

k0aru 2. Jul 2004 12:11

Re: Länge einer Video-Datei ermitteln
 
jetzt besser :P

Master_BB 2. Jul 2004 13:10

Re: Länge einer Video-Datei ermitteln
 
heya,
mich würde auch mal interessieren wie ich die informationen der Microsoftwebsite der AVIFileinformationen verwerten kann.

Delphi-Quellcode:
typedef struct { 
    DWORD dwMaxBytesPerSec;
    DWORD dwFlags;
    DWORD dwCaps;
    DWORD dwStreams;
    DWORD dwSuggestedBufferSize;
    DWORD dwWidth;
    DWORD dwHeight;
    DWORD dwScale;
    DWORD dwRate;
    DWORD dwLength;
    DWORD dwEditCount;
    char szFileType[64];
} AVIFILEINFO;
da wird dort aufgeführt. OK aber wie kann ich diese jetzt in meinem programm nutzen? welche unit muß ich dafür
einbinden? shellapi?
wie würde die verwendung gehen? die haben dort keine parameter oder so genannt.
kann ja nicht einfach sagen AVIBildBreite := dwWidth(pfad)

franktron 2. Jul 2004 18:02

Re: Länge einer Video-Datei ermitteln
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier ist das prog.

Steve 3. Jul 2004 12:21

Re: Länge einer Video-Datei ermitteln
 
Delphi-Quellcode:
uses
 VfW; { downloaden! } 

function GetAviLength(aviFN: string): Word;
var
  pFile : PAVIFile;
  AviInfo: TAVIFILEINFOW;
begin
  Result := 0;
  AVIFileInit;

  // AVI öffnen
  IF AVIFileOpen(pFile, PChar(avifn), 0, nil) <> 0 THEN
  BEGIN
    AVIFileExit;
    ShowMessage('Fehler');
    Exit;
  end;

  // AVI-Informationen auslesen
  if AVIFileInfo(pFile, @AVIINFO, SizeOf(AVIINFO)) = AVIERR_OK then
  with aviinfo do
  begin
    // Länge ermitteln
    result := (dwRate div dwScale) * dwLength;
  end;

  // Aufräumen
  AVIFileRelease(pFile);
  AVIFileExit;
end;
Abgewandelt von Torry.

Vollkommen ungetestet!

Gruß
Stephan

Garfield 19. Jul 2004 23:13

Re: Länge einer Video-Datei ermitteln
 
Hallo,

ich will auch die Länge von Videos bestimmen. Für AVI scheine ich in diesem Thread die Lösung gefunden zu haben. Man bekommt die Informationen also aus dem Header.

Bei MPEG ist es allerdings nicht so einfach. Das ist ein Streamingformat und man muss die Frames zählen. Im Gleitz|Doom9-Forum wurden dafür zwei Beispielprogramme genannt: MPEGWALK von LigH und Mpeg2Schnitt von Martin Dienert. Von beiden sind die Sourcen verfügbar.

http://forum.gleitz.info/showthread.php?t=14159
http://www.mdienert.de/mpeg2schnitt - Ist im Moment wohl nicht erreichbar, vielleicht Trafficgrenze erreicht?

scp 20. Jul 2004 02:51

Re: Länge einer Video-Datei ermitteln
 
Ich habe ein Programm geschrieben, das Infos aus allen geläufigen Video-Formaten (10-15 Stück) rauszieht. Werde es mal bei Gelegenheit als OpenSource rausgeben. Im Moment hätte das keinen Sinn, weil der ganze Code in einer DLL drinsteckt, die auch noch ein IContextMenu drin hat usw., ist halt ziemlich komplex.

Steve 20. Jul 2004 11:47

Re: Länge einer Video-Datei ermitteln
 
imho sind mpegs prinzipiell auch avis, halt bloß codiert (Stichpunkt Codec).
Speicher mal avis/mpegs unter der jeweils anderen Endung.. solange der entsprechende Codec installiert ist, sollte es imho immer funzen..

Gruß
Stephan

scp 20. Jul 2004 12:40

Re: Länge einer Video-Datei ermitteln
 
Zitat:

Zitat von Steve
imho sind mpegs prinzipiell auch avis, halt bloß codiert (Stichpunkt Codec).
Speicher mal avis/mpegs unter der jeweils anderen Endung.. solange der entsprechende Codec installiert ist, sollte es imho immer funzen..

Das stimmt so nicht. Das man die Endung .avi verwenden kann und umgekehrt .mpg für .avi usw. liegt an der "Intelligenz" des Media Players. Dieser schaut nicht nach der Dateieendung sondern nach dem Inhalt.

Garfield 20. Jul 2004 18:27

Re: Länge einer Video-Datei ermitteln
 
Zitat:

Zitat von Steve
imho sind mpegs prinzipiell auch avis, ...

Stimmt wohl nicht. Meines Wissen haben AVIs Datei- und MPEGs Sequenzheader. Du kannst den Dateien Endungen verpassen, wie Du willst. Denn ein Programm entscheidet anhand der Header, was es damit macht, egal welche Endung die Datei hat.

@scp
Kannst Du zufällig auch die Länge für eine Datei aus dem VirtualDub(Mod)-Frameserver bestimmen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:55 Uhr.
Seite 2 von 3     12 3      

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