Audio Video Interleave | |
---|---|
Rozšíření | .avi[jeden] |
MIME typ | video/vnd.avi [2] [3] |
Vývojář | Microsoft [4] |
zveřejněno | 1992 [5] |
Typ formátu | nádoba na média |
Obsahuje | Audio Video |
Rozšířeno z | RIF [6] |
Audio Video Interleave (zkráceně AVI ; vysvětleno „audio and video interleaving“) je mediální kontejner RIFF poprvé použitý společností Microsoft v roce 1992 v balíčku Video pro Windows .
Soubory s příponou AVI mohou obsahovat video a audio data komprimovaná pomocí různých kombinací kodeků, což umožňuje synchronní přehrávání videa se zvukem. Soubor AVI může obsahovat různé druhy komprimovaných dat (např. DivX video + WMA audio nebo Indeo video + PCM audio) v závislosti na tom, který kodek je použit pro kódování/dekódování. Stejně jako disky DVD i soubory AVI podporují multistream audio-video.
Všechny soubory AVI obsahují dva povinné bloky LIST, které definují formát a datový proud. Soubory AVI mohou také obsahovat blok indexu. Tento volitelný blok definuje umístění video dat v souboru. Typická struktura souborů AVI:
RIFF ('AVI' LIST ('hdrl' <title>) LIST ('movi' <video>) ['idx1' <index>])
Blok obsahující záhlaví souboru AVI a záhlaví datového toku. Typická struktura:
LIST ('hdrl' 'avih' (<záhlaví souboru AVI>) LIST ('strl' <záhlaví proudu 1>) LIST ('strl' <záhlaví proudu 2>) SEZNAM ('odml' <rozšířené záhlaví souboru AVI>)))
Hlavička hlavního souboruSoubor začíná hlavním záhlavím. V souborech AVI je tato hlavička definována blokem FOURCC 'avih'. Záhlaví obsahuje globální informace o celém souboru, jako je počet streamů v souboru, šířka a výška video streamu. Hlavní záhlaví má následující strukturu:
typedef struct { DWORD dwMicroSecPerFrame ; DWORD dwMaxBytesPerSec ; DWORD dwReserved1 ; DWORD dwFlags ; DWORD dwTotalFrames ; DWORD dwInitialFrames ; DWORD dwStreams ; DWORD dwSuggestedBufferSize ; DWORD dwWidth ; DWORD dwVýška ; DWORD dwReserved [ 4 ]; } MainAVIHeader ;dwMicroSecPerFrame – Určuje počet mikrosekund mezi snímky. Tato hodnota je společná pro celý soubor.
dwMaxBytesPerSec Označuje přibližnou maximální rychlost přenosu souborů. Tato hodnota určuje počet bajtů za sekundu, které by měl systém zpracovat.
dwFlags - obsahuje seznam vlastností video souboru. Platné hodnoty jsou:
Vlajka | Popis |
---|---|
AVIF_HASINDEX | V souboru je blok 'idx1'. |
AVIF_MUSTUSEINDEX | Určuje, že k určení pořadí, ve kterém jsou data prezentována, by měl být použit index, nikoli fyzické uspořádání bloků v souboru. |
AVIF_ISINTERLEAVED | Označuje prokládání audio a video dat. |
AVIF_WASCAPTUREFILE | |
AVIF_COPYRIGHTED | Označuje, že soubor obsahuje data a software chráněný autorským právem. |
dwTotalFrames Označuje celkový počet snímků v souboru.
dwStreams Označuje počet proudů v souboru. Například soubor se zvukem a videem má 2 streamy.
dwSuggestedBufferSize Určuje doporučenou velikost vyrovnávací paměti pro čtení souboru. Tato velikost musí být dostatečně velká, aby obsahovala největší blok dat záhlaví a podpisu. Pokud je nastavená hodnota nula nebo příliš nízká, program pro přehrávání souborů během provozu přerozdělí paměť, což sníží výkon.
dwWidth - nastavuje šířku souboru AVI.
dwHeight [7] - nastavuje výšku AVI souboru.
Záhlaví streamuZáhlaví streamu má následující strukturu:
typedef struct { FOURCC fccType ; FOURCC fccHandler ; DWORD dwFlags ; DWORD dwPriorita ; DWORD dwInitialFrames ; DWORD dwScale ; DWORD dwRate ; DWORD dwStart ; DWORD dwLength ; DWORD dwSuggestedBufferSize ; DWORD dwKvalita ; DWORD dwSampleSize ; RECT rcFrame ; } AVIStreamHeader ; Rozšířená hlavička souboruZáhlaví rozšířeného souboru má následující strukturu:
typedef struct { DWORD dwTotalFrames ; } ODMLExtendedAVIHeader ;kontejnery na média | |
---|---|
Video/Audio | |
Zvuk | |
Hudba |
|
Rastrové | |
Vektor | |
Komplex |