[visual basic] Avi lengte bepalen

Pagina: 1
Acties:

  • commeric
  • Registratie: November 2002
  • Laatst online: 01-07 08:51
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

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).

  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 11:40

Rannasha

Does not compute.

Deel 132845 eens door de framerate en be amazed :)

|| Vierkant voor Wiskunde ||


  • ATS
  • Registratie: September 2001
  • Laatst online: 12-02 13:46

ATS

Je filmpje is vast 1:28:33.8 ;-)

My opinions may have changed, but not the fact that I am right. -- Ashleigh Brilliant


  • commeric
  • Registratie: November 2002
  • Laatst online: 01-07 08:51
ohw ik ben ook zo fucking stom 8)7 , ik heb echt alles op elkaar zitten delen en pcies DAT zie ik over het hoofd. anyway hartstikke bedankt :*)
nu nog hoe ik de codec kan detecteren.... :)

[ Voor 15% gewijzigd door commeric op 15-05-2003 23:47 ]