Mercurial > mplayer.hg
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> — это не то же самое, что и <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) — это формат файла, используемый <application>Winamp</application>'ом для потокового аудио и видео. Видео бывает VP3, VP5 или VP6, а аудио — 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>