ñòàòüèGNU Free Documentation License ìàòåðèàëû âçÿòû èç Âèêèïåäèè Ñòàòüÿ áûëà èçìåíåíà. Îðèãèíàë ñòàòüè.

Audio Video Interleave

Ìàòåðèàë èç Ýíöèêëîïåäèè â ñâîáîäíîé ýíöèêëîïåäèè
(ïåðåíàïðàâëåíî ñ «AVI»)
Ïåðåéòè ê: íàâèãàöèÿ, ïîèñê
Audio Video Interleave
Ðàñøèðåíèå

.avi

MIME

video/avi, video/msvideo, video/x-, msvideo

Ðàçðàáîòàí

Microsoft

Òèï ôîðìàòà

ìåäèàêîíòåéíåð

Ñîäåðæèò

Àóäèî, Âèäåî

Audio Video Interleave (ñîêðàù¸ííî AVI; áóêâ. «÷åðåäîâàíèå àóäèî è âèäåî») â RIFF-ìåäèàêîíòåéíåð, âïåðâûå èñïîëüçîâàííûé Microsoft â 1992 ãîäó â ïàêåòå Video for Windows.

Ôîðìàò ôàéëîâ ñ ðàñøèðåíèåì AVI ìîæåò ñîäåðæàòü âèäåî è àóäèî äàííûå, ñæàòûå ñ èñïîëüçîâàíèåì ðàçíûõ êîìáèíàöèé êîäåêîâ, ÷òî ïîçâîëÿåò ñèíõðîííî âîñïðîèçâîäèòü âèäåî ñî çâóêîì. AVI ôàéë ìîæåò ñîäåðæàòü ðàçëè÷íûå âèäû êîìïðåññèðîâàííûõ äàííûõ (íàïðèìåð, DivX â âèäåî + WMA â àóäèî èëè Indeo â âèäåî + PCM â àóäèî), â çàâèñèìîñòè îò òîãî, êàêîé êîäåê èñïîëüçóåòñÿ äëÿ êîäèðîâàíèÿ/äåêîäèðîâàíèÿ. Êàê è DVD, AVI ôàéëû ïîääåðæèâàþò ìíîãîïîòîêîâîå àóäèîâèäåî. AVI-ôàéëû ìîãóò ñîäåðæàòü ðàçëè÷íûå âèäû ñæàòûõ äàííûõ, ê ïðèìåðó DivX äëÿ âèäåîèíôîðìàöèè è MP3 äëÿ àóäèî.

Ñîäåðæàíèå

[ïðàâèòü] Ôîðìàò ôàéëà

Âñå AVI ôàéëû âêëþ÷àþò â ñåáÿ äâà îáÿçàòåëüíûõ LIST chunk'à, êîòîðûå îïðåäåëÿþò ôîðìàò è äàííûå ïîòîêà. AVI ôàéëû ìîãóò òàêæå âêëþ÷àòü èíäåêñ chunk. Ýòîò äîïîëíèòåëüíûé chunk îïðåäåëÿåò ðàñïîëîæåíèå âèäåîäàííûõ â ôàéëå. Òèïè÷íàÿ ñòðóêòóðà AVI-ôàéëà:

RIFF ('AVI ' LIST ('hdrl' <çàãîëîâîê>) LIST ('movi' <âèäåî>) ['idx1' <èíäåêñ>])

[ïðàâèòü] LIST hdrl

Chunk, ñîäåðæàùèé çàãîëîâîê AVI ôàéëà è çàãîëîâêè ïîòîêîâ äàííûõ. Òèïè÷íàÿ ñòðóêòóðà:

LIST ('hrdl' 'avih' (<çàãîëîâîê AVI ôàéëà>) LIST ('strl' <çàãîëîâîê ïîòîêà 1>) LIST ('strl' <çàãîëîâîê ïîòîêà 2>) LIST ('odml' <ðàñøèðåííûé çàãîëîâîê AVI ôàéëà>))

[ïðàâèòü] Îñíîâíîé çàãîëîâîê ôàéëà

Ôàéë íà÷èíàåòñÿ ñ îñíîâíîãî çàãîëîâêà.  AVI ôàéëàõ, ýòîò çàãîëîâîê îïðåäåëÿåòñÿ chunk'îì ñ FOURCC 'avih'. Çàãîëîâîê ñîäåðæèò ãëîáàëüíóþ èíôîðìàöèþ äëÿ âñåãî ôàéëà, òàêóþ êàê ÷èñëî ïîòîêîâ â ôàéëå, øèðèíà è âûñîòà âèäåîïîòîêà. Îñíîâíîé çàãîëîâîê èìååò ñëåäóþùóþ ñòðóêòóðó:

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 -- îïðåäåëÿåò êîëè÷åñòâî ìèêðîñåêóíä ìåæäó êàäðàìè. Ýòî çíà÷åíèå îáùåå äëÿ âñåãî ôàéëà.

dwMaxBytesPerSec -- óêàçûâàåò ïðèìåðíóþ ìàêñèìàëüíóþ ñêîðîñòü ïåðåäà÷è äàííûõ ôàéëà. Ýòî çíà÷åíèå óêàçûâàåò êîëè÷åñòâî áàéò â ñåêóíäó, êîòîðûå ñèñòåìà äîëæíà îáðàáàòûâàòü.

dwFlags -- cîäåðæèò ïåðå÷åíü ñâîéñòâ âèäåîôàéëà. Äîïóñòèìû ñëåäóþùèå çíà÷åíèÿ:

Ôëàã Îïèñàíèå
AVIF_HASINDEX Â ôàéëå ïðèñóòñòâóåò 'idx1' chunk.
AVIF_MUSTUSEINDEX Óêàçûâàåò, ÷òî èíäåêñ, à íå ôèçè÷åñêîå ðàñïîëîæåíèå áëîêîâ â ôàéëå, äîëæíû áûòü èñïîëüçîâàíû, ÷òîáû îïðåäåëèòü ïîðÿäîê ïðåäñòàâëåíèÿ äàííûõ.
AVIF_ISINTERLEAVED Óêàçûâàåò íà ÷åðåäîâàíèå àóäèî è âèäåî äàííûõ.
AVIF_WASCAPTUREFILE
AVIF_COPYRIGHTED Óêàçûâàåò, ÷òî ôàéë ñîäåðæèò çàùèùåííûå àâòîðñêèìè ïðàâàìè äàííûå è ïðîãðàììíîå îáåñïå÷åíèå.

[ïðàâèòü] Çàãîëîâêè ïîòîêîâ

Çàãîëîâîê ïîòîêà èìååò ñëåäóþùóþ ñòðóêòóðó:

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;

[ïðàâèòü] Ðàñøèðåííûé çàãîëîâîê ôàéëà

Ðàñøèðåííûé çàãîëîâîê ôàéëà èìååò ñëåäóþùóþ ñòðóêòóðó:

typedef struct {
  DWORD dwTotalFrames;
} ODMLExtendedAVIHeader;

[ïðàâèòü] LIST movi

[ïðàâèòü] Èíäåêñ

[ïðàâèòü] Ñì. òàêæå

[ïðàâèòü] Ññûëêè


Ïðîñòðàíñòâà èì¸í

Âàðèàíòû
Ïðîñìîòðû
Äåéñòâèÿ