view DOCS/xml/ru/containers.xml @ 23709:b214397ad0e2

proper parsing of pes_extension[12] fields (replaces the previous code that relied on specific flags set
author nicodvb
date Sat, 07 Jul 2007 08:22:47 +0000
parents 37ef65c09ac6
children a87b9a61daed
line wrap: on
line source

<?xml version="1.0" encoding="utf-8"?>
<!-- synced with r23538 -->
<chapter id="containers">
<title>Поддерживаемые форматы</title>

<para>
Важно разъяснить одну общую ошибку. Когда люди видят файл с расширением
<filename>.AVI</filename>, они немедленно заключают, что это - не MPEG файл.
Это не так. Во всяком случае не всегда. Супротив популярному мнению
такой файл <emphasis>может</emphasis> содержать MPEG видео.
</para>

<para>
Как видите, <emphasis role="bold">кодек</emphasis> &mdash; это не то же самое,
что и <emphasis role="bold">формат файла</emphasis>.
Примеры видео <emphasis role="bold">кодеков</emphasis>: MPEG1, MPEG2, MPEG4 (DivX), Indeo5, 3ivx.
Примеры видео <emphasis role="bold">форматов</emphasis>: MPG, AVI, ASF.
</para>

<para>
В теории, Вы можете поместить OpenDivX видео и MP3 аудио 
в <emphasis role="bold">файл MPG формата</emphasis>. Хотя, большинство
плееров не смогут это проиграть, поскольку они ожидают MPEG1 видео и 
MP2 аудио (в отличие от 
<emphasis role="bold">AVI</emphasis>, в <emphasis role="bold">MPG</emphasis>
нет нужных полей для описания его видео и аудио потоков).
Или Вы можете поместить MPEG1 видео в AVI файл.
<ulink url="http://ffmpeg.sourceforge.net/">FFmpeg</ulink> и
<link linkend="mencoder"><application>MEncoder</application></link> могут создавать эти файлы.
</para>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="video-formats">
<title>Видео форматы</title>

<sect2 id="mpg-vob-dat">
<title>MPEG файлы</title>

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

<itemizedlist>
<listitem><para>
  MPG: Это наиболее <emphasis role="bold">основная</emphasis> форма файлов
  формата MPEG. Она содержит MPEG1 видео, и MP2 (MPEG-1 layer 2) или реже
  MP1 аудио.
</para></listitem>
<listitem><para>
  DAT: Это почти такой же формат, как MPG, только с другим расширением. Он
  используется на <emphasis role="bold">Video CD</emphasis>. Из-за метода,
  которым создаются VCD и дизайна Linux'а, DAT файлы не могут проигрываться и
  копироваться с VCD, как обычные файлы. Для проигрывания Video CD Вы должны
  использовать <option>vcd://</option>.
</para></listitem>
<listitem><para>
  VOB: Это формат MPEG файлов на <emphasis role="bold">DVD'шниках</emphasis>.
  Это такой же формат, как и MPG, плюс возможность содержать субтитры и
  не-MPEG (AC3) аудио. Он содержит кодированное MPEG2 видео и обычно AC3
  аудио, но DTS, MP2 и не запакованный LPCM тоже возможны. <emphasis role="bold">
  Читайте секцию <link linkend="dvd">DVD</link></emphasis>!
</para></listitem>
<listitem><para>
  TY: Это TiVo MPEG поток. Он содержит как MPEG PES данные аудио и видео потоков,
  так и дополнительную информацию вроде субтитров. Формат файла - 
  это не программный поток MPEG (MPEG program stream), а некий закрытый формат,
  созданный TiVo. Более побдробно о формате TiVo можно прочитать 
  на <ulink url="http://dvd-create.sourceforge.net/tystudio/tystream.shtml">
  странице TyStudio</ulink>.
</para></listitem>
</itemizedlist>

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

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

<!-- ********** -->

<sect2 id="avi">
<title>AVI файлы</title>

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

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

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

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

<para>
<application>MPlayer</application> поддерживает два типа синхронизации для
AVI файлов:
<itemizedlist>
<listitem><para>
  <emphasis role="bold">основанный на bps[битпотоке]:</emphasis> Он основан на
  битпотоке/потоке сэмплов для видео/аудио потоков. Этот метод применяется
  большинством плееров, включая
  <ulink url="http://avifile.sourceforge.net">avifile</ulink> и
  <application>Windows Media Player</application>. Файлы с испорченными
  заголовками и файлы созданные с VBR аудио в не VBR-совместимом кодировщике
  приведут к A/V рассинхронизации при использовании этого метода (по большей
  части при перемещении по фильму).
</para></listitem>
<listitem><para>
  <emphasis role="bold">основанный на слоёности:</emphasis> Он не использует
  значение битпотока из заголовка, вместо этого используется относительная
  позиция слоёных кусков аудио и видео, что делает воспроизводимыми 
  плохо закодированные с VBR аудио.
</para></listitem>
</itemizedlist>
</para>

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

<!-- ********** -->

<sect2 id="asf-wmv">
<title>ASF/WMV файлы</title>
<para>
ASF (Active Streaming Format) исходит от Microsoft. Они разработали два варианта
ASF, v1.0 и v2.0. v1.0 используется их медиа средствами 
(<application>Windows Media Player</application> и 
<application>Windows Media Encoder</application>)
и сильно засекречены. v2.0 опубликована и запатентована :). Конечно они
различаются, совсем нет никакой совместимости (это просто другая правовая игра).
<application>MPlayer</application> поддерживает только v1.0, поскольку никто
никогда не видел v2.0 файлов :). Заметьте, что ASF файлы теперь появляются
с расширениями <filename>.WMA</filename> или <filename>.WMV</filename>.
</para>
</sect2>

<!-- ********** -->

<sect2 id="qt-mov">
<title>QuickTime/MOV файлы</title>

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

<!-- ********** -->

<sect2 id="vivo">
<title>VIVO файлы</title>

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

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

<!-- ********** -->

<sect2 id="fli">
<title>FLI файлы</title>
<para>
<emphasis role="bold">FLI</emphasis> это очень старый формат, используемый
Autodesk Animator, но это типичный формат для коротких анимационных роликов в сети.
<application>MPlayer</application> демультиплексирует и декодирует FLI фильмы
и даже способен перемещаться в этих файлах (полезно при цикличном проигрывании
с опцией <option>-loop</option>). Во FLI файлах нет ключевых кадров[keyframes],
поэтому некоторое время после перемещения картинка будет "грязной".
</para>
</sect2>

<!-- ********** -->

<sect2 id="realmedia">
<title>RealMedia (RM) файлы</title>

<para>
Да, <application>MPlayer</application> может читать (демультиплексировать)
RealMedia (<filename>.rm</filename>) файлы. 
</para>
</sect2>

<!-- ********** -->

<sect2 id="nuppelvideo">
<title>NuppelVideo файлы</title>
<para>
NuppelVideo -
это средство захвата с ТВ (AFAIK:). <application>MPlayer</application> может
читать его <filename>.NUV</filename> файлы (только NuppelVideo 5.0). Эти файлы
могут содержать несжатые YV12, YV12+сжатые RTJpeg, YV12 сжатые RTJpeg+lzo и
YV12 + сжатые lzo кадры. <application>MPlayer</application> декодирует (и также
<emphasis role="bold">кодирует</emphasis> <application>MEncoder
</application>'ом в MPEG4 (DivX) и т. д.!) все это. Перемещение работает.
</para>
</sect2>

<!-- ********** -->

<sect2 id="yuv4mpeg">
<title>yuv4mpeg файлы</title>
<para>
<ulink url="http://mjpeg.sourceforge.net">yuv4mpeg / yuv4mpeg2</ulink>
это формат файлов, используемых в 
<ulink url="http://mjpeg.sf.net">программах mjpegtools</ulink>.
Вы можете захватывать, изготовлять, отфильтровывать или кодировать видео в этот
формат, используя эти средства. В действительности формат файла -
последовательность несжатых YUV 4:2:0 кадров.
</para>
</sect2>

<!-- ********** -->

<sect2 id="film">
<title>FILM фильмы</title>
<para>
Этот формат используется в старых Sega Saturn CD-ROM играх.
</para>
</sect2>

<!-- ********** -->

<sect2 id="roq">
<title>RoQ файлы</title>
<para>
RoQ файлы - это мультимедийные файлы используемые в некоторых ID играх,
например Quake III и Return to Castle Wolfenstein.
</para>
</sect2>

<!-- ********** -->

<sect2 id="ogg">
<title>OGG/OGM файлы</title>
<para>
Это новый формат файлов от <ulink url="http://www.xiph.org">Xiphophorus</ulink>.
Он может содержать любой видео или аудио кодек, CBR или VBR. Вам понадобятся,
чтобы <systemitem class="library">libogg</systemitem> и
<systemitem class="library">libvorbis</systemitem> были установлены до компиляции 
<application>MPlayer</application>'а, чтобы  иметь возможность проигрывать эти файлы.
</para>
</sect2>

<!-- ********** -->

<sect2 id="sdp">
<title>SDP файлы</title>
<para>
<ulink url="ftp://ftp.rfc-editor.org/in-notes/rfc2327.txt">SDP</ulink> - это
IETF стандартный формат для описания видео и аудио RTP потоков.
(требуется "<ulink url="http://www.live555.com/mplayer/">LIVE555 Streaming Media</ulink>".)
</para>
</sect2>

<!-- ********** -->

<sect2 id="pva">
<title>PVA файлы</title>
<para>
PVA - это похожий на MPEG формат, используемый в программах DVB TV карт (например:
<application>MultiDec</application>, <application>WinTV</application> под Windows.
</para>
</sect2>

<!-- ********** -->

<sect2 id="nsv">
<title>NSV files</title>
<para>
NSV (NullSoft Video) &mdash; это формат файла, используемый
<application>Winamp</application>'ом для потокового аудио и видео.
Видео бывает VP3, VP5 или VP6, а аудио &mdash; MP3, AAC или VLB.
Версии NSV, в которых только аудио, имеют расширение <filename>.nsa</filename>.
<application>MPlayer</application> воспроизводит как NSV потоки,
так и файлы. Пожалуйста, заметьте, что большая часть файлов с
<ulink url="http://www.winamp.com">сайта Winamp</ulink> использует VLB аудио,
которое ещё не может декодироваться. Более того, для потоков с этого сайта
необходим ещё один уровень депакетизации, который ещё нужно написать (эти
файлы всё равно невозможно проиграть, поскольку они используют VLB аудио).
</para>
</sect2>

<!-- ********** -->

<sect2 id="matroska">
<title>Файлы Matroska</title>
<para>
Matroska это открытый формат файла.
подробнее читайте на <ulink url="http://www.matroska.org/">официальном сайте</ulink>.
</para>
</sect2>

<!-- ********** -->

<sect2 id="nut">
<title>NUT файлы</title>
<para>
NUT это формат файла, разработанный ребятами из <application>MPlayer</application> и 
<application>FFmpeg</application>. Оба проекта поддерживают его.
Подробности читайте на <ulink url="http://www.nut.hu/">официальном сайте</ulink>.
</para>
</sect2>

<!-- ********** -->

<sect2 id="gif">
<title>GIF файлы</title>
<para>
<emphasis role="bold">GIF</emphasis> формат - это типичный формат для веб
графики. Существуют 2 версии спецификаций GIF, GIF87a и GIF89a. Основная
разница заключается в том, что GIF89a допускает анимацию. 
<application>MPlayer</application> поддерживает
оба формата, используя <systemitem class="library">libungif</systemitem> или
другую libgif-совместимую библиотеку. Не анимированные GIF'ы будут показываться
как однокадровое видео. (Используйте опции <option>-loop</option> и
<option>-fixed-vo</option>, чтобы показать их подольше.)
</para>

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

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

<para>
Если в Вашем дистрибутиве нет <systemitem class="library">libungif</systemitem>,
скачайте копию на
<ulink url="http://prtr-13.ucsc.edu/~badger/software/libungif/index.shtml">
домашней странице libungif</ulink>. Технические подробности см. в 
<ulink url="http://www.w3.org/Graphics/GIF/spec-gif89a.txt">GIF89a
спецификациях</ulink>.
</para>
</sect2>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="audio-formats">
<title>Аудио форматы</title>

<para>
<application>MPlayer</application> - это проигрыватель
<emphasis role="bold">фильмов</emphasis>, а не
<emphasis role="bold">медиа</emphasis> плеер, хотя он может проигрывать
некоторые форматы аудио файлов (они перечислены ниже). Это не является рекомендуемым
применением <application>MPlayer</application>'а, Вам лучше использовать <ulink
url="http://www.xmms.org">XMMS</ulink>.
</para>

<!-- ********** -->

<sect2 id="mp3">
<title>MP3 файлы</title>
<para>
У Вас могут возникнуть проблемы при проигрывании некоторых MP3 файлов, которые
<application>MPlayer</application> будет неверно определять, как MPEG'и и
проигрывать неправильно или вообще никак. Это не может быть исправлено без
потери поддержки некоторых плохих MPEG файлов и поэтому всё останется как есть
в обозримом будущем. Опция <option>-demuxer</option>, описанная на man странице,
может Вам помочь в этом случае.
</para>
</sect2>

<!-- ********** -->

<sect2 id="ogg-vorbis">
<title>OGG/OGM файлы (Vorbis)</title>
<para>
Требуются правильно установленные 
<systemitem class="library">libogg</systemitem> и
<systemitem class="library">libvorbis</systemitem>.
</para>
</sect2>

<!-- ********** -->

<sect2 id="cdda">
<title>CD аудио</title>
<para>
<application>MPlayer</application> может использовать <application>cdparanoia
</application>(библиотеку) для проигрывания CDDA (Audio CD[Аудио CD]).
В задачи этого раздела не входит описание возможностей библиотеки
<application>cdparanoia</application>.
</para>

<para>
См. на man странице описание опции <option>-cdda</option>, которая может
использоваться для передачи параметров в библиотеку 
<application>cdparanoia</application>.
</para>
</sect2>

<!-- ********** -->

<sect2 id="xmms">
<title>XMMS</title>

<para>
<application>MPlayer</application> может использовать
<application>XMMS</application>
расширения для ввода<!-- звучит жутковато, но это - перевод из XMMS :) -->, чтобы
проигрывать множество форматов файлов. Существуют расширения для проигрывания
мелодий из SNES игр, SID мелодий (из Commodore 64), множества Amiga форматов,
.xm, .it, VQF, musepack, Bonk, shorten и множества других. Все это Вы можете
отыскать на <ulink url="http://www.xmms.org/plugins_input.html">странице
расширений XMMS для ввода</ulink>.
</para>

<para>
Для использования этих возможностей Вам нужно установить <application>XMMS
</application> и скомпилировать <application>MPlayer</application> c соответствующей опцией:
<filename>./configure --enable-xmms</filename>. Если это не работает, Вам
может понадобиться настроить пути к библиотеке и расширениям непосредственно,
используя опции <option>--with-xmmsplugindir</option> и <option>
--with-xmmslibdir</option>.
</para>
</sect2>
</sect1>
</chapter>