Audio Video Interleave | |
---|---|
Förlängning | .avi[ett] |
MIME -typ | video/vnd.avi [2] [3] |
Utvecklaren | Microsoft [4] |
publiceras | 1992 [5] |
Formattyp | mediabehållare |
Innehåller | Ljud video |
Utökad från | RIF [6] |
Audio Video Interleave (förkortat AVI ; litat "audio and video interleaving") är en RIFF - mediebehållare som först användes av Microsoft 1992 i paketet Video for Windows .
Filer med AVI-tillägget kan innehålla video- och ljuddata komprimerade med olika kombinationer av codecs, vilket möjliggör synkron videouppspelning med ljud. En AVI-fil kan innehålla olika typer av komprimerad data (t.ex. DivX -video + WMA -ljud eller Indeo-video + PCM -ljud) beroende på vilken codec som används för kodning/avkodning. Precis som DVD-skivor stöder AVI-filer multi-stream audio-video.
Alla AVI-filer inkluderar två obligatoriska LIST-block som definierar formatet och streamdata. AVI-filer kan också innehålla ett indexblock. Detta valfria block definierar platsen för videodata i filen. Typisk AVI-filstruktur:
RIFF ('AVI ' LIST ('hdrl' <title>) LIST ('movi' <video>) ['idx1' <index>])
Ett block som innehåller AVI-filhuvudet och dataströmshuvuden. Typisk struktur:
LIST ('hdrl' 'avih' (<AVI-filhuvud>) LIST ('strl' <stream header 1>) LIST ('strl' <stream header 2>) LIST ('odml' <AVI file extended header>))
HuvudfilhuvudFilen börjar med ett huvudhuvud. I AVI-filer definieras denna rubrik av ett FOURCC 'avih'-block. Rubriken innehåller global information för hela filen, såsom antalet strömmar i filen, bredd och höjd på videoströmmen. Huvudhuvudet har följande 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 - Anger antalet mikrosekunder mellan bildrutor. Detta värde är gemensamt för hela filen.
dwMaxBytesPerSec Indikerar den ungefärliga maximala filöverföringshastigheten. Detta värde anger antalet byte per sekund som systemet ska bearbeta.
dwFlags - innehåller en lista över videofilegenskaper. Giltiga värden är:
Flagga | Beskrivning |
---|---|
AVIF_HASINDEX | Det finns ett block 'idx1' i filen. |
AVIF_MUSUSEINDEX | Anger att ett index, snarare än det fysiska arrangemanget av block i filen, ska användas för att bestämma i vilken ordning data presenteras. |
AVIF_ISINTERLEAVED | Indikerar interfoliering av ljud- och videodata. |
AVIF_WASCAPTUREFILE | |
AVIF_COPYRIGHTED | Indikerar att filen innehåller upphovsrättsskyddad data och programvara. |
dwTotalFrames Indikerar det totala antalet bildrutor i filen.
dwStreams Indikerar antalet strömmar i filen. Till exempel har en fil med ljud och video 2 strömmar.
dwSuggestedBufferSize Anger den rekommenderade buffertstorleken för att läsa filen. Denna storlek måste vara tillräckligt stor för att innehålla det största rubriken och signaturdatablocket. Om det inställda värdet är noll eller för lågt, kommer filuppspelningsprogrammet att omfördela minne under drift, vilket kommer att minska prestandan.
dwWidth - ställer in bredden på AVI-filen.
dwHeight [7] - ställer in höjden på AVI-filen.
Strömma rubrikerStrömhuvudet har följande 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 ; Utökad filhuvudDen utökade filhuvudet har följande struktur:
typedef struct { DWORD dwTotalFrames ; } ODMLExtendedAVIHeader ;mediebehållare | |
---|---|
Video/ljud | |
Audio | |
musik |
|
Raster | |
Vektor | |
Komplex |