Audio Video Interleave | |
---|---|
Udvidelse | .avi[en] |
MIME -type | video/vnd.avi [2] [3] |
Udvikler | Microsoft [4] |
offentliggjort | 1992 [5] |
Formattype | mediebeholder |
Indeholder | Audio Video |
Udvidet fra | RIF [6] |
Audio Video Interleave (forkortet AVI ; lit. "audio and video interleaving") er en RIFF -mediebeholder , der første gang blev brugt af Microsoft i 1992 i Video til Windows -pakken .
Filer med AVI-udvidelsen kan indeholde video- og lyddata komprimeret ved hjælp af forskellige kombinationer af codecs, som tillader synkron videoafspilning med lyd. En AVI-fil kan indeholde forskellige slags komprimerede data (f.eks . DivX -video + WMA -lyd eller Indeo-video + PCM -lyd) afhængigt af hvilket codec, der bruges til kodning/afkodning. Ligesom dvd'er understøtter AVI-filer multi-stream audio-video.
Alle AVI-filer inkluderer to obligatoriske LIST-blokke, der definerer formatet og streamer data. AVI-filer kan også indeholde en indeksblok. Denne valgfri blok definerer placeringen af videodataene i filen. Typisk AVI-filstruktur:
RIFF ('AVI ' LIST ('hdrl' <title>) LIST ('movi' <video>) ['idx1' <indeks>])
En blok, der indeholder AVI-filheaderen og datastrømsheaderne. Typisk struktur:
LIST ('hdrl' 'avih' (<AVI-filoverskrift>) LIST ('strl' <stream header 1>) LIST ('strl' <stream header 2>) LIST ('odml' <AVI file extended header>))
HovedfiloverskriftFilen starter med en hovedoverskrift. I AVI-filer er denne header defineret af en FOURCC 'avih' blok. Headeren indeholder globale oplysninger for hele filen, såsom antallet af streams i filen, bredden og højden af videostrømmen. Hovedhovedet har følgende struktur:
typedef struct { DWORD dwMicroSecPerFrame ; DWORD dwMaxBytesPerSec ; DWORD dwReserved1 ; DWORD dwFlags ; DWORD dwTotalFrames ; DWORD dwInitialFrames ; DWORD dwStreams ; DWORD dwSuggestedBufferSize ; DWORD dwWidth ; DWORD dwHeight ; DWORD dwReserved [ 4 ]; } MainAVIHeader ;dwMicroSecPerFrame - Angiver antallet af mikrosekunder mellem frames. Denne værdi er fælles for hele filen.
dwMaxBytesPerSec Angiver den omtrentlige maksimale filoverførselshastighed. Denne værdi angiver antallet af bytes pr. sekund, som systemet skal behandle.
dwFlags - indeholder en liste over videofilegenskaber. Gyldige værdier er:
Flag | Beskrivelse |
---|---|
AVIF_HASINDEX | Der er en blok 'idx1' i filen. |
AVIF_MUSUSEINDEX | Specificerer, at et indeks, snarere end det fysiske arrangement af blokke i filen, skal bruges til at bestemme den rækkefølge, som dataene præsenteres i. |
AVIF_ISINTERLEAVED | Indikerer interleaving af lyd- og videodata. |
AVIF_WASCAPTUREFILE | |
AVIF_COPYRIGHTED | Angiver, at filen indeholder ophavsretligt beskyttede data og software. |
dwTotalFrames Angiver det samlede antal rammer i filen.
dwStreams Angiver antallet af streams i filen. For eksempel har en fil med lyd og video 2 streams.
dwSuggestedBufferSize Angiver den anbefalede bufferstørrelse til læsning af filen. Denne størrelse skal være stor nok til at indeholde den største overskrift og signaturdatablok. Hvis den indstillede værdi er nul eller for lav, vil filafspilningsprogrammet omallokere hukommelse under drift, hvilket vil reducere ydeevnen.
dwWidth - indstiller bredden på AVI-filen.
dwHeight [7] - indstiller højden på AVI-filen.
Stream headersStream-headeren har følgende struktur:
typedef struct { FOURCC fccType ; FOURCC fccHandler ; DWORD dwFlags ; DWORD dwPriority ; DWORD dwInitialFrames ; DWORD dwScale ; DWORD dwRate ; DWORD dwStart ; DWORD dwLength ; DWORD dwSuggestedBufferSize ; DWORD dwQuality ; DWORD dwSampleSize ; RECT rcFrame ; } AVIStreamHeader ; Udvidet filoverskriftDen udvidede filoverskrift har følgende struktur:
typedef struct { DWORD dwTotalFrames ; } ODMLExtendedAVIHeader ;mediebeholdere | |
---|---|
Video/lyd | |
Lyd | |
musik |
|
Raster | |
Vektor | |
Kompleks |