view DOCS/xml/ru/codecs.xml @ 22540:52c574919687

Fix live555 compilation when stream cache is disabled. based on patch by Gianluigi Tiesi, mplayer netfarm it
author diego
date Tue, 13 Mar 2007 23:35:00 +0000
parents 7b4bf230c06c
children 35d6439d1e57
line wrap: on
line source

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

<sect1 id="video-codecs">
<title>Видео кодеки</title>

<para>
<ulink url="../../codecs-status.html">Таблица статуса кодеков</ulink> содержит
полный, ежедневно обновляющийся список всех поддерживаемых кодеков. Некоторые
бинарные кодеки, которые можно использовать в MPlayer, доступны 
в <ulink url="http://www.mplayerhq.hu/design7/dload.html#binary_codecs">разделе закачки</ulink>
нашего сайта.
</para>

<para>
Наиболее важные кодеки:
</para>

<itemizedlist>
<listitem><para>
  <emphasis role="bold">MPEG1</emphasis> (<emphasis role="bold">VCD</emphasis>) и
  <emphasis role="bold">MPEG2</emphasis> (<emphasis role="bold">DVD</emphasis>) видео
</para></listitem>
<listitem><para>
  "родные" декодеры для <emphasis role="bold">всех вариантов DivX,
  3ivX, M$ MPEG-4</emphasis> v1, v2 и других вариантов MPEG-4.
</para></listitem>
<listitem><para>
  "родной" декодер для <emphasis role="bold">Windows Media Video 7/8</emphasis>
  (<emphasis role="bold">WMV1/WMV2</emphasis>), и Win32 DLL декодер
  для <emphasis role="bold">Windows Media Video 9</emphasis>
  (<emphasis role="bold">WMV3</emphasis>), оба используются в <filename>.wmv
  </filename> файлах
</para></listitem>
<listitem><para>
  "родной" <emphasis role="bold">Sorenson 1 (SVQ1)</emphasis> декодер
</para></listitem>
<listitem><para>
  "родной" <emphasis role="bold">Sorenson 3 (SVQ3)</emphasis> декодер
</para></listitem>
<listitem><para>
  <emphasis role="bold">3ivx</emphasis> v1, v2 декодер
</para></listitem>
<listitem><para>
  Cinepak и <emphasis role="bold">Intel Indeo</emphasis> кодеки (3.1,3.2,4.1,5.0)
</para></listitem>
<listitem><para>
  <emphasis role="bold">MJPEG</emphasis>, AVID, VCR2, ASV2 и другие аппаратные
  форматы
</para></listitem>
<listitem><para>
  VIVO 1.0, 2.0, I263 и другие <emphasis role="bold">h263(+)</emphasis> варианты
</para></listitem>
<listitem><para>
  FLI/FLC
</para></listitem>
<listitem><para>
  <emphasis role="bold">RealVideo 1.0 &amp; 2.0 </emphasis> из
  <systemitem class="library">libavcodec</systemitem>, и
  <emphasis role="bold">RealVideo 3.0 &amp; 4.0</emphasis> кодеки, используя 
  библиотеки RealPlayer
</para></listitem>
<listitem><para>
  "родной" декодер для HuffYUV
</para></listitem>
<listitem><para>
  Различные старые, простые, похожие на RLE форматы
</para></listitem>
</itemizedlist>

<para>
Если у Вас есть не упомянутый здесь Win32 кодек, который ещё не поддерживается,
пожалуйста, прочтите <link linkend="codec-importing">Как добавить кодек</link>
и помогите нам добавить для него поддержку.
</para>

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

<sect2 id="ffmpeg" xreflabel="FFmpeg/libavcodec">
<title>FFmpeg/libavcodec</title>

<para>
<ulink url="http://ffmpeg.sourceforge.net">FFmpeg</ulink> содержит
<systemitem class="library">libavcodec</systemitem> - ведущую библиотеку аудио
и видео кодеков с открытым исходным кодом. Она способна декодировать 
большинство мультимедиа форматов, обычно быстрее альтернатив, и периодически 
добавляется поддержка оставшихся. Это декодер по-умолчанию для большинства 
кодеков, поддерживаемых 
<application>MPlayer</application>. Кодирование также возможно для некоторых форматов и
поддерживается в <application>Mencoder</application>.
</para>

<para>
Полный список поддерживаемых
<ulink url="http://www.ffmpeg.org/ffmpeg-doc.html#SEC19">видео</ulink>
и <ulink url="http://www.ffmpeg.org/ffmpeg-doc.html#SEC20">аудио</ulink> кодеков 
доступен на домашней странице FFmpeg.
</para>

<para>
<application>MPlayer</application> 
содержит <systemitem class="library">libavcodec</systemitem>. 
Просто запустите <filename>./configure</filename> и компилируйте как обычно.
</para>
</sect2>

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

<sect2 id="xvid">
<title>Xvid</title>

<para>
<ulink url="http://www.xvid.org">Xvid</ulink> свободный, MPEG-4 ASP совместимый
видео кодек, особенностями которого являются двухпроходное кодирование и
полная поддержка MPEG-4 ASP, делающая его намного более эффективным, чем
хорошо известный DivX. Он предоставляет видео отменного качества и хорошую
производительность, в силу оптимизаций под большинство современных процессоров.
</para>

<para>
Он начался как ответвление OpenDivX кодека. Это произошло, когда ProjectMayo 
сделал исходный код OpenDivX
закрытым DivX4, и разработчики OpenDivX не из ProjectMayo
разозлились, и взялись за Xvid. Поэтому у обоих проектов общие корни.
</para>

<para>
Имейте в виду, что Xvid не нужен для декодирования Xvid-кодированного видео.
<systemitem class="library">libavcodec</systemitem> используется по-умолчанию,
т.к. обеспечивает более высокую скорость.
</para>

<procedure>
<title>Установка <systemitem class="library">Xvid</systemitem></title>

<para>
  Как и большинство ПО с открытым исходным кодом, он доступен как в виде 
  <ulink url="http://www.xvid.org/downloads.html">официальных релизов</ulink>,
  так и в виде CVS версии. 
  Как правило, CVS версия достаточно стабильна для использования, т.к. в большинстве
  случаев ее особенностью является отсутствие ошибок, присутствующих в релизах.
  Далее описывается как заставить  работать
  <systemitem class="library">Xvid</systemitem> CVS с <application>MEncoder</application>'ом
  (необходимы, как минимум,
  <application>autoconf</application> 2.50,
  <application>automake</application> и <application>libtool</application>):
</para>
<step><para>
  <screen>cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login</screen>
</para></step>
<step><para>
  <screen>cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore</screen>
</para></step>
<step><para>
  <screen>cd xvidcore/build/generic</screen>
</para></step>
<step><para>
  <screen>./bootstrap.sh</screen>
</para></step>
<step><para>
  <screen>./configure</screen>
  Вам может потребоваться добавить некоторые опции (посмотрите вывод
  <command>./configure --help</command>).
</para></step>
<step><para>
  <screen>make &amp;&amp; make install</screen>
</para></step>
<step><para>
  Если Вы указали <option>--enable-divxcompat</option>,
  скопируйте <filename>../../src/divx4.h</filename> в
  <filename class="directory">/usr/local/include/</filename>.
</para></step>
<step><para>
  Перекомпилируйте <application>MPlayer</application> с
  <option>--with-xvidlibdir=<replaceable>/path/to/</replaceable>libxvidcore.a</option>
  <option>--with-xvidincdir=<replaceable>/path/to/</replaceable>xvid.h</option>.
</para></step>
</procedure>
</sect2>

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

<sect2 id="codec-x264">
<title><systemitem class="library">x264</systemitem></title>

<sect3 id="codec-x264-whatis">
<title>Что такое <systemitem class="library">x264</systemitem>?</title>
<para>
<ulink url="http://developers.videolan.org/x264.html"><systemitem class="library">x264</systemitem></ulink> - 
это библиотека для создания
видеопотоков H.264. Она не завершена на 100%, но, по крайней мере, имеет 
поддержку большинства возможностей H.264, влияющих на качество.
В спецификации H.264 присутствует множество дополнительных возможностей,
которые сами по себе никак не влияют на качество видео и до сих в 
<systemitem class="library">x264</systemitem> не реализованы.
</para>

<itemizedlist>
<title>возможности кодера</title>
  <listitem><para>
  CAVLC/CABAC (Контекстнозависимое адаптивное бинарное арифметическое
                  кодирование / Контестнозависимое адаптивное кодирование с переменной длиной)
  </para></listitem>
  <listitem><para>Кадры с несколькими ссылками</para></listitem>
  <listitem><para>
  Базовые (I-) кадры: все типы макроблоков (16x16, 8x8 и 4x4 со всеми
  видами предсказания)
  </para></listitem>
  <listitem><para>
  Предсказуемые (P-) кадры: все дробления (от 16x16 до 4x4)
  </para></listitem>
  <listitem><para>
  Двунаправленные (B-) кадры: дробления от 16x16 до 8x8 (включая SKIP/DIRECT)
  </para></listitem>
  <listitem><para>
  Управление потоком: постоянный квантователь, постоянный битпоток,
  одинарный или многопроходный ABR, опциональный VBV
  </para></listitem>
  <listitem><para>Обнаружение усечения изображения</para></listitem>
  <listitem><para>Адаптивное расположение B-кадров</para></listitem>
  <listitem><para>
  B-кадры как ссылки или в произвольном расположении кадров
  </para></listitem>
  <listitem><para>Адаптивные пространственные преобразования 8x8 и 4x4</para></listitem>
  <listitem><para>Режим кодирования без потерь</para></listitem>
  <listitem><para>Возможность задания пользовательских матриц квантования</para></listitem>
  <listitem><para>Параллельное кодирование разных блоков</para></listitem>
  <listitem><para>Интерлейсинг</para></listitem>
</itemizedlist>
</sect3>

<sect3 id="codec-h264-whatis">
<title>Что такое H.264?</title>
<para>
H.264 - это одно из названий нового цифрового кодека, совместно 
разрабатываемого ITU и MPEG. Названия "ISO/IEC 14496-10" или
"MPEG-4 Part 10" тоже являются корректными, но чаще его
называют  "MPEG-4 AVC" или просто "AVC".
</para>

<para>
Как его ни называй, но H.264 стоит попробовать, поскольку он 
дает то же качество, что и MPEG-4 ASP, но при битрейте меньшем 
на 5%-30%. Конкретный результат зависит как от исходного
материала, так и от кодировщика. Выигрыш не дается просто так:
декодирование потока H.264, похоже, имеет существенно повышенные требования
к CPU и памяти. В частности, на 1733 MHz Athlon декодирование
H.264 потока в 1500кбит/с с DVD-разрешением  использует около 35% CPU.
Для сравнения, декодирование 1500кбит/с потока MPEG4-ASP с 
DVD-разрешением требует около 10% CPU. Это означает, что для 
большинства пользователей практически не может быть и речи о декодировании 
потоков высокого разрешения.
Также это значит, что даже скромный DVD рип может время от времени
заикаться на процессорах слабее 2.0 GHz или около того.
</para>

<para>
По крайней мере, с <systemitem class="library">x264</systemitem>
требования для кодирования не слишком велики по сравнению с MPEG4-ASP.
В частности, на 1733 MHz Athlon кодирование обичного DVD будет идти со
скоростью 5-15 fps.
</para>

<para>
Объяснять все тонкости H.264 не является целью этого документа, но если
вас интересует краткий обзор, вы можете прочесть 
<ulink url="http://www.cdt.luth.se/~peppar/kurs/smd151/spie04-h264OverviewPaper.pdf">The H.264/AVC Advanced Video Coding Standard: Overview and Introduction to the Fidelity Range Extensions</ulink>.
</para>
</sect3>


<sect3 id="codec-x264-playback">
<title>Как мне посмотреть H.264 при помощи <application>MPlayer</application>?</title>
<para>
<application>MPlayer</application> использует H.264 декодер библиотеки
<systemitem class="library">libavcodec</systemitem>.
<systemitem class="library">libavcodec</systemitem> получила мало-мальски
пригодную для использования возможность декодирования H.264 где-то в июле 2004,
однако, с того времени было внесено множество серьезных изменений и улучшений,
как с точки зрения поддерживаемых функциональных возможностей, так и улучшенного
использования CPU.
Для определенности: использование свежей версии Subversion - всегда хорошая идея.
</para>

<para>
Если нужен быстрый и простой способ узнать какие свежие изменения, относящиеся к H.264,
были сделаны в <systemitem class="library">libavcodec</systemitem>, Вам следует
иметь ввиду
<ulink url="http://mplayerhq.hu/cgi-bin/cvsweb.cgi/ffmpeg/libavcodec/h264.c?cvsroot=FFMpeg">Веб-интерфейс к репозиторию FFmpeg Subversion</ulink>.
</para>
</sect3>


<sect3 id="codec-x264-encode">
<title>Как кодировать видео, используя <application>MEncoder</application> и <systemitem class="library">x264</systemitem>?</title>
<para>
Если у вас установлен клиент subversion, последнюю версию x264 
можно загрузить следующей командой:
<screen>svn co svn://svn.videolan.org/x264/trunk x264</screen>
Исходный код <application>MPlayer</application> обновляется 
всякий раз при изменении API <systemitem class="library">x264</systemitem>, 
так что предлагается использовать Subversion версию
<application>MPlayer</application>'а.
возможно, ситуация изменится с выходом "релиза" 
<systemitem class="library">x264</systemitem> (если он будет).
В данный момент <systemitem class="library">x264</systemitem> следует
рассматривать как очень нестабильный, в свете постоянного изменения
интерфейса программирования.
</para>
<para>
<systemitem class="library">x264</systemitem> собирается и устанавливается
как обычно:
<screen>./configure &amp;&amp; make &amp;&amp; sudo make install</screen>
Это установит libx264.a в /usr/local/lib, а x264.h - в /usr/local/include.
Сборка <application>MPlayer</application> при установленных в стандартные
каталоги библиотеке и заголовочном файле <systemitem class="library">x264</systemitem>
очень проста.
Просто запустите стандартное:
<screen>./configure &amp;&amp; make &amp;&amp; sudo make install</screen>
Скрипт <filename>./configure</filename> сам определит, выполнены ли необходимые требования для
<systemitem class="library">x264</systemitem>.
</para>
</sect3>
</sect2>
</sect1>


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


<sect1 id="audio-codecs">
<title>Аудио кодеки</title>

<itemizedlist>
<title>Наиболее важными аудио кодеками среди всех являются:</title>
<listitem><para>
  MPEG layer 1/2/3 (MP1/2/3) аудио (<emphasis role="bold">родной</emphasis>
  код, с MMX/SSE/3DNow! оптимизацией)
</para></listitem>
<listitem><para>
  Windows Media Audio 7 и 8 (они же WMAv1 и WMAv2) (<emphasis role="bold">родной</emphasis> код, с
  <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>)
</para></listitem>
<listitem><para>
  Windows Media Audio 9 (WMAv3) (используя DMO DLL)
</para></listitem>
<listitem><para>
  AC3 Dolby аудио (<emphasis role="bold">родной</emphasis> код, с
  MMX/SSE/3DNow! оптимизацией)
</para></listitem>
<listitem><para>
  AC3 пропускаемый через звуковое оборудование
</para></listitem>
<listitem><para>
  AAC
</para></listitem>
<listitem><para>
  Ogg Vorbis аудио кодек (<emphasis role="bold">родная</emphasis> библиотека)
</para></listitem>
<listitem><para>
  RealAudio: DNET (AC3 с низким битпотоком), Cook, Sipro и ATRAC3
</para></listitem>
<listitem><para>
  QuickTime: Qualcomm и QDesign аудио кодеки
</para></listitem>
<listitem><para>
  VIVO аудио (g723, Vivo Siren)
</para></listitem>
<listitem><para>
  Voxware аудио (используя DirectShow DLL)
</para></listitem>
<listitem><para>
  alaw и ulaw, различные gsm, adpcm и pcm форматы и другие простые старые аудио
  кодеки
</para></listitem>
<listitem><para>
  Adaptive Multi-Rate (AMR) речевые кодеки
</para></listitem>
</itemizedlist>


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

<sect2 id="swac3">
<title>Программное декодирование AC3</title>

<para>
Это декодер, используемый, по умолчанию, для файлов с AC3 аудио
</para>

<para>
Декодер AC3 может создавать аудио вывод микшированный для 2, 4 или 6 колонок.
Будучи сконфигурированным для 6 колонок, этот декодер предоставляет раздельный
вывод всех AC3 каналов звуковому драйверу, позволяя получить "звук вокруг"
без внешнего AC3 декодера, необходимого для использования hwac3 кодека.
</para>

<para>
Используйте опцию <option>-channels</option>, чтобы выбрать количество каналов
при выводе. Используйте <option>-channels 2</option> для микширования до стерео.
Для микширования до 4 каналов (Левый Передний, Правый Передний, Левый Задний и
Правый Задний выводы),
используйте <option>-channels 4</option>. В этом случае все центральные каналы
будут равномерно смикшированы до уровня передних каналов. <option>-channels 6</option> будет
выводить все AC3 каналы так, как они закодированы - по порядку:
Левый, Правый, Левый Задний, Правый Задний, Центральный и Сабвуфер.
</para>

<para>
Количество каналов по умолчанию - 2.
</para>

<para>
Чтобы использовать более 2 каналов, Вам нужно использовать OSS, и обладать
карточкой, поддерживающей необходимое количество каналов через ioctl
SNDCTL_DSP_CHANNELS.  Примером подходящего драйвера является emu10k1
(используется для Soundblaster Live! карточек) августа 2001'го или новее
(ALSA CVS тоже должен работать).
</para>
</sect2>

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

<sect2 id="hwac3">
<title>Аппаратное декодирование AC3</title>
<para>
Вам нужна AC3-совместимая карта с цифровым (S/PDIF) выводом. Драйвер карты
должен должным образом поддерживать AFMT_AC3 формат (например C-Media).
Подсоедините AC3 декодер к S/PDIF выводу и используйте опцию <option>-ac
hwac3</option>. Это экспериментальная возможность, но известно, что это работает с
C-Media картами и Soundblaster Live! + ALSA (но не OSS) драйверами и
картами MPEG декодирования DXR3/Hollywood+.
</para>
</sect2>

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

<sect2 id="libmad">
<title>Поддержка <systemitem class="library">libmad</systemitem></title>

<para>
<ulink url="http://mad.sourceforge.net"><systemitem
class="library">libmad</systemitem></ulink> - это многоплатформенная,
целочисленная (внутренне 24'битный PCM)
библиотека декодирования MPEG аудио. Она не очень хорошо обрабатывает битые
файлы и иногда у неё бывают проблемы с перемещением по файлу, но она 
может быть производительнее <systemitem class="library">mp3lib</systemitem>
на платформах без FPU (таких как <link linkend="arm">ARM</link>).
</para>

<para>
Если <systemitem class="library">libmad</systemitem> у вас установлена, 
<filename>./configure</filename> сообщит об этом,
и поддержка декодирования MPEG аудио с помощью 
<systemitem class="library">libmad</systemitem> будет включена автоматически.
</para>
</sect2>


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

<sect2 id="hwmpa">
<title>Аппаратный MPEG аудио кодек</title>

<para>
Этот кодек (выбираемый по <option>-ac hwmpa</option>) передает все аудио пакеты MPEG аппаратным
декодерам, таким как установленные в полнофункциональных DVB картах и DXR2 адаптерах.
Не используйте его с другими драйверами вывода звука (такими как OSS и ALSA), которые
не способны аппаратно декодировать (вы услышите только белый шум).
</para>
</sect2>

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

<sect2 id="aac">
<title>AAC кодек</title>
<para>
AAC (Advanced Audio Coding) - это кодек, иногда обнаруживаемый в MOV и MP4
файлах. Декодер с открытым исходным кодом, называемый FAAD, доступен с
<ulink url="http://www.audiocoding.com"/>.
<application>MPlayer</application> включает в себя CVS версию libfaad 2.1 beta, поэтому
Вам ничего не нужно дополнительно скачивать.
</para>

<para>
Если Вы используете gcc 3.2, который не может скомпилировать встроенный FAAD,
или просто хотите использовать внешнюю библиотеку, скачаете её с 
<ulink url="http://www.audiocoding.com/download.php">страницы загрузок</ulink>
и укажите <filename>./configure</filename> <option>--enable-faad-external</option>.
Вам не нужен весь faad2, чтобы декодировать AAC файлы, достаточно libfaad.
Вот как Вы можете её собрать:
<screen>
cd faad2/
sh bootstrap
./configure
cd libfaad
make
make install
</screen>
Бинарники отсутствуют на audiocoding.com, но вы можете скачать (apt-get) Debian
пакеты с <ulink url="http://marillat.free.fr">домашней страницы Christian Marillat</ulink>,
Mandrake RPM'ники с <ulink url="http://plf.zarb.org">P.L.F</ulink> и RedHat RPM'ники
с <ulink url="http://rpm.livna.org/">Livna</ulink>.
</para>
</sect2>

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

<sect2 id="amr">
<title>AMR кодеки</title>
<para>
Речевой кодек Adaptive Multi-Rate используется в мобильных телефонах третьего поколения (3G).

Исходная реализация доступна с 
<ulink url="http://www.3gpp.org">The 3rd Generation Partnership Project</ulink>
(бесплатна для личного использования).
</para>
<para>
Чтобы включить поддержку, скачайте исходники для
<ulink url="http://www.3gpp.org/ftp/Specs/latest/Rel-6/26_series/26104-610.zip">AMR-NB</ulink>
и
<ulink url="http://www.3gpp.org/ftp/Specs/latest/Rel-6/26_series/26204-600.zip">AMR-WB</ulink>
кодеков, поместите их в каталог, где распакованы исходники 
<application>MPlayer</application> и выполните следующие команды:
<screen>
unzip 26104-610.zip
unzip 26104-610_ANSI_C_source_code.zip
mv c-code libavcodec/amr_float
unzip 26204-600.zip
unzip 26204-600_ANSI-C_source_code.zip
mv c-code libavcodec/amrwb_float
</screen>
После этого следуйте обычной <link linkend="features">процедуре сборки</link>
<application>MPlayer</application>.

</para>

</sect2>

</sect1>


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


<sect1 id="codec-importing">
<title>КАК извлечь кодек из Win32</title>

<!-- TODO: a short paragraph of text would be nice here... -->

<sect2 id="vfw-codecs">
<title>VFW кодеки</title>

<para>
VFW (Video for Windows[Видео для Windows]) - это старые Видео API для Windows.
У этих кодеков расширения <filename>.DLL</filename> или (реже) <filename>.DRV</filename>.
Если <application>MPlayer</application> не может проигрывать Ваш
AVI с такого рода сообщением:
<screen>UNKNOWN video codec: HFYU (0x55594648)</screen>
Это значит, что Ваш AVI закодирован кодеком с fourcc HFYU
(HFYU = HuffYUV кодек, DIV3 = DivX Low Motion, и т.п.). Теперь, когда Вы это
знаете, Вы должны найти DLL, которую Windows загружает для проигрывания этого
файла. В нашем случае, в файле <filename>system.ini</filename> есть эта
информация, в этой строке:
<programlisting>VIDC.HFYU=huffyuv.dll</programlisting>
</para>

<para>
Значит, Вам нужен файл <filename>huffyuv.dll</filename>. Заметьте, что аудио
кодеки используют префикс MSACM:
<programlisting>msacm.l3acm=L3codeca.acm</programlisting>
</para>

<para>
Это MP3 кодек. Теперь у Вас есть  вся необходимая информация (fourcc, файл с
кодеком, пример AVI), представьте на рассмотрение запрос о поддержке Вашего
кодека по почте и загрузите эти файлы на FTP сайт:
<systemitem role="url">
ftp://upload.mplayerhq.hu/MPlayer/incoming/<replaceable>&lt;codecname&gt;</replaceable>/
</systemitem>
</para>

<note><para>Под Windows NT/2000/XP ищите эту информацию в реестре, например,
ищите "VIDC.HFYU". Чтобы узнать, как это делать, см. ниже старый
метод DirectShow.
</para></note>
</sect2>

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

<sect2 id="dshow-codecs">
<title>DirectShow кодеки</title>

<para>
DirectShow - это более новый Video API, которые даже хуже, чем его предшественник.
Все сложнее с DirectShow, поскольку
<itemizedlist>
<listitem><para>
  <filename>system.ini</filename> не содержит необходимую информацию, вместо
  этого она хранится в реестре и 
</para></listitem>
<listitem><para>
  нам нужен GUID этого кодека.
</para></listitem>
</itemizedlist>
</para>

<procedure>
<title>Новый Метод:</title>
<para>
Используя <application>Microsoft GraphEdit</application> (быстро)
</para>
<step><para>
  Получите <application>GraphEdit</application> или из DirectX SDK или
  <ulink url="http://doom9.net">doom9</ulink>.
</para></step>
<step><para>
  Запустите <command>graphedit.exe</command>.
</para></step>
<step><para>
  В меню выберите
  <menuchoice><guimenu>Graph</guimenu>
  <guisubmenu>Insert Filters</guisubmenu></menuchoice>.
</para></step>
<step><para>
  Щёлкните <systemitem>DirectShow Filters</systemitem>.
</para></step>
<step><para>
  Выберите нужное имя кодека и щёлкните по нему.
</para></step>
<step><para>
  В поле <systemitem>DisplayName</systemitem> обратите внимание на текст в
  фигурных скобках после обратного слэша и выпишете их (пять разделённых
  дефисами блоков, GUID).
</para></step>
<step><para>
  Бинарный файл кодека - это файл, указанный в поле <systemitem>Filename</systemitem>.
</para></step>
</procedure>

<note><para>
Если там нет <systemitem>Filename</systemitem> и
<systemitem>DisplayName</systemitem> содержит что-то в духе 
<systemitem>device:dmo</systemitem>, то это - DMO-Кодек.
</para></note>

<procedure>
<title>Старый метод:</title>
<para>
Сделайте глубокий вдох и начните искать в реестре...
</para>
<step><para>
  Запустите <command>regedit</command>.
</para></step>
<step><para>
  Нажмите <keycombo><keycap>Ctrl</keycap><keycap>F</keycap></keycombo>, отключите 
  первые две галочки и включите третью. Наберите fourcc Вашего кодека 
  (например, <userinput>TM20</userinput>).
</para></step>
<step><para>
  Вы должны увидеть поле, содержащее путь и имя файла (например,
  <filename>C:\WINDOWS\SYSTEM\TM20DEC.AX</filename>).
</para></step>
<step><para>
  Теперь, когда у Вас есть файл, нам нужен GUID. Попробуйте поискать снова,
  но теперь ищите имя кодека, а не fourcc. Это имя может быть получено,
  когда Media Player проигрывает файл, проверив
  <menuchoice><guimenu>File</guimenu> <guisubmenu>Properties</guisubmenu> 
  <guimenuitem>Advanced</guimenuitem></menuchoice>.
  Если нет, Вам не повезло. Попробуйте угадать (например, ищите TrueMotion).
</para></step>
<step><para>
  Если GUID найден, Вы должны видеть поля <guilabel>FriendlyName</guilabel>
  и <guilabel>CLSID</guilabel>. Выпишите 16-ти байтовый CLSID, это GUID, который
  нам нужен.
</para></step>
</procedure>

<note><para>
Если поиск не удаётся, попробуйте включить все галочки. Вы можете получить
ложные значения, но Вам может повести...
</para></note>

<para>
Теперь у Вас есть  вся необходимая информация (fourcc, GUID, файл с кодеком,
пример AVI), представьте на рассмотрение запрос о поддержке Вашего кодека по
почте и загрузите эти файлы на FTP сайт:
<systemitem role="url">ftp://upload.mplayerhq.hu/MPlayer/incoming/<replaceable>&lt;codecname&gt;</replaceable>/</systemitem>
</para>

<para>
Если вы хотите добавить кодек самостоятельно, прочтите
<ulink url="http://www.mplayerhq.hu/MPlayer/DOCS/tech/codecs.conf.txt">DOCS/tech/codecs.conf.txt</ulink>.
</para>
</sect2>
</sect1>
</chapter>