Met windows (xp iig) is het mogelijk om in explorer de de lengte, resolutie, frame rate enz van een film te laat zien.
Ik ben al aan het zoeken geslagen en heb uiteindelijk dit gevonden :
http://www.mentalis.org/apilist/AVIFileInfo.shtml
Verder heb ik ook nog een source code gevonden waarbij dit wordt toegepast.
De resolutie,frame rate gaat goed. Alleen ik kan de lengte maar niet achterhalen.
als ik dwLength gebruik, dan krijg ik een getal. bijv:
132845
Deze file heeft de volgende eigenschappen 25 fps, 1:28:33 uur en 134 kbps
Iemand enig idee hoe ik aan de echte lengte kan komen?
En weet iemand een stukje code om de compressie methode mee te vinden? (xvid, divx, enz).
Ik ben al aan het zoeken geslagen en heb uiteindelijk dit gevonden :
http://www.mentalis.org/apilist/AVIFileInfo.shtml
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| Private Const OF_SHARE_DENY_WRITE As Long = &H20
Private Type AVIFILEINFO
dwMaxBytesPerSec As Long
dwFlags As Long
dwCaps As Long
dwStreams As Long
dwSuggestedBufferSize As Long
dwWidth As Long
dwHeight As Long
dwScale As Long
dwRate As Long
dwLength As Long
dwEditCount As Long
szFileType As String * 64
End Type
Private Declare Function AVIFileOpen Lib "avifil32" Alias "AVIFileOpenA" (ppfile As Long, ByVal szFile As String, ByVal mode As Long, pclsidHandler As Any) As Long
Private Declare Function AVIFileRelease Lib "avifil32" (ByVal pfile As Long) As Long
Private Declare Function AVIFileInfo Lib "avifil32" Alias "AVIFileInfoA" (ByVal pfile As Long, pfi As AVIFILEINFO, ByVal lSize As Long) As Long
Private Declare Sub AVIFileInit Lib "avifil32" ()
Private Declare Sub AVIFileExit Lib "avifil32" ()
Private Sub Form_Load()
'KPD-Team 2001
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
Dim hFile As Long, AviInfo As AVIFILEINFO
'initialize the AVIFile library
AVIFileInit
'create a handle to the AVI file
If AVIFileOpen(hFile, "C:\SIERRA\Half-Life\valve\media\sierra.avi", OF_SHARE_DENY_WRITE, ByVal 0&) = 0 Then
'retrieve the AVI information
If AVIFileInfo(hFile, AviInfo, Len(AviInfo)) = 0 Then
MsgBox "AVI dimensions: " + CStr(AviInfo.dwWidth) + "x" + CStr(AviInfo.dwHeight)
Else
MsgBox "Error while retrieving AVI information... :("
End If
'release the file handle
AVIFileRelease hFile
Else
MsgBox "Error while opening the AVI file... :("
End If
'exit the AVIFile library and decrement the reference count for the library
AVIFileExit
End Sub |
Verder heb ik ook nog een source code gevonden waarbij dit wordt toegepast.
De resolutie,frame rate gaat goed. Alleen ik kan de lengte maar niet achterhalen.
als ik dwLength gebruik, dan krijg ik een getal. bijv:
132845
Deze file heeft de volgende eigenschappen 25 fps, 1:28:33 uur en 134 kbps
Iemand enig idee hoe ik aan de echte lengte kan komen?
En weet iemand een stukje code om de compressie methode mee te vinden? (xvid, divx, enz).