6.1. Видео форматы
Пред. | Глава 6. Поддерживаемые форматы | След.

## 6.1. Видео форматы

### 6.1.1. MPEG файлы

MPEG файлы бывают различных разновидностей:

- MPG: Это наиболее основная форма файлов формата MPEG. Она содержит MPEG1 видео, и MP2 (MPEG-1 layer 2) или реже MP1 аудио.
- DAT: Это почти такой же формат, как MPG, только с другим расширением. Он используется на Video CD. Из-за метода, которым создаются VCD и дизайна Linux'а, DAT файлы не могут проигрываться и копироваться с VCD, как обычные файлы. Для проигрывания Video CD Вы должны использовать `vcd://`.
- VOB: Это формат MPEG файлов на DVD'шниках. Это такой же формат, как и MPG, плюс возможность содержать субтитры и не-MPEG (AC3) аудио. Он содержит кодированное MPEG2 видео и обычно AC3 аудио, но DTS, MP2 и не запакованный LPCM тоже возможны. Читайте секцию DVD!
- TY: Это TiVo MPEG поток. Он содержит как MPEG PES данные аудио и видео потоков, так и дополнительную информацию вроде субтитров. Формат файла - это не программный поток MPEG (MPEG program stream), а некий закрытый формат, созданный TiVo. Более побдробно о формате TiVo можно прочитать на странице TyStudio.

Серии кадров независимо группируются в MPEG файлах. Это значит, что Вы можете разрезать/соединять MPEG фалы стандартными файловыми средствами (такими, как dd, cut), и он остаётся полностью функциональным.

Одно из основных преимуществ MPG'ов это то, что в них есть поле, описывающее соотношение сторон видео потока. Например, на SVCD содержится видео разрешением 480x480, и заголовок установил его(поле) в 4:3, поэтому это будет проигрываться на 640x480. В AVI файлах такого поля нет, поэтому они должны быть масштабированы при кодировании или проигрываться с опцией `-aspect`.

### 6.1.2. AVI файлы

Разработанный Microsoft'ом AVI (Audio Video Interleaved [Аудио Видео 'Слоёные']) - это широко распространённый многоцелевой формат, в настоящий момент чаще всего применяемый для MPEG4 (DivX и DivX4) видео. У него много известных недостатков и недочётов (например в потоках). Он поддерживает 1 видео поток и от 0 до 99 аудио потоков и может быть не более 2 Гб, хотя существует расширениеOpenDML, допускающее большие файлы. В настоящий момент Microsoft сильно отговаривает от его применения и советует использовать ASF/WMV. Никого это не волнует.

Существует хак[hack], позволяющий AVI файлам содержать Ogg Vorbis аудио потоки, но делает их несовместимыми со стандартными AVI. MPlayer поддерживает воспроизведение таких файлов. Перемещение также осуществлено, но затруднено плохо закодированными файлами с запутанными заголовками. К сожалению, эта проблема проявляется у единственного кодировщика, способного создавать такие файлы - NanDub.

### Замечание

DV камеры создают сырые DV потоки, которые средства DV захвата превращают в AVI файлы двух типов. AVI'шники либо будут содержать разделённые аудио и видео потоки, которые MPlayer может воспроизводить, или сырой DV поток, поддержка которого находится в стадии разработки.

Существует два класса AVI файлов:

- 'Слоёные'[Interleaved]: Аудио и видео содержимое 'переплетается'. Это стандартное применение. Рекомендовано и используется чаще всего. Некоторые программы создают слоёные AVI'шники с плохой синхронизацией. MPlayer определяет это как слоёный файл, и затем теряет A/V синхронизацию, вероятно при перемещении по файлу. Такие файлы должны проигрываться как не слоёные (с опцией `-ni`).
- Не слоёные: Сначала идёт весь видео поток, затем весь аудио поток. Это требует огромного количества перемещений по файлу, что делает проигрывание таких файлов по сети или с CD-ROM затруднительным.

MPlayer поддерживает два типа синхронизации для AVI файлов:

- основанный на bps[битпотоке]: Он основан на битпотоке/потоке сэмплов для видео/аудио потоков. Этот метод применяется большинством плееров, включая avifile и Windows Media Player. Файлы с испорченными заголовками и файлы созданные с VBR аудио в не VBR-совместимом кодировщике приведут к A/V десинхронизации при использовании этого метода (по большей части при перемещении по фильму).
- основанный на слоёности: Он не использует значение битпотока из заголовка, вместо этого используется относительная позиция слоёных кусков аудио и видео, что делает воспроизводимыми плохо закодированные с VBR аудио.

Допустимы любые аудио и видео кодеки, но заметьте, что VBR аудио не очень хорошо поддерживается большинством плееров. Формат файла делает возможным использование VBR аудио, но многие плееры ожидают CBR, поэтому они выходят из строя с VBR. VBR редко встречается и Microsoft'овские AVI спецификации описывают только CBR аудио. Я также заметил, что большинство кодировщиков создают плохие файлы при использовании VBR аудио. Известно только два исключения: NanDub и MEncoder.

### 6.1.3. ASF/WMV файлы

ASF (Active Streaming Format) исходит от Microsoft. Они разработали два варианта ASF, v1.0 и v2.0. v1.0 используется их медиа средствами (Windows Media Player и Windows Media Encoder) и сильно засекречены. v2.0 опубликована и запатентована :). Конечно они различаются, совсем нет никакой совместимости (это просто другая правовая игра). MPlayer поддерживает только v1.0, поскольку никто никогда не видел v2.0 файлов :). Заметьте, что ASF файлы теперь появляются с расширениями `.WMA` или `.WMV`.

### 6.1.4. QuickTime/MOV файлы

Эти форматы файлов были разработаны в Apple и могут содержать любой кодек, CBR или VBR. Обычно у них расширение `.QT` или `.MOV`. Заметьте, что поскольку MPEG4 Group выбрала QuickTime в качестве рекомендованного формата для MPEG4, их MOV файлы идут с расширением `.MPG` или `.MP4` (Интересно, что видео и аудио потоки в этих файлах - настоящие MPG и AAC файлы. Вы даже можете извлечь их, используя опции `-dumpvideo` и `-dumpaudio`.).

### 6.1.5. VIVO файлы

MPlayer успешно демультиплексирует VIVO форматы файлов. Огромный недостаток этого формата заключается в том, что в нем нет ни индексных блоков, ни фиксированного размера пакетов или байтов синхронизации и в большинстве файлов нет даже ключевых кадров[keyframes], так что забудьте о перемещении по файлу!

Видео кодек в VIVO/1.0 файлах - это стандартный h.263. Видео кодек в VIVO/2.0 файлах - это модифицированный, нестандартный h.263v2. Аудио в обоих форматах одинаковое, это может быть g.723 (стандарт), или Vivo Siren.

### 6.1.6. FLI файлы

FLI это очень старый формат, используемый Autodesk Animator, но это типичный формат для коротких анимационных роликов в сети. MPlayer демультиплексирует и декодирует FLI фильмы и даже способен перемещаться в этих файлах (полезно при цикличном проигрывании с опцией `-loop`). Во FLI файлах нет ключевых кадров[keyframes], поэтому некоторое время после перемещения картинка будет "грязной".

### 6.1.7. RealMedia (RM) файлы

Да, MPlayer может читать (демультиплексировать) RealMedia (`.rm`) файлы.

### 6.1.8. NuppelVideo файлы

NuppelVideo - это средство захвата с ТВ (AFAIK:). MPlayer может читать его `.NUV` файлы (только NuppelVideo 5.0). Эти файлы могут содержать несжатые YV12, YV12+сжатые RTJpeg, YV12 сжатые RTJpeg+lzo и YV12 + сжатые lzo кадры. MPlayer декодирует (и также кодирует MEncoder 'ом в MPEG4 (DivX) и т. д.!) все это. Перемещение работает.

### 6.1.9. yuv4mpeg файлы

yuv4mpeg / yuv4mpeg2 это формат файлов, используемых в программах mjpegtools. Вы можете захватывать, изготовлять, отфильтровывать или кодировать видео в этот формат, используя эти средства. В действительности формат файла - последовательность несжатых YUV 4:2:0 кадров.

### 6.1.10. FILM фильмы

Этот формат используется в старых Sega Saturn CD-ROM играх.

### 6.1.11. RoQ файлы

RoQ файлы - это мультимедийные файлы используемые в некоторых ID играх, например Quake III и Return to Castle Wolfenstein.

### 6.1.12. OGG/OGM файлы

Это новый формат файлов от Xiphophorus. Он может содержать любой видео или аудио кодек, CBR или VBR. Вам понадобятся, чтобы `libogg` и `libvorbis` были установлены до компиляции MPlayer'а, чтобы иметь возможность проигрывать эти файлы.

### 6.1.13. SDP файлы

SDP - это IETF стандартный формат для описания видео и аудио RTP потоков. (требуется "LIVE555 Streaming Media".)

### 6.1.14. PVA файлы

PVA - это похожий на MPEG формат, используемый в программах DVB TV карт (например: MultiDec, WinTV под Windows.

### 6.1.15. NSV files

NSV (NullSoft Video) — это формат файла, используемый Winamp'ом для потокового фудио и видео. Видео бывает VP3, VP5 или VP6, а аудио — MP3, AAC или VLB. Версии NSV, в которых только аудио, имеют расширение `.nsa`. MPlayer воспроизводит как NSV потоки, так и файлы. Пожалуйста, заметьте, что большая часть файлов с сайта Winamp использует VLB аудио, которое ещё не может декодироваться. Более того, для потоков с этого сайта необходим ещё один уровень депакетизации, который ещё нужно написать (эти файлы всё равно невозможно проиграть, поскольку они используют VLB аудио).

### 6.1.16. Файлы Matroska

Matroska это открытый формат файла. подробнее читайте на официальном сайте.

### 6.1.17. NUT файлы

NUT это формат файла, разработанный ребятами из MPlayer и FFmpeg. Оба проекта поддерживают его. Подробности читайте на официальном сайте.

### 6.1.18. GIF файлы

GIF формат - это типичный формат для веб графики. Существуют 2 версии спецификаций GIF, GIF87a и GIF89a. Основная разница заключается в том, что GIF89a допускает анимацию. MPlayer поддерживает оба формата, используя `libungif` или другую libgif-совместимую библиотеку. Не анимированные GIF'ы будут показываться как однокадровое видео. (Используйте опции `-loop` и `-fixed-vo`, чтобы показать их подольше.)

В настоящий момент MPlayer не поддерживает перемещение внутри GIF файлов. У GIF файлов не обязательно фиксированный размер кадра или фиксированная частота кадров. Наоборот, у каждого кадра свой собственный размер и должен выводиться в некотором поле фиксированного размера. Частота кадров контролируется дополнительным блоком перед каждым кадром, который определяет задержку перед следующим кадром в сотых долях секунды.

Стандартные GIF файлы содержат 24-битные RGB кадры с не более чем 8-битовой индексированной палитрой. Кадры обычно сжаты по LZW алгоритму, хотя некоторые GIF кодировщики создают несжатые кадры, чтобы избежать проблем с патентом на LZW сжатие.

Если в Вашем дистрибутиве нет `libungif`, скачайте копию на домашней странице libungif. Технические подробности см. в GIF89a спецификациях.

Пред. | Уровень выше | След.
Глава 6. Поддерживаемые форматы | Начало | 6.2. Аудио форматы