Audio Video Interleave

Поделись знанием:
Перейти к: навигация, поиск
Audio Video Interleave
Тип формата

медиаконтейнер

Содержит

Аудио, видео

Audio Video Interleave (сокращённо AVI; букв. «чередование аудио и видео») — RIFF-медиаконтейнер, впервые использованный Microsoft в 1992 году в пакете Video for Windows.

Формат файлов с расширением AVI может содержать видео- и аудиоданные, сжатые с использованием разных комбинаций кодеков, что позволяет синхронно воспроизводить видео со звуком. Файл AVI может содержать различные виды компрессированных данных (например, DivX-видео + WMA-аудио или Indeo-видео + PCM-аудио), в зависимости от того, какой кодек используется для кодирования/декодирования. Как и DVD, файлы AVI поддерживают многопоточное аудио-видео.





Формат файла

Все AVI файлы включают в себя два обязательных блока LIST, которые определяют формат и данные потока. AVI файлы могут также включать индекс-блок. Этот дополнительный блок определяет расположение видеоданных в файле. Типичная структура AVI-файла:

RIFF ('AVI ' LIST ('hdrl' <заголовок>) LIST ('movi' <видео>) ['idx1' <индекс>])

LIST hdrl

Блок, содержащий заголовок AVI файла и заголовки потоков данных. Типичная структура:

LIST ('hrdl' 'avih' (<заголовок AVI файла>) LIST ('strl' <заголовок потока 1>) LIST ('strl' <заголовок потока 2>) LIST ('odml' <расширенный заголовок AVI файла>))

Основной заголовок файла

Файл начинается с основного заголовка. В AVI файлах этот заголовок определяется блоком с 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'.
AVIF_MUSTUSEINDEX Указывает, что индекс, а не физическое расположение блоков в файле, должны быть использованы, чтобы определить порядок представления данных.
AVIF_ISINTERLEAVED Указывает на чередование аудио и видео данных.
AVIF_WASCAPTUREFILE
AVIF_COPYRIGHTED Указывает, что файл содержит защищённые авторскими правами данные и программное обеспечение.

dwTotalFrames  — указывает общее количество кадров в файле.

dwStreams — указывает количество потоков в файле. Например, файл с аудио и видео имеет 2 потока.

dwSuggestedBufferSize — определяет рекомендуемый размер буфера для чтения файла. Этот размер должен быть достаточно большим, чтобы содержать крупнейший блок данных с заголовком и сигнатурой. Если установленное значение равно нулю или слишком мало, программа для воспроизведения файла перераспределит память во время работы, что снизит производительность.

dwWidth — задает ширину AVI файла.

dwHeight[1] — задает высоту 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;

LIST movi

Индекс

Напишите отзыв о статье "Audio Video Interleave"

Примечания

  1. [www.opennet.ru/docs/formats/avi.txt AVI].

Ссылки

  • [www.jmcgowan.com/avi.html Описание технологии AVI авторства John’a P. McGowan’a]
  • [msdn.microsoft.com/en-us/library/aa451196.aspx Документация формата RIFF-AVI]
  • [www.fourcc.org/ Список кодеков FourCC]


Отрывок, характеризующий Audio Video Interleave



По опекунским делам рязанского именья, князю Андрею надо было видеться с уездным предводителем. Предводителем был граф Илья Андреич Ростов, и князь Андрей в середине мая поехал к нему.
Был уже жаркий период весны. Лес уже весь оделся, была пыль и было так жарко, что проезжая мимо воды, хотелось купаться.
Князь Андрей, невеселый и озабоченный соображениями о том, что и что ему нужно о делах спросить у предводителя, подъезжал по аллее сада к отрадненскому дому Ростовых. Вправо из за деревьев он услыхал женский, веселый крик, и увидал бегущую на перерез его коляски толпу девушек. Впереди других ближе, подбегала к коляске черноволосая, очень тоненькая, странно тоненькая, черноглазая девушка в желтом ситцевом платье, повязанная белым носовым платком, из под которого выбивались пряди расчесавшихся волос. Девушка что то кричала, но узнав чужого, не взглянув на него, со смехом побежала назад.
Князю Андрею вдруг стало от чего то больно. День был так хорош, солнце так ярко, кругом всё так весело; а эта тоненькая и хорошенькая девушка не знала и не хотела знать про его существование и была довольна, и счастлива какой то своей отдельной, – верно глупой – но веселой и счастливой жизнию. «Чему она так рада? о чем она думает! Не об уставе военном, не об устройстве рязанских оброчных. О чем она думает? И чем она счастлива?» невольно с любопытством спрашивал себя князь Андрей.
Граф Илья Андреич в 1809 м году жил в Отрадном всё так же как и прежде, то есть принимая почти всю губернию, с охотами, театрами, обедами и музыкантами. Он, как всякому новому гостю, был рад князю Андрею, и почти насильно оставил его ночевать.
В продолжение скучного дня, во время которого князя Андрея занимали старшие хозяева и почетнейшие из гостей, которыми по случаю приближающихся именин был полон дом старого графа, Болконский несколько раз взглядывая на Наташу чему то смеявшуюся и веселившуюся между другой молодой половиной общества, всё спрашивал себя: «о чем она думает? Чему она так рада!».
Вечером оставшись один на новом месте, он долго не мог заснуть. Он читал, потом потушил свечу и опять зажег ее. В комнате с закрытыми изнутри ставнями было жарко. Он досадовал на этого глупого старика (так он называл Ростова), который задержал его, уверяя, что нужные бумаги в городе, не доставлены еще, досадовал на себя за то, что остался.
Князь Андрей встал и подошел к окну, чтобы отворить его. Как только он открыл ставни, лунный свет, как будто он настороже у окна давно ждал этого, ворвался в комнату. Он отворил окно. Ночь была свежая и неподвижно светлая. Перед самым окном был ряд подстриженных дерев, черных с одной и серебристо освещенных с другой стороны. Под деревами была какая то сочная, мокрая, кудрявая растительность с серебристыми кое где листьями и стеблями. Далее за черными деревами была какая то блестящая росой крыша, правее большое кудрявое дерево, с ярко белым стволом и сучьями, и выше его почти полная луна на светлом, почти беззвездном, весеннем небе. Князь Андрей облокотился на окно и глаза его остановились на этом небе.
Комната князя Андрея была в среднем этаже; в комнатах над ним тоже жили и не спали. Он услыхал сверху женский говор.
– Только еще один раз, – сказал сверху женский голос, который сейчас узнал князь Андрей.
– Да когда же ты спать будешь? – отвечал другой голос.
– Я не буду, я не могу спать, что ж мне делать! Ну, последний раз…
Два женские голоса запели какую то музыкальную фразу, составлявшую конец чего то.
– Ах какая прелесть! Ну теперь спать, и конец.
– Ты спи, а я не могу, – отвечал первый голос, приблизившийся к окну. Она видимо совсем высунулась в окно, потому что слышно было шуршанье ее платья и даже дыханье. Всё затихло и окаменело, как и луна и ее свет и тени. Князь Андрей тоже боялся пошевелиться, чтобы не выдать своего невольного присутствия.