Audio Video Interleave (сокращённо AVI; букв. «чередование аудио и видео»; произн. /ˌeɪ.viːˈaɪ/[7]) — RIFF-медиаконтейнер, впервые использованный Microsoft в 1992 году в пакете Video for Windows.
Audio Video Interleave | |
---|---|
Расширение |
.avi [1] |
MIME-тип | video/vnd.avi[2][3] |
Разработчик | Майкрософт[4] |
Опубликован | 1992[5] |
Тип формата | медиаконтейнер |
Содержит | Аудио, видео |
Расширен из | RIFF[6] |
Файлы с расширением AVI могут содержать видео- и аудиоданные, сжатые с использованием разных комбинаций кодеков, что позволяет синхронно воспроизводить видео со звуком. Файл AVI может содержать различные виды компрессированных данных (например, DivX-видео + WMA-аудио или Indeo-видео + PCM-аудио), MP3-аудио в зависимости от того, какой кодек используется для кодирования/декодирования. Как и DVD, файлы AVI поддерживают многопоточное аудио-видео.
Формат файла
Все AVI-файлы включают в себя два обязательных блока LIST, которые определяют формат и данные потока. AVI-файлы могут также включать индекс-блок. Этот дополнительный блок определяет расположение видеоданных в файле. Типичная структура AVI-файла:
RIFF ('AVI ' LIST ('hdrl' <заголовок>) LIST ('movi' <видео>) ['idx1' <индекс>])
LIST hdrl
Блок, содержащий заголовок AVI-файла и заголовки потоков данных. Типичная структура:
LIST ('hdrl' '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[8] — задает высоту 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;
Примечания
Ссылки
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.