Audio Video Interleave

Վիքիպեդիայից՝ ազատ հանրագիտարանից
Audio Video Interleave
Изображение логотипа
Ընդլայնում.avi[1]
MIMEvideo/vnd.avi[2][3]
ՄշակողՄայքրոսոֆթ[4]
Հրատարակված է1992[5]
Ֆորմատի տեսակֆայլի ֆորմատ, մեդիայի պարունակիչ և մուլտիմեդիա քոնթեյներ
ՀիմքRIFF[6]


Audio Video Interleave (կրճատ AVI; «աուդիո և վիդեո հերթագայություն») RIFF-մեդիակոնտեյներ է, առաջին անգամ օգտագործվել է Microsoft-ի կողմից 1992 թվականին Video for Windows ծրագրային ապահովման մեջ։

Ֆայլի ֆորմատը AVI ընդլայնումով կարող է կրել վիդեո և աուդիո տվյալներ, խտացված կոդեկների տարբեր կոմբինացիաների օգտագործմամբ, որը թույլ է տալիս միատոն վերարտադրել տեսանյութը ձայնի հետ միասին։ AVI ֆայլը կարող է պարունակել տարբեր տեսակի խտացված տվյալներ (օրինակ՝ DivX-վիդեո + WMA-աուդիո կամ Indeo-վիդեո + PCM- աուդիո), կախված այն բանից, թե որ կոդեկն է օգտագործվել կոդավորման կամ ապակոդավորման համար։ Ինչպես DVD-ն, AVI ֆայլերը պահպանում են բազմահոսքային աուդիովիդեո։

Ֆայլի ֆորմատ[խմբագրել | խմբագրել կոդը]

Բոլոր AVI ֆայլերը իրենց մեջ կրում են երկու տարբեր պարտադիր LIST chunk-եր, որոնք սահմանում են հոսքի ֆորմատը և տվյալները։ AVI ֆայլերը նաև կարող են ներառել chunk ինդեքսը։ Այդ լրացուցիչ chunk-ը սահմանում է ֆայլում վիդեոտվյալների տեղադրությունը։ AVI-ֆայլի տիպիկ կառուցվածք՝

RIFF ('AVI ' LIST ('hdrl' <վերնագիր>) LIST ('movi' <վիդեո>) ['idx1' <ինդեքս>])

LIST hdrl[խմբագրել | խմբագրել կոդը]

AVI ֆայլի և տվյալների հոսքի վերնագրեր կրող Chunk: Տիպիկ կառուցվածք՝

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-պարունակում է վիդեոֆայլի հատկությունների ցուցակը. Թույլատրելի են հետևյալները.

դրոշակ նկարագրություն
AVIF_HASINDEX Ֆայլում կա 'idx1' chunk.
AVIF_MUSTUSEINDEX Ցույց է տալիս, որ ինդեքսը, այլ ոչ թե ֆայլում բլոկերի ֆիզիկական դիրքը, պետք է օգտագործվի, որպեսզի հնարավոր լինի որոշել տվյալների ցուցադրման հերթականությունը։
AVIF_ISINTERLEAVED Ցույց է տալիս աուդիո և վիդեո տվյալների հերթագայությամբ։
AVIF_WASCAPTUREFILE
AVIF_COPYRIGHTED Ցույց է տալիս, որ ֆայլը կրում է հեղինակային իրավունքներով պաշտպանված տվյալներ և ծրագրային ապահովում։

dwTotalFrames- ցույց է տալիս կադրերի ընդհանուր քանակը ֆայլում։

dwStreams- ցույց է տալիս ֆայլում հոսքերի քանակը։ Օրինակ՝ աուդիո և վիդեո կրող ֆայլը ունի երկու հոսք։

dwSuggestedBufferSize-որոշում է ֆայլի ընթերցման համար խորհուրդ տրվող բուֆերի չափսը։ Այդ չափսը պետք է լինի անհրաժեշտ չափով մեծ, որպեսզի կրի ամենածավալուն chunk-ը։ Եթե այն հավասար է զրոյի կամ շատ քիչ է, ֆայլի վերարտադրման համար ծրագիրը կվերաբաշխի հիշողությունը աշխատանքի ընթացքում, որը կնվազեցնի արդյունավետությունը։

dwWidth- տալիս է AVI ֆայլի լայնությունը։

dwHeight[7]-տալիս է AVI ֆայլի բարձրությունը։

Հոսքերի վերնագրեր[խմբագրել | խմբագրել կոդը]

Հոսքի վերնագիրը ունի հետևյալ կառուցվածքը՝

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;

Ծանոթագրություններ[խմբագրել | խմբագրել կոդը]

  1. http://www.iana.org/assignments/wave-avi-codec-registry/wave-avi-codec-registry.xml
  2. http://fileformats.archiveteam.org/wiki/AVI
  3. Fleischman E. WAVE and AVI Codec RegistriesIETF, 1998. — 71 p. — doi:10.17487/RFC2361
  4. http://apps.nationalarchives.gov.uk/pronom/fmt/5
  5. http://msdn.microsoft.com/en-us/magazine/hh580739.aspx
  6. http://msdn.microsoft.com/en-us/library/aa931363.aspx
  7. «AVI».

Արտաքին հղումներ[խմբագրել | խմբագրել կոդը]