Audio Video Interleave
| Расширение |
|
|---|---|
| MIME |
|
| Разработан | |
| Тип формата | |
| Содержит |
Аудио, Видео |
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
[править] Индекс
[править] См. также
[править] Ссылки
- Описание технологии AVI авторства John’a P. McGowan’a
- Документация формата RIFF-AVI
- Список кодеков FourCC
| Это заготовка статьи по информатике. Вы можете помочь проекту, исправив и дополнив её. |
|
|
|
|---|---|
| Основные | |
| Только аудио | |