Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
6375 connectés 

 


Dernière réponse
Sujet : [Delphi] Fichiers Avi
-ThOR- AraGorN oui, merci pour tes précisions, mais à défaut d'être bon en anglais et de comprendre l'sdl de windows, je ne me débrouille pas trop mal en programmation. Et je n'ai eu aucun mal à comprendre ton code.
Alors encore merci pour tout

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
-ThOR- AraGorN oui, merci pour tes précisions, mais à défaut d'être bon en anglais et de comprendre l'sdl de windows, je ne me débrouille pas trop mal en programmation. Et je n'ai eu aucun mal à comprendre ton code.
Alors encore merci pour tout
antp déjà un truc que j'ai oublié de changer dans mon code:
 
FileList.FileName c'est le nom de fichier
 
donc si jamais y a des variables ou identifiants non reconnus, il se peut que ce soit des trucs de mon programme que j'ai oublié de remplacer ou de copier/coller.
 
et un truc que j'avais oublié de préciser (mais c'était pas dur à comprendre), la fonction donnant la taille la donne en Mo (d'où les deux divisions par 1024)

 

[edtdd]--Message édité par antp--[/edtdd]

rufo

-ThOR- AraGorN a écrit a écrit :

Je vais regarder Rufo.
Merci bcp antp, c'est super sympa de m'avoir file du code.
c quoi les variable de type dwWord ? (juste pour la culture personelle, j'aime pas utilisé un truc sans savoir exactement ce que c'est)
En tout cas, je vais bien lire ton code et tout décrypter.
Cependant je crois qu'il y a un autre moyen avec les fonctions AviFileOpen et AvifileInfo, ben en tout cas si je réussi, je prendrais ta méthode. Alors encore merci, c'est sympa
a+  




 
avifileinfo, c'est en C/C++...

antp

-ThOR- AraGorN a écrit a écrit :

c quoi les variable de type dwWord ? (juste pour la culture personelle, j'aime pas utilisé un truc sans savoir exactement ce que c'est)




 
byte = 1 octet
word = 2 octets
dword = double word = 4 octets
etc...
(si je ne me trompe pas)

-ThOR- AraGorN Rufo a dit:

Citation :

je sais pas mais essaye d'installer le composant Activex Windows Media Player (menu Composants->installer un activeX->WMP en bas de la liste). Avec un peu de chance, ce composant dispose de propriétés qui te donneront ces infos

 
 
je viens de regarder Rufo, et il y a p-e moyen que je m'en tire de cette façon, mais à mon avis c'est loin d'être la meilleur et la plus économique et niveau ressource.
Mais merci pour ton aidre

-ThOR- AraGorN Je vais regarder Rufo.
Merci bcp antp, c'est super sympa de m'avoir file du code.
c quoi les variable de type dwWord ? (juste pour la culture personelle, j'aime pas utilisé un truc sans savoir exactement ce que c'est)
En tout cas, je vais bien lire ton code et tout décrypter.
Cependant je crois qu'il y a un autre moyen avec les fonctions AviFileOpen et AvifileInfo, ben en tout cas si je réussi, je prendrais ta méthode. Alors encore merci, c'est sympa
a+
antp Bon c'est un peu bordélique, c'est pris d'un de mes programmes...
 
Taille:

Code :
  1. var
  2.   taille: integer;
  3.   f: file of byte;
  4. begin
  5.   AssignFile(f, 'c:\fichier.avi');
  6.   FileMode := 0; // le reset qui suit ouvrira le fichier en read only
  7.   Reset(f);
  8.   taille := (filesize(f) div 1024) div 1024;
  9.   closefile(f);


 
Résolution:

Code :
  1. const AVIH = $68697661; // la chaîne "AVIH" en hexa codée dans un DWORD...
  2. type
  3.   TAVIHeader = record
  4.     dwMicroSecPerFrame: DWORD;
  5.     dwMaxBytesPerSec: DWORD;
  6.     dwReserved1: DWORD;
  7.     dwFlags: DWORD;
  8.     dwTotalFrames: DWORD;
  9.     dwInitialFrames: DWORD;
  10.     dwStreams: DWORD;
  11.     dwSuggestedBufferSize: DWORD;
  12.     dwWidth: DWORD;
  13.     dwHeight: DWORD;
  14.     dwScale: DWORD;
  15.     dwRate: DWORD;
  16.     dwStart: DWORD;
  17.     dwLength: DWORD;
  18.   end;
  19. var
  20.   VideoFile: TFileStream;
  21.   Header: TAVIHeader;
  22.   Block: DWORD;
  23.   total, nread: longint;
  24.   resolution := string;
  25. begin
  26.    VideoFile := TFileStream.Create(FileList.FileName,fmOpenRead);
  27.    VideoFile.Seek(0,soFrombeginning);
  28.    total := 0;
  29.    repeat
  30.      nread := VideoFile.Read(Block,sizeof(Block));
  31.      inc (total,nread);
  32.    until (Block = AVIH) or (total > 1024) or (nread <= 0);
  33.    if (total <= 1024) and (nread > 0) then
  34.    begin
  35.      VideoFile.Seek(sizeof(DWORD),soFromCurrent);
  36.      VideoFile.Read(Header,sizeof(Header));
  37.      resolution := Format('%dx%d', [Header.dwwidth, Header.dwheight]);
  38.    end;
  39.    VideoFile.Free;
  40. end;


 
je suppose qu'en effectuant un calcul avec les autres champs de la structure TAVIHeader il y a moyen de trouver la durée et le bitrate.

 

[edtdd]--Message édité par antp--[/edtdd]

rufo

-ThOR- AraGorN a écrit a écrit :

Voila,
j'aimerai connaitre les fonctions et leurs constructions de l'api qui me permettent d'analyser les Fichiers Video Avi. (Taille, durée, biterate, et résolution).
J'ai trouvé dans l'SDK de Windows la fonction AviFileInfo. Malheureusement, mon pauvre niveau d'anglais ne m'aide pas à comprendre l'SDK. En fait, je trouve que l'SDK de windows est un vrai fouilli incompréhensible.
Alors si pouvez m'aidez, n'hésitez pas.  




 
je sais pas mais essaye d'installer le composant Activex Windows Media Player (menu Composants->installer un activeX->WMP en bas de la liste). Avec un peu de chance, ce composant dispose de propriétés qui te donneront ces infos :)

-ThOR- AraGorN Voila,
j'aimerai connaitre les fonctions et leurs constructions de l'api qui me permettent d'analyser les Fichiers Video Avi. (Taille, durée, biterate, et résolution).
J'ai trouvé dans l'SDK de Windows la fonction AviFileInfo. Malheureusement, mon pauvre niveau d'anglais ne m'aide pas à comprendre l'SDK. En fait, je trouve que l'SDK de windows est un vrai fouilli incompréhensible.
Alors si pouvez m'aidez, n'hésitez pas.

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)