view DOCS/xml/ru/encoding-guide.xml @ 21747:e6b16ad464e8

Translation of menc-feat-x264 sect1 in encoding-guide.xml
author voroshil
date Sun, 24 Dec 2006 11:21:08 +0000
parents 68248f4e3027
children 5a9cea1eb591
line wrap: on
line source

<?xml version="1.0" encoding="utf-8"?>
<!-- synced with r21612  -->
<!-- **Partially** translated -->
<chapter id="encoding-guide">
<title>Кодирование с <application>MEncoder</application></title>

<sect1 id="menc-feat-dvd-mpeg4">
<title>Создание высококачественного MPEG-4 ("DivX") рипа из DVD фильма</title>

<para>
Одним часто задаваемым вопросом является "Как мне сделать рип самого высокого 
качества для заданного размера?". Другой вопрос "Как мне создать DVD рип с самым
высоким возможным качеством? Я не беспокоюсь о размере файла, мне нужно лишь 
наилучшее качество.".
</para>

<para>
Последний вопрос, похоже, отчасти неверно сформулирован. В конце концов, если
Вы не беспокоитесь о размере файла, почему бы просто не скопировать весь MPEG-2 
видео поток с DVD? Конечно, ваш AVI файл будет занимать около 5GB,
но если Вы желаете наилучшее качество и не волнуетесь о размере, то это, 
несомненно, лучшее решение.
</para>

<para>
В действительности, причиной, по которой Вы хотите перекодировать DVD в MPEG-4,
является именно Ваше <emphasis role="bold">беспокойство</emphasis>
о размере файла.
</para>

<para>
Сложно дать универсальный рецепт о создании DVD рипа очень высокого
качества. Необходимо рассмотреть несколько факторов, и Вы должны
понимать эти детали, иначе Вы, скорее всего, разочаруетесь своими
результатами. Ниже мы исследуем некоторые из этих вопросов, а затем
рассмотрим пример. Мы предполагаем, что Вы используете
<systemitem class="library">libavcodec</systemitem> для кодирования видео,
хотя теория также применима и к другим кодекам.
</para>

<para>
Если это кажется для Вас слишком сложным, то Вам, пожалуй, следует использовать 
один из многочисленных неплохих фронтендов, указанных в
<ulink url="http://www.mplayerhq.hu/design7/projects.html#mencoder_frontends">разделе MEncoder</ulink>
нашей страницы родственных проектов.
Так Вы должны получить высококачественные рипы без особых размышлений,
поскольку большинство этих утилит разработаны для принятия умных решений за Вас.
</para>

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

<sect2 id="menc-feat-dvd-mpeg4-preparing-encode">
<title>Подготовка к кодированию: Идентификация исходного материала и кадровой
  частоты</title>
<para>
Прежде, чем даже задумываться о кодировании фильма, Вам необходимо выполнить
некоторые предварительные действия.
</para>

<para>
Первым и наиболее важным шагом перед кодированием должно быть определение
типа содержимого, с которым Вы работаете.
Если источником Ваших исходных материалов является DVD или 
широковещательное/кабельное/спутниковое TV, оно будет содержаться в одном из 
двух форматов: NTSC для Северной Америки и Японии, PAL для Европы и т.д..
Однако, важно понимать, что это только форматирование для показа на
телевидении, и оно часто
<emphasis role="bold">не</emphasis> соответствует
исходному формату фильма.
Опыт показывает, что NTSC материал существенно более сложен для кодирования,
т.к. в нём содержится больше элементов, которые нужно идентифицировать.
Для проведения удачного кодирования, Вам необходимо знать исходный формат.
Отказ от принятия этого во внимание приведёт к различным дефектам в Вашем 
кодировании, включая безобразные гребешки (артефакты чересстрочной развёртки)
и повторяющиеся или даже потерянные кадры.
Кроме ухудшения картинки, артефакты так же уменьшают эффективность кодирования:
Вы получите худшее качество на единицу битпотока.
</para>


<sect3 id="menc-feat-dvd-mpeg4-preparing-encode-fps">
<title>Определение кадровой частоты источника</title>
<para>
Вот список, содержащий общие типы исходных материалов, где, 
преимущественно, можно найти и их свойства:
</para>

<itemizedlist>
<listitem><para>
  <emphasis role="bold">Стандартный фильм</emphasis>: Производятся
  для театральных показов на 24 fps [кадр/сек].
</para></listitem>
<listitem><para>
  <emphasis role="bold">PAL видео</emphasis>: Записывается с помощью
  PAL видеокамеры при 50 полях в секунду.
  Поле состоит только из чётных или нечётных линий кадра.
  Телевидение было разработано для обновления этих полей попеременно,
  что используется как вид дешёвого аналогового сжатия.
  Человеческий глаз, предположительно, компенсирует это, но однажды
  поняв чересстрочную развёртку, Вы научитесь видеть её и на TV и
  Вам больше никогда не понравится телевидение.
  Два поля <emphasis role="bold">не</emphasis> составляют
  целый кадр, поскольку они снимаются с задержкой в 1/50 секунды
  и, следовательно, не формируют одно изображение, за исключением случая
  полного отсутствия движения.
</para></listitem>
<listitem><para>
  <emphasis role="bold">NTSC видео</emphasis>: Записывается с помощью
  NTSC видеокамеры при 60000/1001 полях в секунду, или 60 полях в секунду
  в эпоху чёрно-белого TV.
  В других отношениях аналогично PAL.
</para></listitem>
<listitem><para>
  <emphasis role="bold">Анимация</emphasis>: Обычно рисуется на 24 fps, 
  но также существуют разновидности со смешанной кадровой частотой.
</para></listitem>
<listitem><para>
  <emphasis role="bold">Компьютерная графика (CG)</emphasis>: Может
  быть с любой частотой кадров, но некоторые встречаются чаще остальных;
  24 и 30 кадров в секунду типичны для NTSC, и 25 fps типично для PAL.
</para></listitem>
<listitem><para>
  <emphasis role="bold">Старый фильм</emphasis>: Различные низкие 
  кадровые частоты.
</para></listitem>
</itemizedlist>
</sect3>


<sect3 id="menc-feat-dvd-mpeg4-preparing-encode-material">
<title>Идентификация исходного материала</title>

<para>
Фильмы, состоящие из кадров, называются фильмами с построчной (или прогрессивной)
развёрткой, а состоящие из независимых полей &mdash; фильмами с чересстрочной
развёрткой или просто видео; однако, последний термин двусмысленный.
</para>

<para>
Из-за дальнейших усложнений, некоторые фильмы будут смесью
нескольких, указанных выше.
</para>

<para>
Наиболее важным различием между всеми этими форматами является
то, что одни из них основаны на кадрах, а другие &mdash; на полях.
<emphasis role="bold">Любой</emphasis> фильм, подготовленный для
просмотра на телевидении (включая DVD), преобразуется в формат,
основанный на полях.
<!-- FIXME: Существует ли лучший *краткий* (1-2 слова) перевод для 
  терминов pulldown и telecine? В литературе, которую я нашёл, 
  используют или указанные мной, по сути дела, транслитерации, 
  или так и оставляют английские названия.
  А точный перевод можно выполнить только целым предложением
  (т.е. определением), что совершенно неуместно в контексте 
  данного документа, где эти термины часто встречаются. -->
Различные методы, с помощью которых это может быть сделано, совокупно 
называются "телесин" (англ. telecine), одним из вариантов которого 
является отвратительный NTSC "3:2 пулдаун" (англ. pulldown).
За исключением случаев, когда формат исходного материала был 
также основан на полях (и с такой же частотой полей), Вы получите 
фильм в формате отличном от исходного.
</para>

<itemizedlist>
<title>Существует несколько общих типов пулдауна:</title>
<listitem><para>
  <emphasis role="bold">PAL 2:2 пулдаун</emphasis>: Наилучший из всех.
  Каждый кадр показывается за время длительности двух полей путем 
  извлечения чётных и нечётных строк и их попеременного показа.
  Если в исходном материале 24 fps, то это ускоряет воспроизведение фильма
  на 4%.
</para></listitem>
<listitem><para>
  <emphasis role="bold">PAL 2:2:2:2:2:2:2:2:2:2:2:3 пулдаун</emphasis>:
  Каждый 12-й кадр показывается за время длительности трёх полей, 
  вместо двух.
  Это помогает избежать проблемы 4%-го ускорения, но делает обращение
  процесса существенно более сложным.
  Такие вещи обычно наблюдаются в музыкальных произведениях, где
  изменение скорости на 4% существенно повредит музыкальную партитуру.
</para></listitem>
<listitem><para>
  <emphasis role="bold">NTSC 3:2 телесин</emphasis>: Кадры показываются
  попеременно за время длительности 3-х полей или 2-х полей.
  Это даёт частоту полей в 2.5 раза больше исходной частоты кадров.
  Результат также очень незначительно замедляется от 60 до 60000/1001 
  полей в секунду для поддержания частоты полей NTSC.
</para></listitem>
<listitem><para>
  <emphasis role="bold">NTSC 2:2 пулдаун</emphasis>: Используется
  для отображения материала с 30 fps на NTSC.
  Так же мил, как и 2:2 PAL пулдаун.
</para></listitem>
</itemizedlist>

<para>
Так же существуют методы для преобразования между NTSC и PAL видео,
но подобные темы выходят за рамки данного руководства.
Если Вам попался такой фильм, и Вы хотите кодировать его,
лучшим решением будет найти копию в исходном формате.
Преобразование между этими двумя форматами вносит большие потери
и не может быть точно обращено, так что Ваше кодирование
существенно пострадает, если оно делается из преобразованного
источника.
</para>

<para>
Когда видео находится на DVD, последовательные пары полей 
группируются как кадр, даже если они не предназначены для
одновременного отображения.
Стандарт MPEG-2, используемый на DVD и цифровом TV предоставляет
возможность одновременно кодировать исходные кадры с построчной
развёрткой и сохранять число полей, в течении которых кадр 
должен быть показан, в его заголовке.
Если был использован такой метод, фильм часто будет называться
как "мягкий телесин", т.к. процесс только указывает DVD-плееру
о необходимости применения пулдауна к фильму, не изменяя при этом
сам фильм.
Этот случай существенно предпочтителен, т.к. он может быть легко обращён
(в действительности, проигнорирован) кодером и т.к. он сохраняет 
максимальное качество.
Однако, многие широковещательные и DVD студии не используют
надлежащую технологию кодирования и вместо этого производят
фильмы с "жёстким телесином", где поля в действительности
повторяются в кодированном MPEG-2.
</para>

<para>
Порядок действия в таких случаях будет описан 
<link linkend="menc-feat-telecine">позже в данном руководстве</link>.
Сейчас мы дадим Вам несколько советов по идентификации типа 
материала, с которым Вы работаете:
</para>

<itemizedlist>
<title>Области NTSC:</title>
<listitem><para>
  Если при просмотре Вашего фильма <application>MPlayer</application> 
  выводит, что частота кадров была изменена до 24000/1001 и она
  никогда не меняется обратно, то это почти наверняка содержимое
  с построчной развёрткой, которое было подвергнуто 
  "мягкому телесину".
</para></listitem>
<listitem><para>
  Если <application>MPlayer</application> отображает попеременные 
  переключения частоты кадров между 24000/1001 и 30000/1001, и Вы 
  иногда видите "гребешки", есть несколько возможностей.
  Сегменты с 24000/1001 fps почти наверняка являются "мягко 
  телесиненным" содержимым с построчной развёрткой, но части с
  30000/1001 fps могут быть как "жёстко телесиненым" содержимым 
  с 24000/1001 fps, так и NTSC видео с 60000/1001 полями в секунду.
  Используйте два нижеследующих руководства для определения того,
  с каким случаем вы имеете дело.
</para></listitem>
<listitem><para>
  Если <application>MPlayer</application> никогда не показывает
  изменения кадровой частоты и каждый отдельный кадр, где есть
  движение, оказывается гребёнкой, Ваш фильм есть NTSC видео с 
  60000/1001 полями в секунду.
</para></listitem>
<listitem><para>
  Если <application>MPlayer</application> никогда не показывает
  изменения кадровой частоты и два кадра из каждых пяти оказываются
  гребёнкой, Ваш фильм представляет собой "жёстко телесиненное"
  содержимое с 24000/1001 fps.
</para></listitem>
</itemizedlist>

<itemizedlist>
<title>Области PAL:</title>
<listitem><para>
  Если Вы не видите никакой гребёнки, Ваш фильм есть 2:2 пулдаун.
</para></listitem>
<listitem><para>
  Если Вы видите попеременную гребёнку каждые полсекунды,
  Ваш фильм представляет собой 2:2:2:2:2:2:2:2:2:2:2:3 пулдаун.
</para></listitem>
<listitem><para>
  Если Вы всегда видите гребёнки во время движения, значит Ваш 
  фильм является PAL видео с 50 полями в секунду.
</para></listitem>
</itemizedlist>

<note><title>Подсказка:</title>
<para>
  <application>MPlayer</application> может замедлить воспроизведение 
  фильма с опцией -speed или воспроизводить его покадрово.
  Попробуйте использовать опцию <option>-speed 0.2</option> для 
  очень медленного просмотра фильма или несколько раз нажмите
  клавишу "<keycap>.</keycap>" для воспроизведения одного кадра 
  за раз и идетнифицируйте образец, если не можете его увидеть на
  полной скорости.
</para>
</note>
</sect3>
</sect2>

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

<sect2 id="menc-feat-dvd-mpeg4-2pass">
<title>Постоянный квантователь против многопроходности</title>

<para>
Возможно кодировать Ваш фильм, широко варьируя качество.
С современными видеокодерами и небольшим сжатием перед кодированием
(уменьшением размера и шумов) возможно достичь очень хорошего
качества при размере 700 МБ для 90-110-минутного широкоэкранного фильма.
Более того, всё, кроме самых длинных фильмов, может быть кодировано
с почти безупречным качеством на 1400 МБ.
</para>

<para>
Есть три подхода при кодировании видео: постоянный битпоток (CBR), 
постоянный квантователь и многопроходность (ABR или усреднённый битпоток).
</para>

<para>
Сложность кадров фильма и, таким образом, число битов, нужных для их
сжатия может существенно отличаться от одной сцены к другой.
Современные видеокодеры могут подстраиваться под это в процессе
работы и варьировать битпоток.
Однако, в таких простых режимах как CBR кодеры не знают загруженность
битпотока в последующих сценах и т.о. не могут превысить затребованный
битпоток для больших промежутков времени.
Более продвинутые режимы, такие как многопроходный режим, могут
учитывать статистику предыдущих проходов; это решает проблему, 
упомянутую выше.
</para>

<note><title>Замечание:</title>
<para>
Большинство кодеков, поддерживающих ABR кодирование, поддерживают
только двупроходный режим, в то время как некоторые другие, такие
как <systemitem class="library">x264</systemitem>,
<systemitem class="library">Xvid</systemitem>
и <systemitem class="library">libavcodec</systemitem> поддерживают
многопроходность, несколько улучшающую качество на каждом проходе,
однако, это улучшение не измеримо и не заметно после 4-го прохода
или около того.
Поэтому, в данном разделе дву- и многопроходность будут
использоваться взаимозаменяемо.
</para>
</note>

<para>
В каждом из этих режимов видеокодек (такой как
<systemitem class="library">libavcodec</systemitem>)
разбивает видеокадр на макроблоки размером 16х16 пикселей и потом
применяет квантователь к каждому макроблоку. Чем меньше квантоваль, 
тем лучше качество и выше битпоток.
Метод, используемый видео кодером для определения того, какой
квантователь использовать для данного макроблока, варьируется и 
подлежит тонкой настройке. (Это крайнее упрощение реального
процесса, но основная концепция полезна для понимания.)
</para>

<para>
Когда Вы указываете постоянный битпоток, видеокодек будет кодировать
видео, отбрасывая детали столько, сколько необходимо и настолько мало,
насколько это возможно с целью оставаться ниже заданного битпотока.
Если Вас действительно не волнует размер файла, Вы можете также
использовать CBR и указать бесконечный битпоток. (На практике это
означает значение, достаточно большое для обозначения отсутствия
предела, например, 10000 Кбит.) В результате, без реального ограничения 
битпотока, кодек использует наименьший возможный квантователь для
каждого макроблока (как указано опцией
<option>vqmin</option> для
<systemitem class="library">libavcodec</systemitem>, равной 2 по умолчанию).
Как только Вы укажите настолько низкий битпоток, что кодек будет
вынужден использовать более высокий квантователь, Вы почти наверняка
испортите качество Вашего видео.
Чтобы избежать этого, Вам, вероятно, придётся уменьшить размеры
Вашего видео, согласно методу, описанному далее в этом руководстве.
В общих чертах, Вам следует избегать CBR совсем, если Вы заботитесь
о качестве.
</para>

<para>
С постоянным квантователем кодек использует для всех макроблоков
один и тот же квантователь, указанный в опции
<option>vqscale</option> (для 
<systemitem class="library">libavcodec</systemitem>).
Если Вы хотите рип наивысшего возможного качества, снова не взирая 
на битпоток, Вы можете использовать
<option>vqscale=2</option>.
Это приведёт к тому же битпотоку и PSNR (пику отношения сигнала к шуму), 
что и CBR с 
<option>vbitrate</option>=бесконечности и значением по умолчанию 
<option>vqmin</option>, равным 2.
</para>

<para>
Проблема с постоянным квантованием заключается в том, что кодек использует
заданный квантователь вне зависимости от того, требуется это для 
макроблока или нет. То есть возможно использование большего квантователя
для макроблока без ухудшения видимого качества. Зачем тратить биты на
излишне низкий квантователь? У Вашего процессора есть столько тактов,
сколько есть времени, но имеется лишь ограниченное число битов на
жёстком диске.
</para>

<para>
При двупроходном кодировании первый проход создаст рип фильма так, 
как будто это был CBR, но сохранит лог свойств для каждого кадра.
Эта информация затем будет использована во время второго прохода
для принятия интеллектуальных решений о том, какой квантователь
следует использовать. Во время быстрого движения или сцен с 
высокой детализацией с большой вероятностью будут использованы 
бОльшие квантователи, а во время медленного движения или сцен
с низкой детализацией &mdash; меньшие.
Обычно количество движения играет существенно более важную роль,
чем количество деталей.
</para>

<para>
Если Вы используете <option>vqscale=2</option>, то Вы теряете биты.
Если Вы используете <option>vqscale=3</option>, то Вы не получаете
рип наивысшего качества. Предположим, вы делаете рип DVD, используя
<option>vqscale=3</option>, результат получается 1800 Кбит.
Если Вы сделаете двупроходное кодирование с 
<option>vbitrate=1800</option>, получившееся видео быдет обладать
<emphasis role="bold">лучшим качеством</emphasis> для
<emphasis role="bold">того же битпотока</emphasis>.
</para>

<para>
После того, как Вы сейчас убедились, что два прохода &mdash; это путь
к действию, возникает вопрос о том, какой битпоток использовать?
Ответ таков, что нет единого ответа. В идеале, Вы хотите выбрать
битпоток, при котором достигается наилучший баланс между качеством
и размером файла. Здесь возможны вариации в зависимости от
исходного видеоматериала.
</para>

<para>
Если размер не важен, хорошей отправной точкой для рипа очень высокого
качества будет 2000 Кбит +/- 200 Кбит.
Для видеоматериала с быстрым движением или высокой детализацией
или просто если у Вас очень разборчивый глаз, Вы можете использовать
2400 или 2600.
Для некоторых DVD Вы не заметите разницы на 1400 Кбит. Хорошей идеей
является экспериментирование со сценами на разных битпотоках, чтобы
почувствовать разницу.
</para>

<para>
Если Вашей целью является определённый размер, Вам нужно как-нибудь
вычислить битпоток. Но перед этим, Вам нужно знать, сколько места
нужно зарезервировать по аудио дорожку(и), так что Вам необходимо 
<link linkend="menc-feat-dvd-mpeg4-audio">извлечь их</link> сперва.
Вы можете рассчитать битпоток с помощью следующей формулы:
<systemitem>битпоток = (конечный_размер_в_МБайт - размер_звука_в_МБайт) *
1024 * 1024 / длительность_в_секундах * 8 / 1000</systemitem>.
Например, для сжатия двухчасового фильма в 702 МБ CD, с 60 МБ
аудио дорожкой, битпоток видео должен составлять:
<systemitem>(702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000
= 740 кбит/сек</systemitem>.
</para>
</sect2>

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

<sect2 id="menc-feat-dvd-mpeg4-constraints">
<title>Ограничения для эффективного кодирования</title>

<para>
Из-за особенностей MPEG-подобного сжатия, существуют различные
ограничения, которым Вы должны следовать для достижения 
максимального качества.
MPEG разбивает видео на квадраты 16х16, называемые макроблоками.
Каждый макроблок состоит из 4 блоков 8х8 с информацией о люме
(интенсивности) и двух блоков 8х8 с информацией о хроме (цвете)
половинного разрешения (один для красно-бирюзовой оси и другой
для жёлто-голубой оси).
Даже если ширина и высота Вашего фильма не кратны 16, кодер 
всё равно использует нужное количество макроблоков 16х16 для покрытия
всей области картинки, дополнительная область будет впустую потрачена.
Так что в интересах максимизации качества при фиксированном размере
файла, не стоит использовать размеры, не кратные 16.
</para>

<para>
У большинства DVD также есть определённое подобие чёрных полос на
краях. Если Вы их оставите, это может <emphasis>сильно</emphasis>
повредить качество несколькими путями.
</para>

<orderedlist>
<listitem>
  <para>
  MPEG-подобное сжатие также очень чувствительно к преобразованиям
  частотных интервалов, в частности, к дискретному косинусному 
  преобразованию (DCT), которое аналогично преобразованию Фурье.
  Этот вид сжатия эффективен для представления образов и сглаженных
  переходов, но у него возникают проблемы с острыми краями.
<!-- FIXME: для слова ringing я тоже не нашёл краткого однозначного 
     перевода; лучшее, что приходит на ум - это "размывание краёв",
     ясное дело, что причиной является отбрасывание малых гармоник,
     в результате чего вместо точки возникает затухающая окружность,
     но вот как это кратко выразить... -->
  Для кодирования последних Вам нужно гораздо больше битов, а иначе
  у вас появится артефакт, известный как размывание краёв
  (англ. ringing).
  </para>

  <para>
  Частотные преобразования (DCT) выполняются независимо для каждого
  макроблока (на самом деле, для каждого блока), так что эта проблема
  возникает только в случае попадания острого края внутрь блока.
  Если Ваши чёрные поля возникают точно на границах, кратных 16
  пикселям, это не проблема.
  Однако, чёрные полосы на DVD редко хорошо расположены, так что 
  на практике Вам всегда придётся усекать стороны для избежания 
  этих проблем. 
  </para>
</listitem>
</orderedlist>

<para>
В дополнение к преобразованиям частотных интервалов, MPEG-подобное 
сжатие использует векторы движения для отображения изменений от 
одного кадра к другому. Векторы движения, естественно, работают
существенно менее эффективно для новых объектов, идущих от
краёв картинки, поскольку они отсутствуют в предыдущих кадрах.
Пока картинка простирается вплоть до края кодируемой области,
у векторов движения не возникает проблем с движением объектов
за пределы картинки. Однако, при наличии черных полей 
могут возникнуть проблемы:
</para>

<orderedlist continuation="continues">
<listitem>
  <para>
  Для каждого макроблока MPEG-подобное сжатие сохраняет вектор,
  определяющий какая часть предыдущего кадра должна быть скопирована
  в этот макроблок как основа для предсказания следующего кадра.
  Кодированию подлежит только оставшаяся разность. Если макроблок 
  простирается до края картинки и содержит часть чёрной полосы,
  то векторы движения других частей картинки перепишут чёрную полосу.
  Это означает, что много битов нужно потратить либо на повторное 
  чернение переписанной полосы, либо (что более вероятно) вектор 
  движения не будет использован вовсе и все изменения для этого 
  макроблока будут явно кодированы. Другими словами, эффективность 
  кодирования существенно уменьшается.
  </para>

  <para>
  Ещё раз, эта проблема возникает только в случае, если чёрные полосы
  не укладываются в границы, кратные 16.
  </para>
</listitem>

<listitem>
  <para>
  Наконец, предположим, что у нас есть находящийся внутри картинки 
  макроблок и объект движется в этот блок от края изображения.
  MPEG-подобное кодирование не может сказать "скопируй ту часть, 
  что внутри картинки, но не чёрную полосу". Так что чёрная полоса
  также будет скопирована внутрь, в результате чего масса битов 
  будет потрачена на кодирование части изображения, которое должно
  быть на месте полосы.
  </para>

  <para>
  Для случаев, когда всё изображение движется к краю кодируемой
  области, у MPEG есть специальные оптимизации для многократного
  копирования пикселей на край картинки, когда вектор движения
  идёт извне области кодирования. Эта возможность становится 
  бесполезной, если у фильма есть чёрные полосы. В отличии от 
  случаев 1 и 2, выравнивание границ до кратности 16 здесь 
  не поможет.
  </para>
</listitem>

<listitem><para>
  Несмотря на то, что границы полностью чёрные и никогда не изменяются,
  существуют, как минимум, определённые накладные расходы, связанные
  с наличием большего числа макроблоков.
</para></listitem>
</orderedlist>

<para>
Благодаря всем этим причинам, рекомендуется полностью урезать 
чёрные полосы. Более того, если есть области шумов/искажений
на краях картинки, то их урезание также поспособствует улучшению 
качества кодирования. Видеофилы, желающие сохранить оригинал как
можно более точно, могут возражать против такого усечения; но
если Вы не планируете кодировать при постоянном квантователе,
качество, полученное при усечении, существенно превысит потери
информации на краях.
</para>
</sect2>

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

<sect2 id="menc-feat-dvd-mpeg4-crop">
<title>Усечение и масштабирование</title>

<para>
Вспомните из предыдущего раздела, что конечный размер картинки,
подлежащей кодированию, должен быть кратен 16 (как высота,так 
и ширина). Это может быть достигнуто усечением, масштабированием
или комбинацией того и другого.
</para>

<para>
Есть несколько рекомендаций для усечения, которым необходимо следовать
для избежания повреждения фильма.
Обычный формат YUV, 4:2:0, сохраняет хрому (информацию о цвете)
половинной дискретизации, т.е. хрома сохраняется в два раза реже
в каждом направлении, чем люма (информация об интенсивности).
Рассмотрите следующую диаграмму, где L обозначает точки дискретизации
люмы и C &mdash; хромы.
</para>

<informaltable>
<?dbhtml table-width="40%" ?>
<?dbfo table-width="40%" ?>
<tgroup cols="8" align="center">
<colspec colnum="1" colname="col1"/>
<colspec colnum="2" colname="col2"/>
<colspec colnum="3" colname="col3"/>
<colspec colnum="4" colname="col4"/>
<colspec colnum="5" colname="col5"/>
<colspec colnum="6" colname="col6"/>
<colspec colnum="7" colname="col7"/>
<colspec colnum="8" colname="col8"/>
<spanspec spanname="spa1-2" namest="col1" nameend="col2"/>
<spanspec spanname="spa3-4" namest="col3" nameend="col4"/>
<spanspec spanname="spa5-6" namest="col5" nameend="col6"/>
<spanspec spanname="spa7-8" namest="col7" nameend="col8"/>
  <tbody>
    <row>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
    </row>
    <row>
      <entry spanname="spa1-2">C</entry>
      <entry spanname="spa3-4">C</entry>
      <entry spanname="spa5-6">C</entry>
      <entry spanname="spa7-8">C</entry>
    </row>
    <row>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
    </row>
    <row>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
    </row>
    <row>
      <entry spanname="spa1-2">C</entry>
      <entry spanname="spa3-4">C</entry>
      <entry spanname="spa5-6">C</entry>
      <entry spanname="spa7-8">C</entry>
    </row>
    <row>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
    </row>
  </tbody>
</tgroup>
</informaltable>

<para>
Как Вы видите, строки и столбцы изображения естественным образом
идут в парах. Поэтому смещения и размеры усечения
<emphasis>должны</emphasis> быть чётными числами.
Иначе хрома перестанет правильно соответствовать люме.
Теоретически возможно усечение с нечётными смещениями, но оно
потребует преобразования хромы, что потенциально является
операцией с потерей качества и не поддерживается фильтром
усечения сторон crop.
</para>

<para>
Далее, видео с чересстрочной развёрткой дискретизируется следующим образом:
</para>

<informaltable>
<?dbhtml table-width="80%" ?>
<?dbfo table-width="80%" ?>
<tgroup cols="16" align="center">
<colspec colnum="1"  colname="col1"/>
<colspec colnum="2"  colname="col2"/>
<colspec colnum="3"  colname="col3"/>
<colspec colnum="4"  colname="col4"/>
<colspec colnum="5"  colname="col5"/>
<colspec colnum="6"  colname="col6"/>
<colspec colnum="7"  colname="col7"/>
<colspec colnum="8"  colname="col8"/>
<colspec colnum="9"  colname="col9"/>
<colspec colnum="10" colname="col10"/>
<colspec colnum="11" colname="col11"/>
<colspec colnum="12" colname="col12"/>
<colspec colnum="13" colname="col13"/>
<colspec colnum="14" colname="col14"/>
<colspec colnum="15" colname="col15"/>
<colspec colnum="16" colname="col16"/>
<spanspec spanname="spa1-2"   namest="col1" nameend="col2"/>
<spanspec spanname="spa3-4"   namest="col3" nameend="col4"/>
<spanspec spanname="spa5-6"   namest="col5" nameend="col6"/>
<spanspec spanname="spa7-8"   namest="col7" nameend="col8"/>
<spanspec spanname="spa9-10"  namest="col9" nameend="col10"/>
<spanspec spanname="spa11-12" namest="col11" nameend="col12"/>
<spanspec spanname="spa13-14" namest="col13" nameend="col14"/>
<spanspec spanname="spa15-16" namest="col15" nameend="col16"/>
  <tbody>
    <row>
      <entry namest="col1" nameend="col8">Верхнее поле</entry>
      <entry namest="col9" nameend="col16">Нижнее поле</entry>
    </row>
    <row>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
    </row>
    <row>
      <entry spanname="spa1-2">C</entry>
      <entry spanname="spa3-4">C</entry>
      <entry spanname="spa5-6">C</entry>
      <entry spanname="spa7-8">C</entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
    </row>
    <row>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
    </row>
    <row>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
    </row>
    <row>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry spanname="spa9-10">C</entry>
      <entry spanname="spa11-12">C</entry>
      <entry spanname="spa13-14">C</entry>
      <entry spanname="spa15-16">C</entry>
    </row>
    <row>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
    </row>
    <row>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
    </row>
    <row>
      <entry spanname="spa1-2">C</entry>
      <entry spanname="spa3-4">C</entry>
      <entry spanname="spa5-6">C</entry>
      <entry spanname="spa7-8">C</entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
    </row>
    <row>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
    </row>
    <row>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
    </row>
    <row>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry spanname="spa9-10">C</entry>
      <entry spanname="spa11-12">C</entry>
      <entry spanname="spa13-14">C</entry>
      <entry spanname="spa15-16">C</entry>
    </row>
    <row>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry></entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
      <entry>L</entry>
    </row>
  </tbody>
</tgroup>
</informaltable>

<para>
Как Вы видите, структура повторяется только после 4 строк.
Так что для чересстрочного видео Ваше y-смещение и высота
усечения должны быть кратны 4.
</para>

<para>
Естественные разрешения DVD составляют 720x480 для NTSC и 720x576 
для PAL, но существует флаг соотношения сторон, который указывает
является ли видео полноэкранным (4:3) или широкоэкранным (16:9).
Многие (если не большинство) широкоэкранных DVD не точно соответсвуют
<!-- FIXME: Есть ли перевод названия формата cinescope (он же CinemaScope) ?? -->
формату 16:9 и он может быть как 1.85:1, так и 2.35:1 (формат cinescope).
Это означает, что в видео будут чёрные полосы, которые нужно усечь.
</para>

<para>
<application>MPlayer</application> предоставляет фильтр обнаружения
усечения, который определяет прямоугольник, до которго нужно усечь 
(<option>-vf cropdetect</option>).
Запустите <application>MPlayer</application> с
<option>-vf cropdetect</option> и он выдаст настройки
усечения для удаления полей.
С целью получения точных параметров усечения, Вы должны проигрывать 
фильм достаточно долго для того, чтоб была использована вся область 
изображения. 
</para>

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

<para>
В ряде случаев масштабирование может быть нежелательным.
Масштабирование по вертикальному направлению затруднено для
чересстрочного видео, и если Вы хотите сохранить чересстрочность,
Вам в большинстве случаев будет необходимо воздерживаться от 
масштабирования. 
Если Вы не будете масштабировать, но всё ещё желаете размеры,
кратные 16, то Вам придётся проводить излишнее усечение.
Не проводите неполное усечение, поскольку чёрные полосы очень
плохи для кодирования!
</para>

<para>
Поскольку MPEG-4 использует макроблоки 16х16, Вы должны убедиться,
что каждое измерение кодируемого видео кратно 16; иначе Вы ухудшите 
качество, особенно на малых битпотоках. Вы можете сделать это, 
округлив ширину и высоту прямоугольника усечения до ближайшего 
меньшего целого, кратного 16.
Учитывая установленное ранее, при усечении Вы можете захотеть увеличить
смещение по Y на половину разности старой и новой высоты, так что
полученное видео будет браться из центра кадра.
  
И из-за способа дискретизации DVD видео, убедитесь, что смещение
есть чётное число. (Фактически, возьмите за правило никогда не 
использовать нечётные величины для любых параметров усечения или
масштабирования видео.) Если Вы беспокоитесь из-за нескольких
излишне отброшенных битов, возможно, Вы предпочтёте взамен
масштабировать видео.
В действительности, Вы можете доверить фильтру
<option>cropdetect</option> сделать для Вас всё вышеупомянутое,
т.к. у него есть необязательный параметр округления 
<option>round</option>, равный 16 по умолчанию.
</para>

<para>
Также будьте осторожны с "полутёмными" пикселями на краях. Убедитесь,
что они тоже отрезаются, иначе Вы будете тратить биты, которым есть
лучшее применение.
</para>

<para>
После всего выше сказанного и сделанного, Вы, вероятно, получите
видео не точно формата 1:85.1 или 2.35:1, а с чем-то близким 
к этому.  Вы можете вычислить новый коэффициент соотношения 
сторон вручную, но <application>MEncoder</application> 
предоставляет опцию для <systemitem class="library">libavcodec</systemitem>,
называемую <option>autoaspect</option>, которая сделает это для
Вас. Ни в коем случае не увеличивайте размер этого видео с целью 
квадратизации пикселей, если Вы не желаете впустую потратить 
место на жёстком диске.
Масштабирование должно выполняться при воспроизведении, и плеер
использует коэффициент соотношения сторон, сохранённый в AVI, для
определения правильного разрешения.
К сожалению, не все плееры используют эту информацию автомасштабирования,
поэтому Вам всё ещё может быть необходимо перемасштабирование.
</para>
</sect2>

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

<sect2 id="menc-feat-dvd-mpeg4-resolution-bitrate">
<title>Выбор разрешения и битпотока</title>

<para>
Если Вы не собираетесь кодировать в режиме постоянного квантователя,
Вам нужно выбрать битпоток. 
Понятие битпотока очень просто: это среднее число битов, которые
будут использованы для сохранения Вашего фильма, в секунду.
Обычно битпоток измеряется в килобитах (1000 бит) в секунду.
Размер Вашего фильма на диске есть битпоток, умноженный на 
длительность фильма, плюс небольшие накладные расходы 
(см. раздел
<link linkend="menc-feat-dvd-mpeg4-muxing-avi-limitations">контейнер AVI</link>
для примера).
Остальные параметры, такие как масштабирование, усечение и т.п.
<emphasis role="bold">не</emphasis> изменят размер файла, пока
Вы также не измените битпоток!
</para>

<para>
Битпоток изменяется <emphasis role="bold">не</emphasis>
пропорционально разрешению. 
То есть файл разрешением 320х240 с 200 кбит/сек не будет 
того же качества, что этот же фильм разрешением 640х480 
и 800 кбит/сек!
Для этого есть две причины:
<orderedlist>
<listitem><para>
  <emphasis role="bold">Восприятие</emphasis>: Вы сильнее
  замечаете MPEG артефакты, если они больше!
  Артефакты возникают на масштабе блоков (8х8).
  Ваш глаз не увидит ошибки в 4800 маленьких блоков так же
  легко, как и в 1200 больших блоков (предполагая 
  масштабирование обоих фильмов на полный экран).
</para></listitem>
<listitem><para>
  <emphasis role="bold">Теоретическая</emphasis>: Когда Вы 
  уменьшаете размер изображения, но продолжаете использовать
  блоки того же размера (8х8) для пространственных частотных 
  преобразований, Вы перемещаете больше данных в высокочастотные
  полосы. Грубо говоря, каждый пиксель содержит больше деталей,
  чем раньше.
  Так что несмотря на то, что ваша картинка с уменьшенным 
  масштабом содержит 1/4 информации в пространственных направлениях,
  она всё ещё может содержать большУю часть информации в 
  частотных интервалах (предполагая, что высокие частоты были
  не использованы в оригинальном 640х480 изображении).
</para></listitem>
</orderedlist>
</para>

<para>
Последние руководства рекомендовали выбор битпотока и разрешения,
основываясь на приближении "бит на пиксель", но это обычно не 
верно из-за упомянутых выше причин.
Похоже, лучшей оценкой является рост битпотока пропорционально
квадратному корню разрешения, так что 320х240 и 400 кбит/сек
должно быть сравнимо с 640х480 и 800 кбит/сек.
Однако, это не было строго проверено теоретически или эмпирически.
Кроме того, из-за существенного отличия фильмов по уровню шума,
деталей, степеней свободы и т.п., тщетно давать общие рекомендации
для "битов на длину диагонали" (аналог битов на пиксель, используя
квадратный корень).
</para>

<para>
Таким образом, мы обсудили сложность выбора битпотока и разрешения.
</para>


<sect3 id="menc-feat-dvd-mpeg4-resolution-bitrate-compute">
<title>Расчёт разрешения</title>

<para>
Следующие шаги помогут Вам рассчитать разрешение для Вашего 
кодирования без слишком сильного искажения видео, учитывая
некоторую информацию об исходном видео.
Прежде всего, Вам необходимо рассчитать коэффициент соотношения
сторон для кодированного видео:
<systemitem>ARc = (Wc x (ARa / PRdvd )) / Hc</systemitem>

<itemizedlist>
<title>где:</title>
<listitem><para>
  Wc и Hc &mdash; ширина и высота усечённого видео,
</para></listitem>
<listitem><para>
  ARa &mdash; коэффициент соотношения сторон изображения, обычно 4/3 или 16/9,
</para></listitem>
<listitem><para>
  PRdvd &mdash; отношение пикселей DVD, что равно 1.25=(720/576) для PAL
  DVD и 1.5=(720/480) для NTSC DVD.
</para></listitem>
</itemizedlist>
</para>

<para>
Затем Вы можете рассчитать разрешение по X и Y, согласно определённому
фактору качества сжатия (CQ):
<systemitem>ResY = INT(SQRT( 1000*Битпоток/25/ARc/CQ )/16) * 16</systemitem>
и <systemitem>ResX = INT( ResY * ARc / 16) * 16</systemitem>.
</para>

<para>
Хорошо, но что такое CQ?
CQ соответствует числу битов на пиксель и на кадр для кодирования.
Грубо говоря, чем больше CQ, тем меньше вероятность увидеть
артефакты кодирования.
Однако, если у Вас есть заданный размер для Вашего фильма
(например, 1 или 2 CD), есть ограниченное общее число битов, 
которые Вы можете потратить; поэтому важно найти хороший 
компромисс между сжимаемостью и качеством.
</para>

<para>
CQ зависит от битпотока, эффективности видеокодека и разрешения фильма.
Обычно, в целях увеличения CQ, Вам нужно будет уменьшить размер
фильма при постоянном битпотоке, заданном размере и длине фильма.
С MPEG-4 ASP кодеками, такими как <systemitem class="library">Xvid</systemitem>
и <systemitem class="library">libavcodec</systemitem>, CQ 
меньше 0.18 обычно приводит к изображению с большим числом
сегментов "квадратиками", из-за недостаточного числа битов для
кодирования информации в каждом макроблоке. 
(MPEG4, как и многие другие кодеки, группирует пиксели в блоки по
несколько пикселей для сжатия изображения; если битов не хватает,
границы этих блоков становятся заметными.)
Следовательно, благоразумно выбрать CQ в диапазоне от 0.20 до 0.22
для рипа на 1 CD и 0.26-0.28 для рипа на 2 CD при использовании
стандартных опций кодирования.
Более продвинутые опции кодирования, такие как указанные для
<link linkend="menc-feat-mpeg4-lavc-example-settings"><systemitem class="library">libavcodec</systemitem></link>
  и
<link linkend="menc-feat-xvid-example-settings"><systemitem class="library">Xvid</systemitem></link>
должны сделать возможным получение того же качества с CQ в диапазоне
от 0.18 до 0.20 для рипа на 1 CD и 0.24-0.26 для рипа на 2 CD.
Используя MPEG-4 ASP кодеки, такие как 
<systemitem class="library">x264</systemitem>, Вы можете использовать
CQ в диапазоне от 0.14 до 0.16 со стандартными опциями кодирования
и должны суметь достичь таких низких значений, как 0.10-0.12
с помощью
<link linkend="menc-feat-x264-example-settings">продвинутых опций кодирования <systemitem class="library">x264</systemitem></link>.
</para>

<para>
Пожалуйста, обратите внимание, что CQ &mdash; лишь показательная величина,
т.к. она зависит от кодируемого содержимого; CQ 0.18 может хорошо 
смотреться для Бергмана (Bergman), в отличии от такого фильма как
Матрица (The Matrix), содержащего много сцен с быстрым движением.
С другой стороны, бесполезно увеличивать CQ выше 0.30, т.к. Вы
будете тратить биты без заметного увеличения качества.
Так же обратите внимание, что, как было указано выше в данном
руководстве, фильмам с низким разрешением (например, по сравнению с DVD)
необходим более высокий CQ для того, чтоб они выглядели хорошо.
</para>
</sect3>
</sect2>

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

<sect2 id="menc-feat-dvd-mpeg4-filtering">
<title>Фильтрация</title>

<para>
Изучение использования видео фильтров <application>MEncoder</application>
важно для получения хороших результатов кодирования.
Вся обработка видео выполняется посредством фильтров: усечение, 
масштабирование, подстройка цвета, удаление шума, увеличение
чёткости, деинтерлейс (преобразование видео из чересстрочной
развёртки в построчную), телесин, обратный телесин и удаление
блочной сегментации &mdash; и это лишь некоторые из них.
Вместе с огромным количеством поддерживаемых входных форматов,
разнообразие фильтров, доступных в <application>MEncoder</application>,
является одним из его основных достоинств над другими аналогичными
программами.
</para>

<para>
Фильтры загружаются в цепочки с помощью опции -vf:

<screen>-vf фильтр1=опции,фильтр2=опции,...</screen>

Большинство фильтров используют численные значения опций, 
разделённые двоеточиями, но синтаксис этих параметров различается
у разных фильтров, так что читайте мануал для детальной
информации о фильтрах, которые Вы желаете использовать.
</para>

<para>
Фильтры действуют на видео в порядке их загрузки.
Например, следующая цепочка:

<screen>-vf crop=688:464:12:4,scale=640:464</screen>

сперва усечёт область изображения до 688х464 с верхним левым 
углом (12,4), а затем масштабирует результат до 640х464.
</para>

<para>
Некоторые фильтры нужно загружать в начале цепочки фильтров (или
рядом с ним) с целью получения преимущества от использования
информации после видеодекодера, которая будет потеряна или
искажена другими фильтрами.
Важнейшими примерами являются: <option>pp</option> (постобработка, 
только при выполнении операций удаления блочной сегментации
(deblocking) или увеличения чёткости краёв (deringing)),
<option>spp</option> (другой фильтр постобработки, служащий для
удаления артефактов MPEG), <option>pullup</option> (обратный
телесин), и <option>softpulldown</option> (для преобразования 
мягкого телесина в жёсткий).
</para>

<para>
В общем случае, Вам следует делать настолько мало фильтрации, 
насколько это возможно, для того чтоб остаться близко к оригинальному
DVD источнику. Усечение часто необходимо (как описано выше), но
избегайте масштабирования видео. Несмотря на то, что уменьшение 
размера иногда предпочтительно при использовании больших 
квантователей, нужно избегать и того, и другого: помните, 
что мы с самого начала решили обменять биты на качество.
</para>

<para>
Также не корректируйте гамму, контрастность, яркость и т.п.. То,
что хорошо выглядит на Вашем мониторе, может плохо выглядеть
на других. Коррекция должна выполняться только при воспроизведении.
</para>

<para>
Однако, есть одна вещь, которую Вы, быть может, захотите сделать &mdash;
это пропустить видео через очень слабый фильтр удаления шумов,
такой как <option>-vf hqdn3d=2:1:2</option>.
Ещё раз, причиной этому является то, что этим битам можно найти
лучшее применение: зачем тратить их, кодируя шум, если Вы просто
можете вернуть этот шум в процессе воспроизведения?
Увеличение параметров для <option>hqdn3d</option> дополнительно 
улучшит сжимаемость, но увеличив значения слишком сильно, Вы рискуете
ухудшить различимость изображения. 
Рекомендованные выше значения (<option>2:1:2</option>) слегка 
консервативны; не бойтесь экспериментировать с более высокими 
значениями и самостоятельно оценивать результаты.
</para>
</sect2>

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

<sect2 id="menc-feat-dvd-mpeg4-interlacing">
<title>Чересстрочная развёртка и телесин</title>

<para>
Почти все фильмы снимаются при 24 fps [кадр/сек]. Поскольку 
в NTSC используется 30000/1001 fps, нужно выполнить некоторую
обработку для такого 24 fps видео, чтобы оно корректно 
воспроизводилось при кадровой частоте NTSC. Этот процесс называется
3:2 пулдаун, обычно называемый телесин (поскольку пулдаун часто
применяется в процессе показа телевизионного фильма, англ. telecine);
и в упрощенном описании это работает путём замедления фильма до
24000/1001 fps и повтора каждого четвёртого кадра.
</para>

<para>
Однако, никакой специальной обработки не выполняется для видео
на PAL DVD, которое воспроизводится при 25 fps. (Технически PAL
может быть подверженным телесину, называемому 2:2 пулдаун, но на
практике это не применяется).
24 fps фильм просто проигрывается на 25 fps. В результате фильм
воспроизводится слегка быстрее, но если Вы не пришелец, то,
вероятно, не заметите разницы.
У большинства PAL DVD аудио корректируемо по высоте звука, так 
что, воспроизводясь при 25 fps, оно звучит нормально, даже если 
аудиодорожка (и, следовательно, весь фильм) проигрываются на
4% быстрее, чем NTSC DVD.
</para>

<para>
Поскольку видео на PAL DVD не переделывается, Вам не стоит 
беспокоится о частоте кадров. У источника 25 fps и у Вашего
рипа будет 25 fps. Однако, если Вы делаете рип NTSC DVD фильма,
Вам, быть может, придётся выполнить обратный телесин.
</para>

<para>
Для фильмов, снятых на 24 fps, видео на NTSC DVD идёт либо с телесином
30000/1001, либо с построчной развёрткой 24000/1001 fps и 
предназначается для телесина на лету с помощью DVD плеера.
С другой стороны, TV сериалы идут обычно только с чересстрочной развёрткой,
но без телесина. Это не строгое правило: есть сериалы с
чересстрочной развёрткой (например, Баффи, Убийца Вампиров
[Buffy the Vampire Slayer]), в то время как другие представляют
собой смесь построчной и чересстрочной развёртки (такие как
Ангел [Angel] или 24).
</para>

<para>
Настоятельно рекомендуется прочитать раздел о
<link linkend="menc-feat-telecine">работе с телесином и чересстрочной развёрткой в NTSC DVD</link>
для изучения способов обработки в разных ситуациях.
</para>

<para>
Однако, если Вы преимущественно делаете рипы фильмов, Вы, скорее
всего, имеете дело с 24 fps видео либо с построчной развёрткой,
либо с подвергнутым телесину; в последнем случае Вы можете использовать
<option>pullup</option> фильтр: <option>-vf
pullup,softskip</option>.
</para>
</sect2>

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

<sect2 id="menc-feat-dvd-mpeg4-encoding-interlaced">
<title>Кодирование чересстрочного видео</title>

<para>
Если Вы желаете кодировать фильм с чересстрочной развёрткой
(NTSC или PAL видео), Вам нужно решить, будете ли Вы его 
преобразовывать в построчную развёртку или нет.
Хотя такое преобразование (деинтерлейс) сделает Ваш фильм 
пригодным для дисплеев с построчной развёрткой, таких как
компьютерные мониторы и проекторы, это будет иметь свою цену:
частота полей уменьшится вдвое от 50 или 60000/1001 до 25 или 
30000/1001 поля в секунду, и примерно половина информации в 
Вашем фильме будет потеряна в сценах со значительным движением. 
</para>

<para>
Поэтому, если Вы кодируете для высококачественных архивных целей,
не рекомендуется делать деинтерлейс. Вы всегда можете преобразовать
развёртку фильма в процессе воспроизведения (при воспроизведении
на устройствах с построчной развёрткой).
Мощность современных компьютеров вынуждает плееры использовать 
фильтр деинтерлейса, что слегка ухудшает качество изображения.
Но плееры будущего будут способны имитировать дисплей TV с 
чересстрочной развёрткой, выполняя деинтерлейс на полной частоте
полей и интерполируя 50 или 60000/1001 кадров в секунду для
чересстрочного видео.
</para>

<para>
С чересстрочным видео нужно работать особым образом:
</para>

<orderedlist>
<listitem><para>
  Высота усечения и смещение по оси y должны быть кратны 4.
</para></listitem>
<listitem><para>
  Любое вертикальное масштабирование должно выполняться в режиме
  чересстрочной развёртки.
</para></listitem>
<listitem><para>
  Фильтры постобработки и удаления шума могут не работать как 
  ожидается, только если Вы особо не позаботитесь об их 
  одновременном применении на частоте полей, иначе они могут
  повредить видео при неверном использовании.
</para></listitem>
</orderedlist>

<para>
  Учитывая вышесказанное, вот наш первый пример:
<screen>
mencoder <replaceable>захват.avi</replaceable> -mc 0 -oac lavc -ovc lavc -lavcopts \
vcodec=mpeg2video:vbitrate=6000:ilme:ildct:acodec=mp2:abitrate=224
</screen>
Обратите внимание на опции <option>ilme</option> и <option>ildct</option>. 
</para>
</sect2>

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

<sect2 id="menc-feat-dvd-mpeg4-av-sync">
<title>Замечания об аудио/видео синхронизации</title>

<para>
Алгоритмы аудио/видео (A/V) синхронизации <application>MEncoder</application>
были разработаны с целью восстановления файлов с повреждённой
синхронизацией.
Однако, в ряде случаев они могут привести к ненужному пропуску 
или повторению кадров и, возможно, к лёгкой A/V рассинхронизации
корректных входных данных (конечно, проблемы A/V синхронизации 
возникают только при обработке или копировании аудиотрека при
кодировании видео, что настоятельно рекомендуется).
Поэтому Вы можете переключиться на базовую A/V синхронизацию 
с помощью опции <option>-mc 0</option> или разместить это в
конфигурационном файле <systemitem>~/.mplayer/mencoder</systemitem>,
если Вы работаете только с хорошими источниками (DVD, TV-захват,
высококачественные MPEG-4 рипы и т.п.), а не с повреждёнными
файлами ASF/RM/MOV.
</para>

<para>
Если Вы хотите дополнительно защититься от странных пропусков 
и повторений кадров, вы можете одновременно использовать опции
<option>-mc 0</option> и <option>-noskip</option>.
Это предотвратит <emphasis>любую</emphasis> A/V коррекцию, и 
будет копировать кадры один в один, так что Вы не сможете это
использовать, если будете применять какие-либо фильтры, которые
непредсказуемо добавляют или отбрасывают кадры, либо если у 
Вашего входного файла переменный битопоток!
Поэтому использование <option>-noskip</option> в общем случае не
рекомендуется.
</para>

<para>
Сообщалось о том, что так называемое трёхпроходное аудиокодирование,
поддерживаемое <application>MEncoder</application>, вызывало
A/V рассинхронизацию.
Это наверняка произойдёт при использовании совместно с некоторыми
фильтрами, поэтому сейчас <emphasis>не</emphasis> рекомендуется 
использовать трёхпроходный аудио режим.
Эта возможность оставлена только для совместимости и для опытных
пользователей, понимающих когда это безопасно, а когда нет.
Если Вы ранее никогда не слышали о трёхпроходном режиме, забудьте
даже о том, что мы его упоминали!
</para>

<para>
Также были сообщения об A/V рассинхронизации при кодировании
со стандартного ввода (stdin) с помощью <application>MEncoder</application>.
Не делайте этого! Всегда взамен используйте файл или CD/DVD и т.п. 
устройство.
</para>
</sect2>

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

<sect2 id="menc-feat-dvd-mpeg4-codec">
<title>Выбор видеокодека</title>

<para>
То, какой видеокодек лучше выбрать, зависит от нескольких 
факторов, таких как размер, качество, устойчивость к ошибкам,
практичность и распространённость, многие из которых сильно
зависят от личных предпочтений и технических ограничений.
</para>
<itemizedlist>
<listitem>
  <para>
  <emphasis role="bold">Эффективность сжатия</emphasis>:
  Достаточно очевидно, что большинство кодеков нового поколения 
  разработаны для увеличения качества и степени сжатия.
  Поэтому, авторы данного руководства и многие другие люди полагают,
  что Вы не можете ошибиться
  <footnote id='fn-menc-feat-dvd-mpeg4-codec-cpu'><para>
   Несмотря на это, будьте осторожны: для декодирования MPEG-4 AVC 
   видео с DVD разрешением необходима быстрая машина (например, 
   Pentium 4 свыше 1.5 ГГц или Pentium M свыше 1 ГГц).
  </para></footnote>,
  выбирая MPEG-4 AVC кодеки (например,
  <systemitem class="library">x264</systemitem>)
  вместо таких MPEG-4 ASP кодеков, как
  <systemitem class="library">libavcodec</systemitem> MPEG-4 или
  <systemitem class="library">Xvid</systemitem>.
  (Опытные разработчики кодеков могут быть заинтересованы в 
  ознакомлении с точкой зрения Михаэля Найдермауэра (Michael
  Niedermayer)
  "<ulink url="http://guru.multimedia.cx/?p=10">почему MPEG4-ASP отстой</ulink>".)
  Аналогично, Вы должны получить лучшее качество с MPEG-4 ASP, по
  сравнению с MPEG-2 кодеками.
  </para>
  
  <para>
  Однако, новые кодеки, находящиеся в интенсивной разработке, 
  могут страдать от ещё не замеченных ошибок, которые могут 
  испортить кодирование. Просто это плата за использование 
  передовых технологий.
  </para>
  
  <para>
  Более существенно то, что для начала использования нового кодека
  необходимо потратить время на изучение его опций так, чтобы Вы 
  знали, что нужно подстраивать для достижения заданного качества
  изображения.
  </para>
</listitem>

<listitem><para>
  <emphasis role="bold">Аппаратная совместимость</emphasis>:
  Обычно необходимо длительное время для включения поддержки 
  последних видеокодеков в автономные видеоплееры.
  В итоге, большинство поддерживает только MPEG-1 (наподобие 
  VCD, XVCD и KVCD), MPEG-2 (например, DVD, SVCD и KVCD) и MPEG-4 
  ASP (например, DivX,
  <systemitem class="library">libavcodec</systemitem> LMP4 и
  <systemitem class="library">Xvid</systemitem>)
  (Осторожно: обычно поддерживаются не все возможности MPEG-4 ASP).
  Пожалуйста, обратитесь к технической спецификации Вашего плеера
  (если она доступна) или к гугл (google) для детальной информации.
</para></listitem>

<listitem>
  <para>
  <emphasis role="bold">Лучшее соотношение качества и времени кодирования</emphasis>:
  Кодеки, уже использующиеся определённое время (например,
  <systemitem class="library">libavcodec</systemitem> MPEG-4 и
  <systemitem class="library">Xvid</systemitem>) обычно сильно 
  оптимизированы всевозможными остроумными алгоритмами и 
  ассемблерным SIMD кодом. Поэтому они обладают тенденцией
  достижения лучшего соотношения качества к времени кодирования.
  Однако, у них могут быть некоторые очень продвинутые опции,
  которые, будучи включенными, сделают кодирование очень медленным
  ради несущественного выигрыша.
  </para>
  
  <para>
  Если Вам нужна высокая скорость, примерно придерживайтесь настроек 
  видеокодека по умолчанию (хотя Вам стоит попробовать другие опции,
  упоминаемые в иных разделах данного руководства). 
  </para>
  
  <para>
  Вы так же можете рассмотреть вариант использования многопоточного 
  кодека, хотя это полезно только для пользователей машин с
  несколькими процессорами.
  <systemitem class="library">libavcodec</systemitem> MPEG-4 позволяет
  это, но выигрыш в скорости ограничен и есть небольшой отрицательный
  эффект для качества картинки.
  Многопоточное кодирование <systemitem class="library">Xvid</systemitem>,
  включаемое опцией <option>threads</option>, может использоваться для 
  ускорения кодирования (на примерно 40-60% в типичных случаях)
  с небольшим ухудшением картинки или вообще без него.
  <systemitem class="library">x264</systemitem> также позволяет 
  многопоточное кодирование, что обычно ускоряет процесс на 15-30%
  (в зависимости от настроек кодирования) с уменьшением PSNR примерно
  на 0.05 дБ.
  </para>
</listitem>

<listitem>
  <para>
  <emphasis role="bold">Личные предпочтения</emphasis>:
  Здесь всё становится почти неразумным: из-за тех же причин, по 
  которым одни придерживаются DivX&nbsp;3 в течении лет, в то время
  как новые кодеки уже творят чудеса, другие люди предпочитают
  <systemitem class="library">Xvid</systemitem> или
  <systemitem class="library">libavcodec</systemitem> MPEG-4
  использованию <systemitem class="library">x264</systemitem>.
  </para>
  
  <para>
  Вам нужно принимать решение самостоятельно; не слушайте советов 
  людей, признающих только один кодек.
  Сделайте несколько образцов клипов из искомых источников и
  сравните разные опции кодирования и кодеки, с целью выбора
  того, что Вам наиболее подходит.
  Лучший кодек &mdash; это тот, которым Вы сами овладели, и 
  который выглядит лучше всего для Ваших глаз на Вашем дисплее
  <footnote id='fn-menc-feat-dvd-mpeg4-codec-playback'><para>
  Один и тот же результат кодирования может не выглядеть таким же
  на чьём-либо другом мониторе или при воспроизведении с помощью
  другого декодера, так что проверяйте Ваши результаты кодирования
  на жизнеспособность, воспроизводя их в разных начальных условиях.
  </para></footnote>!
  </para>
</listitem>
</itemizedlist>

<para>
Пожалуйста, обратитесь к разделу
<link linkend="menc-feat-selecting-codec">выбор кодеков и форматов контейнера</link>
для получения списка поддерживаемых кодеков.
</para>
</sect2>

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

<sect2 id="menc-feat-dvd-mpeg4-audio">
<title>Аудио</title>

<para>
Аудио &mdash; это гораздо более простая проблема: если Вы 
беспокоитесь о качестве, просто оставьте всё как есть.
Даже потоки AC3 5.1 не более чем 448 Кбит/с и они стоят каждого 
бита. Вы можете соблазниться перекодированием аудио в 
высококачественный Vorbis (он же ogg формат), но лишь то, что 
у Вас сегодня нет A/V приёмника для пропускания AC3, не означает,
что у Вас не будет его завтра. Для жизнеспособности Ваших DVD 
рипов в будущем, сохраняйте поток AC3.
Вы можете сохранить поток AC3, копируя его непосредственно в 
видеопоток <link linkend="menc-feat-mpeg4">в процессе кодирования</link>.
Вы также можете извлечь AC3 поток с целью мультиплексирования его 
в контейнеры наподобие NUT или Matroska (Матрёшка).
<screen>
mplayer <replaceable>файл_источника.vob</replaceable> -aid 129 -dumpaudio -dumpfile <replaceable>звук.ac3</replaceable></screen>
сохранит в файл <replaceable>звук.ac3</replaceable> аудиодорожку
с номером 129 из файла
<replaceable>файл_источника.vob</replaceable> (Обратите внимание:
DVD VOB файлы обычно используют нумерацию аудио, отличную от 
стандартной, что означает, что аудиодорожка VOB 129 &mdash; это вторая
аудиодорожка файла).
</para>

<para>
Но иногда у Вас действительно нет иного выбора, чем далее сжимать 
звук для того, чтоб больше битов могло быть потрачено на видео.
Большинство людей предпочитают сжимать звук с помощью MP3 или
Vorbis аудиокодеков.
Последний является очень эффективным, но MP3 лучше поддерживается
аппаратными плеерами, хотя эта тенденция меняется.
</para>

<para>
<emphasis>Не</emphasis> используйте <option>-nosound</option> при
кодировании файла с аудио, даже если Вы будете позже кодировать и 
мультеплексировать аудио отдельно.
Хотя это может работать в идеальных случаях, использование
<option>-nosound</option> обычно скрывает ряд проблем в Ваших
настройках кодирования в командной строке.
Другими словами, наличие звуковой дорожки в процессе кодирования
гарантирует Вам, что в случае отсутствия сообщений, подобных
<quote>Слишком много аудиопакетов в буфере</quote>, у Вас будет
получена правильная синхронизация.
</para>

<para>
Вам необходим <application>MEncoder</application> для обработки
звука.
Например, Вы можете копировать исходную звуковую дорожку в 
процессе кодирования с помощью <option>-oac copy</option> или
преобразовать её в "лёгкий" 4 кГц моно WAV PCM с помощью
<option>-oac pcm -channels 1 -srate 4000</option>.
Иначе, в ряде случаев, будет создаваться видео файл, 
рассинхронизированный с аудио.
Такие случаи происходят, когда число кадров видео исходного файла
не совпадает с полной длиной кадров аудио, или когда были
разрывы/сшивания потока, где появились пропущенные или излишние 
аудиокадры.
Правильным решением подобных проблем является вставка тишины или
усечение аудио в таких точках.
Однако, <application>MPlayer</application> не может это сделать
и если Вы демультиплексируете AC3 аудио и кодируете его отдельным
приложением (или создаёте дамп в PCM с помощью
<application>MPlayer</application>), сшивания останутся 
нескорректированными и единственный испособ их исправить &mdash;
пропускать/дублировать видеокадры в местах сшивки.
Пока <application>MEncoder</application> видит аудио при 
кодировании видео, он может выполнять этот пропуск/дублирование
(что обычно не вызывыет проблем, т.к. происходит при полностью
чёрных кадрах или при смене сцен), но если
<application>MEncoder</application> не доступно аудио, он просто
будет обрабатывать все кадры "как есть" и они не будут совпадать
с окончательным аудиопотоком, когда Вы, например, объедините 
аудио и видео дорожки в Matroska файл.
</para>

<para>
Прежде всего, Вам необходимо преобразовать DVD звук в WAV файл, 
который может использоваться аудиокодеком в качестве входных 
данных. Например:
<screen>
mplayer <replaceable>исходный_файл.vob</replaceable> -ao pcm:file=<replaceable>звук.wav</replaceable> 
    -vc dummy -aid 1 -vo null
</screen>
сохранит вторую аудиодорожку из файла
<replaceable>исходный_файл.vob</replaceable> в файл 
<replaceable>звук.wav</replaceable>.
Возможно, Вы захотите нормализовать звук перед кодированием,
поскольку аудиодорожки DVD обычно записываются с маленькой
громкостью.
Вы можете использовать, например, утилиту <application>normalize</application>,
доступную в большинстве дистрибутивов.
Если вы пользуетесь Window$, утилита <application>BeSweet</application>
делает то же самое.
Вы можете сжать в Vorbis или MP3. Например:
<screen>oggenc -q1 <replaceable>звук.wav</replaceable></screen>
кодирует <replaceable>звук.wav</replaceable> с качеством 1, 
что примерно эквивалентно 80 Кб/с и является минимальным качеством,
при котором Вам нужно кодировать, если Вы заботитесь о качестве.
Пожалуйста, обратите внимание, что <application>MEncoder</application> 
на данный момент не поддерживает мультиплексирование аудиопотоков 
Vorbis в выходной файл, поскольку он поддерживает только AVI и
MPEG контейнеры для выходных файлов, использование каждого из 
которых может привести к проблемам A/V синхронизации с 
некоторыми плеерами, в случае когда AVI файл содержит VBR
аудиопотоки наподобие Vorbis.
Не беспокойтесь, в данном документе будет рассказано как Вы
можете это сделать с помощью сторонних программ.
</para>
</sect2>

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

<sect2 id="menc-feat-dvd-mpeg4-muxing">
<title>Мультиплексирование</title>

<para>
Теперь, после того как Вы кодировали видео, скорее всего, Вы
захотите мультиплексировать его с одним или несколькими 
аудиопотоками в такие видео контейнеры как AVI, MPEG, 
Matroska или NUT.
На данный момент встроенная поддержка вывода аудио и видео в
<application>MEncoder</application> есть только для форматов
контейнеров MPEG и AVI.
Например:
<screen>
mencoder -oac copy -ovc copy -o <replaceable>выходной_фильм.avi</replaceable> \
    -audiofile <replaceable>исходный_звук.mp2</replaceable> <replaceable>исходное_видео.avi</replaceable>
</screen>
Это объединит видеофайл <replaceable>исходное_видео.avi</replaceable>
и аудиофайл <replaceable>исходный_звук.mp2</replaceable>
в AVI файл <replaceable>выходной_фильм.avi</replaceable>.
Эта команда работает с MPEG-1 слой I, II и III (более
известный как MP3) аудио, WAV, а также с некоторыми иными
форматами аудио.
</para>

<para>
<application>MEncoder</application> 
обладает экспериментальной поддержкой
<systemitem class="library">libavformat</systemitem> &mdash;
библиотеки из проекта FFmpeg, поддерживающей мультиплексирование
и демультиплексирование множества контейнеров.
Например:
<screen>
mencoder -oac copy -ovc copy -o <replaceable>выходной_фильм.asf</replaceable> \
    -audiofile <replaceable>исходный_звук.mp2</replaceable> <replaceable>исходное_видео.avi</replaceable> \
    -of lavf -lavfopts format=asf
</screen>
Это сделает то же самое, что и предыдущий пример, но выходным
контейнером будет ASF.
Пожалуйста, обратите внимание, что эта поддержка весьма 
экспериментальна (но становится лучше c каждым днём), и будет
работать только в случае компиляции <application>MPlayer</application> 
с включенной поддержкой  
<systemitem class="library">libavformat</systemitem> (что означает, 
что в большинстве случаев бинарная версия из пакетов не будет 
работать).
</para>


<sect3 id="menc-feat-dvd-mpeg4-muxing-filter-issues">
<title>Улучшение мультиплексирования и надёжности A/V синхронизации</title>

<para>
Вы можете столкнуться с некоторыми серьёзными проблемами A/V
синхронизации при попытке мультиплексирования вашего видео 
с некоторыми аудиодорожками, где, как бы Вы не подбирали задержку
аудио, никогда не получается правильная синхронизация.
Это может происходить при использовании некоторых видеофильтров,
пропускающих или дублирующих некоторые кадры, например фильтров
обратного телесина.
Настоятельно рекомендуется добавлять видеофильтр 
<option>harddup</option> в конце цепочки фильтров для избежания
подобных проблем.
</para>

<para>
Без опции <option>harddup</option>, в случае когда 
<application>MEncoder</application> хочет дублировать кадр, он 
полагается на то, что мультиплексор расположит отметку в 
контейнере таким образом, что последний кадр будет повторен для
достижения синхронизации без реальной записи кадра.
С опцией <option>harddup</option>, <application>MEncoder</application>
вместо этого просто ещё раз поместит последний кадр в цепочку 
фильтров.
Это означает, что кодер получит <emphasis>точно</emphasis>
такой же кадр дважды и сожмёт его.
Это приведёт у несколько большему файлу, но избавит от проблем
при демультиплексировании или ремультиплексировании с другими
форматами контейнеров.
</para>

<para>
Также у Вас может не быть иного выбора, как использовать 
<option>harddup</option> с форматами контейнеров, которые 
не слишком плотно связаны с 
<application>MEncoder</application>, например, с форматами, 
поддерживаемыми с помощью 
<systemitem class="library">libavformat</systemitem>, 
которые могут не поддерживать дублирование кадров на уровне
контейнера.
</para>
</sect3>


<sect3 id="menc-feat-dvd-mpeg4-muxing-avi-limitations">
<title>Ограничения контейнера AVI</title>

<para>
Хотя это самый широко распространённый формат контейнера после 
MPEG-1,  он также обладает некоторыми существенными недостатками.
Пожалуй, они наиболее очевидны в его избыточности.
Для каждой цепочки AVI файла теряется 24 байта на заголовки и
индекс.
Это приводит к чуть более 5 МБ/час или 1.0-2.5% избыточности
для 700 МБ фильма. Это не кажется большим, но может означать
разницу между возможностью использования 700 кбит/сек или
714 кбит/сек в случаях, когда каждый бит на счету.
</para>

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

<orderedlist>
<listitem><para>
  Может быть сохранено только содержимое с фиксированной частотой
  кадров. В частности, это особенно ограничивает, когда Ваш 
  исходный материал смешанного содержимого: например, является
  смесью NTSC видео и киноматериала.
  В действительности, есть хаки, позволяющие сохранять содержимое
  с переменным fps в AVI, но они увеличивают (и без того большую)
  избыточность впятеро или более того и поэтому непрактичны.
</para></listitem>
<listitem><para>
  Аудио в AVI файлах должно быть или с постоянным битпотоком (CBR)
  или с постоянным размером кадра (т.е. все кадры декодируются
  в одно и то же число выборок).
  К сожалению, самый эффективный кодек, Vorbis, не удовлетворяет 
  ни одному из данных требований.
  Поэтому, если Вы планируете сохранять Ваш фильм в AVI, Вы должны
  использовать менее эффективный кодек, такой как MP3 или AC3.
</para></listitem>
</orderedlist>

<para>
Сказав всё это, отметим, что <application>MEncoder</application>
на данный момент не поддерживает вывод с переменным fps или
Vorbis кодирование.
Поэтому Вы можете не рассматривать всё это как ограничения, если
<application>MEncoder</application> &mdash; это единственный
инструмент, который Вы используете для кодирования.
Однако, возможно использовать <application>MEncoder</application>
только для кодирования видео и затем использовать внешние
утилиты для кодирования аудио и мультиплексирования его в 
контейнер другого формата.
</para>
</sect3>


<sect3 id="menc-feat-dvd-mpeg4-muxing-matroska">
<title>Мультиплексирование в контейнер Matroska (Матрёшка)</title>

<para>
Matroska &mdash; это свободный, открытый стандарт формата
контейнера, нацеленный на предоставление большого количества
продвинутых возможностей, которые старые контейнеры (наподобие
AVI) не поддерживают.
Например, Matroska поддерживает аудиосодержимое с переменным
битпотоком (VBR), переменные частоты кадров (VFR), разделы, 
файловые вложения, код обнаружения ошибок (EDC) и современные
A/V кодеки, такие как "Продвинутое Аудио Кодирование" ("Advanced 
Audio Coding", AAC), "Vorbis" или "MPEG-4 AVC" (H.264), также 
не поддерживаемые AVI.
</para>

<para>
Утилиты, необходимые для создания Matroska файлов, сообща
называются <application>mkvtoolnix</application>, и доступны
для большинства Unix платформ, так же как и для Window$.
Поскольку Matroska &mdash; открытый формат, Вы можете найти 
иные утилиты, которые лучше Вам подходят, но поскольку
<application>mkvtoolnix</application> &mdash; наиболее общие
и поддерживаются самой командой разработчиков Matroska, мы
будем обсуждать только их использование.
</para>

<para>
Возможно, самым простым способом начать использовать Matroska
является использование <application>MMG</application>, 
графической оболочки, поставляемой с 
<application>mkvtoolnix</application>. Следуйте
<ulink url="http://www.bunkus.org/videotools/mkvtoolnix/doc/mkvmerge-gui.html">руководству к mkvmerge GUI (mmg)</ulink>.
</para>

<para>
Также Вы можете мультиплексировать аудио и видео файлы используя
командную строку:
<screen>
mkvmerge -o <replaceable>выходной_файл.mkv</replaceable> <replaceable>входное_видео.avi</replaceable> <replaceable>входное_аудио1.mp3</replaceable> <replaceable>входное_аудио2.ac3</replaceable>
</screen>
Это объединит видеофайл <replaceable>входное_видео.avi</replaceable>
и два аудиофайла <replaceable>входное_аудио1.mp3</replaceable>
и <replaceable>входное_аудио2.ac3</replaceable> в Matroska
файл <replaceable>выходной_файл.mkv</replaceable>.
Как было отмечено ранее, Matroska способна реализовать гораздо
большее, например, множественные аудиодорожки (включая тонкую
настройку аудио/видео синхронизации), разделы, субтитры, 
разбиение и т.д..
Пожалуйста, обратитесь к документации на эти приложения для
деталей.
</para>
</sect3>
</sect2>
</sect1>


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


<sect1 id="menc-feat-telecine">
<title>How to deal with telecine and interlacing within NTSC DVDs</title>

<sect2 id="menc-feat-telecine-intro">
<title>Introduction</title>

<formalpara>
<title>What is telecine?</title>
<para>
If you do not understand much of what is written in this document,
read the
<ulink url="http://en.wikipedia.org/wiki/Telecine">Wikipedia entry on telecine</ulink>.
It is an understandable and reasonably comprehensive
description of what telecine is.
</para></formalpara>

<formalpara>
<title>A note about the numbers.</title>
<para>
Many documents, including the guide linked above, refer to the fields
per second value of NTSC video as 59.94 and the corresponding frames
per second values as 29.97 (for telecined and interlaced) and 23.976
(for progressive). For simplicity, some documents even round these
numbers to 60, 30, and 24.
</para></formalpara>

<para>
Strictly speaking, all those numbers are approximations. Black and
white NTSC video was exactly 60 fields per second, but 60000/1001
was later chosen to accomodate color data while remaining compatible
with contemporary black and white televisions. Digital NTSC video
(such as on a DVD) is also 60000/1001 fields per second. From this,
interlaced and telecined video are derived to be 30000/1001 frames
per second; progressive video is 24000/1001 frames per second.
</para>

<para>
Older versions of the <application>MEncoder</application> documentation
and many archived mailing list posts refer to 59.94, 29.97, and 23.976.
All <application>MEncoder</application> documentation has been updated
to use the fractional values, and you should use them too.
</para>

<para>
<option>-ofps 23.976</option> is incorrect.
<option>-ofps 24000/1001</option> should be used instead.
</para>

<formalpara>
<title>How telecine is used.</title>
<para>
All video intended to be displayed on an NTSC
television set must be 60000/1001 fields per second. Made-for-TV movies 4  
and shows are often filmed directly at 60000/1001 fields per second, but
the majority of cinema is filmed at 24 or 24000/1001 frames per
second. When cinematic movie DVDs are mastered, the video is then
converted for television using a process called telecine.
</para></formalpara>

<para>
On a DVD, the video is never actually stored as 60000/1001 fields per
second. For video that was originally 60000/1001, each pair of fields is
combined to form a frame, resulting in 30000/1001 frames per
second. Hardware DVD players then read a flag embedded in the video
stream to determine whether the odd- or even-numbered lines should
form the first field.
</para>

<para>
Usually, 24000/1001 frames per second content stays as it is when
encoded for a DVD, and the DVD player must perform telecining
on-the-fly. Sometimes, however, the video is telecined
<emphasis>before</emphasis> being stored on the DVD; even though it
was originally 24000/1001 frames per second, it becomes 60000/1001 fields per
second. When it is stored on the DVD, pairs of fields are combined to form
30000/1001 frames per second.
</para>

<para>
When looking at individual frames formed from 60000/1001 fields per
second video, telecined or otherwise, interlacing is clearly visible
wherever there is any motion, because one field (say, the
even-numbered lines) represents a moment in time 1/(60000/1001)
seconds later than the other. Playing interlaced video on a computer
looks ugly both because the monitor is higher resolution and because
the video is shown frame-after-frame instead of field-after-field.
</para>

<itemizedlist>
<title>Notes:</title>
<listitem><para>
  This section only applies to NTSC DVDs, and not PAL.
</para></listitem>
<listitem><para>
  The example <application>MEncoder</application> lines throughout the
  document are <emphasis role="bold">not</emphasis> intended for
  actual use. They are simply the bare minimum required to encode the
  pertaining video category. How to make good DVD rips or fine-tune
  <systemitem class="library">libavcodec</systemitem> for maximal
  quality is not within the scope of this document.
</para></listitem>
<listitem><para>
  There are a couple footnotes specific to this guide, linked like this:
  <link linkend="menc-feat-telecine-footnotes">[1]</link>
</para></listitem>
</itemizedlist>
</sect2>

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

<sect2 id="menc-feat-telecine-ident">
<title>How to tell what type of video you have</title>

<sect3 id="menc-feat-telecine-ident-progressive">
<title>Progressive</title>

<para>
Progressive video was originally filmed at 24000/1001 fps, and stored
on the DVD without alteration.
</para>

<para>
When you play a progressive DVD in <application>MPlayer</application>,
<application>MPlayer</application> will print the following line as
soon as the movie begins to play:
<screen>
demux_mpg: 24000/1001 fps progressive NTSC content detected, switching framerate.
</screen>
From this point forward, demux_mpg should never say it finds
"30000/1001 fps NTSC content."
</para>

<para>
When you watch progressive video, you should never see any
interlacing. Beware, however, because sometimes there is a tiny bit
of telecine mixed in where you would not expect. I have encountered TV
show DVDs that have one second of telecine at every scene change, or
at seemingly random places. I once watched a DVD that had a
progressive first half, and the second half was telecined. If you
want to be <emphasis>really</emphasis> thorough, you can scan the
entire movie:
<screen>mplayer dvd://1 -nosound -vo null -benchmark</screen>
Using <option>-benchmark</option> makes
<application>MPlayer</application> play the movie as quickly as it
possibly can; still, depending on your hardware, it can take a
while. Every time demux_mpg reports a framerate change, the line
immediately above will show you the time at which the change
occurred.
</para>

<para>
Sometimes progressive video on DVDs is referred to as
"soft-telecine" because it is intended to
be telecined by the DVD player.
</para>
</sect3>


<sect3 id="menc-feat-telecine-ident-telecined">
<title>Telecined</title>

<para>
Telecined video was originally filmed at 24000/1001, but was telecined
<emphasis>before</emphasis> it was written to the DVD.
</para>

<para>
<application>MPlayer</application> does not (ever) report any
framerate changes when it plays telecined video.
</para>

<para>
Watching a telecined video, you will see interlacing artifacts that
seem to "blink": they repeatedly appear and disappear.
You can look closely at this by
<orderedlist>
<listitem><screen>mplayer dvd://1</screen></listitem>
<listitem><para>
  Seek to a part with motion.
</para></listitem>
<listitem><para>
  Use the <keycap>.</keycap> key to step forward one frame at a time.
</para></listitem>
<listitem><para>
  Look at the pattern of interlaced-looking and progressive-looking
  frames. If the pattern you see is PPPII,PPPII,PPPII,... then the
  video is telecined. If you see some other pattern, then the video
  may have been telecined using some non-standard method;
  <application>MEncoder</application> cannot losslessly convert
  non-standard telecine to progressive. If you do not see any
  pattern at all, then it is most likely interlaced.
</para></listitem>
</orderedlist>
</para>

<para>
Sometimes telecined video on DVDs is referred to as
"hard-telecine". Since hard-telecine is already 60000/1001 fields
per second, the DVD player plays the video without any manipulation.
</para>

<para>
Another way to tell if your source is telecined or not is to play
the source with the <option>-vf pullup</option> and <option>-v</option>
command line options to see how <option>pullup</option> matches frames.
If the source is telecined, you should see on the console a 3:2 pattern
with <systemitem>0+.1.+2</systemitem> and <systemitem>0++1</systemitem>
alternating.
This technique has the advantage that you do not need to watch the
source to identify it, which could be useful if you wish to automate
the encoding procedure, or to carry out said procedure remotely via
a slow connection.
</para>
</sect3>


<sect3 id="menc-feat-telecine-ident-interlaced">
<title>Interlaced</title>

<para>
Interlaced video was originally filmed at 60000/1001 fields per second,
and stored on the DVD as 30000/1001 frames per second. The interlacing effect
(often called "combing") is a result of combining pairs of
fields into frames. Each field is supposed to be 1/(60000/1001) seconds apart,
and when they are displayed simultaneously the difference is apparent.
</para>

<para>
As with telecined video, <application>MPlayer</application> should
not ever report any framerate changes when playing interlaced content.
</para>

<para>
When you view an interlaced video closely by frame-stepping with the
<keycap>.</keycap> key, you will see that every single frame is interlaced.
</para>
</sect3>


<sect3 id="menc-feat-telecine-ident-mixedpt">
<title>Mixed progressive and telecine</title>

<para>
All of a "mixed progressive and telecine" video was originally
24000/1001 frames per second, but some parts of it ended up being telecined.
</para>

<para>
When <application>MPlayer</application> plays this category, it will
(often repeatedly) switch back and forth between "30000/1001 fps NTSC"
and "24000/1001 fps progressive NTSC". Watch the bottom of
<application>MPlayer</application>'s output to see these messages.
</para>

<para>
You should check the "30000/1001 fps NTSC" sections to make sure
they are actually telecine, and not just interlaced.
</para>
</sect3>


<sect3 id="menc-feat-telecine-ident-mixedpi">
<title>Mixed progressive and interlaced</title>

<para>
In "mixed progressive and interlaced" content, progressive
and interlaced video have been spliced together.
</para>

<para>
This category looks just like "mixed progressive and telecine",
until you examine the 30000/1001 fps sections and see that they do not have the
telecine pattern.
</para>
</sect3>
</sect2>

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

<sect2 id="menc-feat-telecine-encode">
<title>How to encode each category</title>

<para>
As I mentioned in the beginning, example <application>MEncoder</application>
lines below are <emphasis role="bold">not</emphasis> meant to actually be used;
they only demonstrate the minimum parameters to properly encode each category.
</para>


<sect3 id="menc-feat-telecine-encode-progressive">
<title>Progressive</title>

<para>
Progressive video requires no special filtering to encode. The only
parameter you need to be sure to use is
<option>-ofps 24000/1001</option>. Otherwise, <application>MEncoder</application>
will try to encode at 30000/1001 fps and will duplicate frames.
</para>

<para>
<screen>mencoder dvd://1 -oac copy -ovc lavc -ofps 24000/1001</screen>
</para>

<para>
It is often the case, however, that a video that looks progressive
actually has very short parts of telecine mixed in. Unless you are
sure, it is safest to treat the video as
<link linkend="menc-feat-telecine-encode-mixedpt">mixed progressive and telecine</link>.
The performance loss is small
<link linkend="menc-feat-telecine-footnotes">[3]</link>.
</para>
</sect3>


<sect3 id="menc-feat-telecine-encode-telecined">
<title>Telecined</title>

<para>
Telecine can be reversed to retrieve the original 24000/1001 content,
using a process called inverse-telecine.
<application>MPlayer</application> contains several filters to
accomplish this; the best filter, <option>pullup</option>, is described
in the <link linkend="menc-feat-telecine-encode-mixedpt">mixed
progressive and telecine</link> section.
</para>
</sect3>


<sect3 id="menc-feat-telecine-encode-interlaced">
<title>Interlaced</title>

<para>
For most practical cases it is not possible to retrieve a complete
progressive video from interlaced content. The only way to do so
without losing half of the vertical resolution is to double the
framerate and try to "guess" what ought to make up the
corresponding lines for each field (this has drawbacks - see method 3).
</para>

<orderedlist>
<listitem><para>
  Encode the video in interlaced form. Normally, interlacing wreaks
  havoc with the encoder's ability to compress well, but
  <systemitem class="library">libavcodec</systemitem> has two
  parameters specifically for dealing with storing interlaced video a
  bit better: <option> ildct</option> and <option>ilme</option>. Also,
  using <option>mbd=2</option> is strongly recommended
  <link linkend="menc-feat-telecine-footnotes">[2] </link> because it
  will encode macroblocks as non-interlaced in places where there is
  no motion. Note that <option>-ofps</option> is NOT needed here.
  <screen>mencoder dvd://1 -oac copy -ovc lavc -lavcopts ildct:ilme:mbd=2</screen>
</para></listitem>
<listitem><para>
  Use a deinterlacing filter before encoding. There are several of
  these filters available to choose from, each with its own advantages
  and disadvantages. Consult <option>mplayer -pphelp</option> and
  <option>mplayer -vf help</option> to see what is available
  (grep for "deint"), read Michael's Niedermayer
  <ulink url="http://guru.multimedia.cx/deinterlacing-filters/">Deinterlacing filters comparison</ulink>,
  and search the
  <ulink url="http://www.mplayerhq.hu/design7/mailing_lists.html">
  MPlayer mailing lists</ulink> to find many discussions about the
  various filters.
  Again, the framerate is not changing, so no
  <option>-ofps</option>. Also, deinterlacing should be done after
  cropping <link linkend="menc-feat-telecine-footnotes">[1]</link> and
  before scaling.
  <screen>mencoder dvd://1 -oac copy -vf yadif -ovc lavc</screen>
</para></listitem>
<listitem><para>
  Unfortunately, this option is buggy with
  <application>MEncoder</application>; it ought to work well with
  <application>MEncoder G2</application>, but that is not here yet. You
  might experience crahes. Anyway, the purpose of <option> -vf
  tfields</option> is to create a full frame out of each field, which
  makes the framerate 60000/1001. The advantage of this approach is that no
  data is ever lost; however, since each frame comes from only one
  field, the missing lines have to be interpolated somehow. There are
  no very good methods of generating the missing data, and so the
  result will look a bit similar to when using some deinterlacing
  filters. Generating the missing lines creates other issues, as well,
  simply because the amount of data doubles. So, higher encoding
  bitrates are required to maintain quality, and more CPU power is
  used for both encoding and decoding. tfields has several different
  options for how to create the missing lines of each frame. If you
  use this method, then Reference the manual, and chose whichever
  option looks best for your material. Note that when using
  <option>tfields</option> you
  <emphasis role="bold">have to</emphasis> specify both
  <option>-fps</option> and <option>-ofps</option> to be twice the
  framerate of your original source.
  <screen>
mencoder dvd://1 -oac copy -vf tfields=2 -ovc lavc \
    -fps 60000/1001 -ofps 60000/1001<!--
  --></screen>
</para></listitem>
<listitem><para>
  If you plan on downscaling dramatically, you can extract and encode
  only one of the two fields. Of course, you will lose half the vertical
  resolution, but if you plan on downscaling to at most 1/2 of the
  original, the loss will not matter much. The result will be a
  progressive 30000/1001 frames per second file. The procedure is to use
  <option>-vf field</option>, then crop
  <link linkend="menc-feat-telecine-footnotes">[1]</link> and scale
  appropriately. Remember that you will have to adjust the scale to
  compensate for the vertical resolution being halved.
  <screen>mencoder dvd://1 -oac copy -vf field=0 -ovc lavc</screen>
</para></listitem>
</orderedlist>
</sect3>


<sect3 id="menc-feat-telecine-encode-mixedpt">
<title>Mixed progressive and telecine</title>

<para>
In order to turn mixed progressive and telecine video into entirely
progressive video, the telecined parts have to be
inverse-telecined. There are three ways to accomplish this,
described below. Note that you should
<emphasis role="bold">always</emphasis> inverse-telecine before any
rescaling; unless you really know what you are doing,
inverse-telecine before cropping, too
<link linkend="menc-feat-telecine-footnotes">[1]</link>.
<option>-ofps 24000/1001</option> is needed here because the output video
will be 24000/1001 frames per second.
</para>

<itemizedlist>
<listitem><para>
  <option>-vf pullup</option> is designed to inverse-telecine
  telecined material while leaving progressive data alone. In order to
  work properly, <option>pullup</option> <emphasis role="bold">must</emphasis>
  be followed by the <option>softskip</option> filter or
  else <application>MEncoder</application> will crash.
  <option>pullup</option> is, however, the cleanest and most
  accurate method available for encoding both telecine and
  "mixed progressive and telecine".
  <screen>
mencoder dvd://1 -oac copy -vf pullup,softskip \
    -ovc lavc -ofps 24000/1001<!--
  --></screen>
</para></listitem>
<listitem><para>
  An older method
  is to, rather than inverse-telecine the telecined parts, telecine
  the non-telecined parts and then inverse-telecine the whole
  video. Sound confusing? softpulldown is a filter that goes through
  a video and makes the entire file telecined. If we follow
  softpulldown with either <option>detc</option> or
  <option>ivtc</option>, the final result will be entirely
  progressive. <option>-ofps 24000/1001</option> is needed.
  <screen>
mencoder dvd://1 -oac copy -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001
  </screen>
</para></listitem>
<listitem><para>
  I have not used <option>-vf filmdint</option> myself, but here is what
  D Richard Felker III has to say:

  <blockquote><para>It is OK, but IMO it tries to deinterlace rather
     than doing inverse telecine too often (much like settop DVD
     players &amp; progressive TVs) which gives ugly flickering and
     other artifacts. If you are going to use it, you at least need to
     spend some time tuning the options and watching the output first
     to make sure it is not messing up.
  </para></blockquote>
</para></listitem>
</itemizedlist>
</sect3>


<sect3 id="menc-feat-telecine-encode-mixedpi">
<title>Mixed progressive and interlaced</title>

<para>
There are two options for dealing with this category, each of
which is a compromise. You should decide based on the
duration/location of each type.
</para>

<itemizedlist>
<listitem>
  <para>
  Treat it as progressive. The interlaced parts will look interlaced,
  and some of the interlaced fields will have to be dropped, resulting
  in a bit of uneven jumpiness. You can use a postprocessing filter if
  you want to, but it may slightly degrade the progressive parts.
  </para>

  <para>
  This option should definitely not be used if you want to eventually
  display the video on an interlaced device (with a TV card, for
  example). If you have interlaced frames in a 24000/1001 frames per
  second video, they will be telecined along with the progressive
  frames. Half of the interlaced "frames" will be displayed for three
  fields' duration (3/(60000/1001) seconds), resulting in a flicking
  "jump back in time" effect that looks quite bad. If you
  even attempt this, you <emphasis role="bold">must</emphasis> use a
  deinterlacing filter like <option>lb</option> or
  <option>l5</option>.
  </para>

  <para>
  It may also be a bad idea for progressive display, too. It will drop
  pairs of consecutive interlaced fields, resulting in a discontinuity
  that can be more visible than with the second method, which shows
  some progressive frames twice. 30000/1001 frames per second interlaced
  video is already a bit choppy because it really should be shown at
  60000/1001 fields per second, so the duplicate frames do not stand out as
  much.
  </para>

  <para>
  Either way, it is best to consider your content and how you intend to
  display it. If your video is 90% progressive and you never intend to
  show it on a TV, you should favor a progressive approach. If it is
  only half progressive, you probably want to encode it as if it is all
  interlaced.
  </para>
</listitem>

<listitem><para>
  Treat it as interlaced. Some frames of the progressive parts will
  need to be duplicated, resulting in uneven jumpiness. Again,
  deinterlacing filters may slightly degrade the progressive parts.
</para></listitem>
</itemizedlist>
</sect3>
</sect2>

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

<sect2 id="menc-feat-telecine-footnotes">
<title>Footnotes</title>

<orderedlist>
<listitem>
  <formalpara>
  <title>About cropping:</title>
  <para>
  Video data on DVDs are stored in a format called YUV 4:2:0. In YUV
  video, luma ("brightness") and chroma ("color")
  are stored separately. Because the human eye is somewhat less
  sensitive to color than it is to brightness, in a YUV 4:2:0 picture
  there is only one chroma pixel for every four luma pixels. In a
  progressive picture, each square of four luma pixels (two on each
  side) has one common chroma pixel. You must crop progressive YUV
  4:2:0 to even resolutions, and use even offsets. For example,
  <option>crop=716:380:2:26</option> is OK but
  <option>crop=716:380:3:26 </option> is not.
  </para>
  </formalpara>

  <para>
  When you are dealing with interlaced YUV 4:2:0, the situation is a
  bit more complicated. Instead of every four luma pixels in the
  <emphasis>frame</emphasis> sharing a chroma pixel, every four luma
  pixels in each <emphasis> field</emphasis> share a chroma
  pixel. When fields are interlaced to form a frame, each scanline is
  one pixel high. Now, instead of all four luma pixels being in a
  square, there are two pixels side-by-side, and the other two pixels
  are side-by-side two scanlines down. The two luma pixels in the
  intermediate scanline are from the other field, and so share a
  different chroma pixel with two luma pixels two scanlines away. All
  this confusion makes it necessary to have vertical crop dimensions
  and offsets be multiples of four. Horizontal can stay even.
  </para>

  <para>
  For telecined video, I recommend that cropping take place after
  inverse telecining. Once the video is progressive you only need to
  crop by even numbers. If you really want to gain the slight speedup
  that cropping first may offer, you must crop vertically by multiples
  of four or else the inverse-telecine filter will not have proper data.
  </para>

  <para>
  For interlaced (not telecined) video, you must always crop
  vertically by multiples of four unless you use <option>-vf
  field</option> before cropping.
  </para>
</listitem>

<listitem><formalpara>
  <title>About encoding parameters and quality:</title>
  <para>
  Just because I recommend <option>mbd=2</option> here does not mean it
  should not be used elsewhere. Along with <option>trell</option>,
  <option>mbd=2</option> is one of the two
   <systemitem class="library">libavcodec</systemitem> options that
  increases quality the most, and you should always use at least those
  two unless the drop in encoding speed is prohibitive (e.g. realtime
  encoding). There are many other options to
  <systemitem class="library">libavcodec</systemitem> that increase
  encoding quality (and decrease encoding speed) but that is beyond
  the scope of this document.
  </para>
</formalpara></listitem>

<listitem><formalpara>
  <title>About the performance of pullup:</title>
  <para>
  It is safe to use <option>pullup</option> (along with <option>softskip
  </option>) on progressive video, and is usually a good idea unless
  the source has been definitively verified to be entirely progressive.
  The performace loss is small for most cases. On a bare-minimum encode,
  <option>pullup</option> causes <application>MEncoder</application> to
  be 50% slower. Adding sound processing and advanced <option>lavcopts
  </option> overshadows that difference, bringing the performance
  decrease of using <option>pullup</option> down to 2%.
  </para>
</formalpara></listitem>
</orderedlist>
</sect2>
</sect1>


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


<sect1 id="menc-feat-enc-libavcodec">
<title>Кодирование семейством кодеков <systemitem class="library">libavcodec</systemitem>
</title>

<para>
<link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>
предоставляет возможность простого кодирования в множество интересных видео и
аудио форматов. Вы можете кодировать следующими кодеками (более или менее
свежий список):
</para>

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

<sect2 id="menc-feat-enc-libavcodec-video-codecs">
<title>Видео кодеки <systemitem class="library">libavcodec</systemitem></title>

<para>
<informaltable frame="all">
<tgroup cols="2">
<thead>
  <row><entry>Название видео кодека</entry><entry>Описание</entry></row>
</thead>
<tbody>
<row>
  <entry>mjpeg</entry>
  <entry>Motion JPEG</entry>
</row>
<row>
  <entry>ljpeg</entry>
  <entry>JPEG без потери качества</entry>
</row>
<row>
  <entry>h261</entry>
  <entry>H.261</entry>
</row>
<row>
  <entry>h263</entry>
  <entry>H.263</entry>
</row>
<row>
  <entry>h263p</entry>
  <entry>H.263+</entry>
</row>
<row>
  <entry>mpeg4</entry>
  <entry>ISO стандарт MPEG-4 (DivX, Xvid совместимый)</entry>
</row>
<row>
  <entry>msmpeg4</entry>
  <entry>вариант пре-стандарта MPEG-4 от MS, v3 (он же DivX3)</entry>
</row>
<row>
  <entry>msmpeg4v2</entry>
  <entry>вариант пре-стандарта MPEG-4 от MS, v2 (используемый в старых ASF
  файлах)</entry>
</row>
<row>
  <entry>wmv1</entry>
  <entry>Windows Media Video, версия 1 (он же WMV7)</entry>
</row>
<row>
  <entry>wmv2</entry>
  <entry>Windows Media Video, версия 2 (он же WMV8)</entry>
</row>
<row>
  <entry>rv10</entry>
  <entry>RealVideo 1.0</entry>
</row>
<row>
  <entry>rv20</entry>
  <entry>RealVideo 2.0</entry>
</row>
<row>
  <entry>mpeg1video</entry>
  <entry>MPEG-1 видео</entry>
</row>
<row>
  <entry>mpeg2video</entry>
  <entry>MPEG-2 видео</entry>
</row>
<row>
  <entry>huffyuv</entry>
  <entry>сжатие без потерь</entry>
</row>
<row>
  <entry>asv1</entry>
  <entry>ASUS Видео v1</entry>
</row>
<row>
  <entry>asv2</entry>
  <entry>ASUS Видео v2</entry>
</row>
<row>
  <entry>ffv1</entry>
  <entry>видео кодек без потерь из FFmpeg</entry>
</row>
<row>
  <entry>svq1</entry>
  <entry>Sorenson видео 1</entry>
</row>
<row>
  <entry>flv</entry>
  <entry>Sorenson H.263 используемый в Flash Видео</entry>
</row>
<row>
  <entry>dvvideo</entry>
  <entry>Sony Digital Video</entry>
</row>
<row>
  <entry>snow</entry>
  <entry>экспериментальный кодек FFmpeg, основанный на вейвлетах</entry>
</row>
</tbody>
</tgroup>
</informaltable>

Первый столбец содержит названия кодеков, которые следует указывать после
<literal>vcodec</literal> опции, например:
<option>-lavcopts vcodec=msmpeg4</option>
</para>

<informalexample><para>
Пример с MJPEG сжатием:
<screen>
mencoder dvd://2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy
</screen>
</para></informalexample>
</sect2>

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

<sect2 id="menc-feat-enc-libavcodec-audio-codecs">
<title>Аудио кодеки <systemitem class="library">libavcodec</systemitem></title>
<para>
<informaltable frame="all">
<tgroup cols="2">
<thead>
<row><entry>Название аудио кодека</entry><entry>Описание</entry></row>
</thead>
<tbody>
<row>
  <entry>mp2</entry>
  <entry>MPEG Layer 2</entry>
</row>
<row>
  <entry>ac3</entry>
  <entry>AC3, он же Dolby Digital</entry>
</row>
<row>
  <entry>adpcm_ima_wav</entry>
  <entry>IMA адаптивный PCM (4 бита на сэмпл, сжатие 4:1)</entry>
</row>
<row>
  <entry>sonic</entry>
  <entry>экспериментальный кодек с сжатием с/без потерь</entry>
</row>
</tbody>
</tgroup>
</informaltable>

Первый столбец содержит названия кодеков, которые следует указывать после
<literal>acodec</literal> опции, например: <option>-lavcopts acodec=ac3</option>
</para>

<informalexample><para>
Пример с AC3 сжатием:
<screen>
mencoder dvd://2 -o title2.avi -oac lavc -lavcopts acodec=ac3 -ovc copy
</screen>
</para></informalexample>

<para>
В отличие от видео кодеков <systemitem class="library">libavcodec</systemitem>,
ее аудио кодеки не очень разумно используют отданные им биты, в силу
неудачной реализации некоторой минимальной психоакустической модели (если она
вообще есть), которая является характерной чертой большинства остальных реализаций кодеков.
Однако заметьте, что все эти аудио кодеки очень быстры и работают прямо из
коробки везде, где <application>MEncoder</application> скомпилирован с
<systemitem class="library">libavcodec</systemitem> (а почти всегда так оно и
есть), и не зависят от внешних библиотек.
</para>
</sect2>

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

<sect2 id="menc-feat-dvd-mpeg4-lavc-encoding-options">
<title>Опции кодирования libavcodec</title>

<para>
В идеале, вы, наверное, хотели бы иметь возможность просто сказать кодировщику
переключиться на "высокое качество" и начать кодирование.
Это было бы замечательно, но, к сожалению, трудно реализуемо, поскольку
различные опции кодирования, в зависимости от исходного материала, дают в результате 
различное качество.
Так происходит потому, что сжатие зависит от визуальных свойств видео.
Например, аниме и живая съемка имеют сильно отличающиеся свойства и,
поэтому, требуют разные опции для получения оптимального результата.
Хорошая новость состоит в том, что некоторые опции, такие как 
<option>mbd=2</option>, <option>trell</option>, и <option>v4mv</option> могут
быть опущены.
Детальное описание основных опций кодирования смотрите ниже.
</para>

<itemizedlist>
<title>Опции для настройки:</title>
<listitem><para>
  <emphasis role="bold">vmax_b_frames</emphasis>: хороши 1 или 2, в зависимости
  от фильма.
  Заметьте, если хотите, чтобы ваш фильм декодировался DivX5, вы должны
  активировать поддержку закрытых GOP, используя опцию <option>cgop</option>
  <systemitem class="library">libavcodec</systemitem>, но также должны деактивировать 
  определение сцен, что не является хорошей идеей, поскольку несколько вредит
  эффективности.
</para></listitem>
<listitem><para>
  <emphasis role="bold">vb_strategy=1</emphasis>: помогает в высокодинамичных
  сценах.
  Для некоторых видео файлов vmax_b_frames может повредить качеству, но vmax_b_frames=2
  вместе с vb_strategy=1 поможет в этом случае.
</para></listitem>
<listitem><para>
  <emphasis role="bold">dia</emphasis>: диапазон поиска движения. Большие
  значения лучше и медленнее.
  Отрицательные значения - это совершенно другая шкала.
  Хорошими значениями являются -1 для быстрого кодирования или 2-4 - для 
  медленного.
</para></listitem>
<listitem><para>
  <emphasis role="bold">predia</emphasis>: предпроход поиска движения.
  Не так важен, как dia. Хорошими являются значения от 1 (по-умолчанию) до 4.
  Требует preme=2, чтобы быть действительно полезным.
</para></listitem>
<listitem><para>
  <emphasis role="bold">cmp, subcmp, precmp</emphasis>: Функция сравнения для
  поиска движения.
  Поэкспериментируйте со значениями 0 (по-умолчанию), 2 (hadamard), 3 (dct), и 6
  (соотношение сигнал-шум).
  0 - самый быстрый и достаточен для precmp.
  В случае cmp и subcmp 2 является хорошим для аниме, а 3 для живой съемки.
  6 может оказаться лучше, а может и нет, но он медленнее.
</para></listitem>
<listitem><para>
  <emphasis role="bold">last_pred</emphasis>: Количество предсказателей
  движения, берущихся из предыдущего кадра.
  1-3 или около того помогут вам ценой небольшой потери в скорости.
  Большие значения медленны и не дают дополнительного улучшения.
</para></listitem>
<listitem><para>
  <emphasis role="bold">cbp, mv0</emphasis>: Контролирует выбор макроблоков.
  Незначительное снижение скорости с небольшим приростом в качестве.
</para></listitem>
<listitem><para>
  <emphasis role="bold">qprd</emphasis>: адаптивное квантование, основанное на
  сложности макроблока.
  Может сделать лучше или хуже в зависимости от видео и других опций.
  Она также может привести к появлению артефактов, если вы не установите vqmax в
  некоторое разумно малое значение
  (хорошо - 6, может быть даже 4); vqmin=1 также может помочь.
</para></listitem>
<listitem><para>
  <emphasis role="bold">qns</emphasis>: очень медленно, особенно в комбинации с qprd.
  Эта опция укажет кодировщику минимизировать шум от артефактов сжатия вместо
  создания закодированного видео, полностью идентичного исходному.
  Не используйте ее, если только не перепробовали настроить все, что было 
  возможно, а результат все таки недостаточно хорош.
</para></listitem>
<listitem><para>
  <emphasis role="bold">vqcomp</emphasis>: Настраивает управление битпотоком.
  Какие значения являются хорошими зависит от фильма.
  Если хотите, можете без опаски оставить значение по-умолчанию.
  Уменьшение vqcomp отдает больше бит в сцены с низкой сложностью, увеличение
  его передает биты в очень сложные сцены (по-умолчанию: 0.5, диапазон: 0-1.
  рекомендуемый диапазон: 0.5-0.7).
</para></listitem>
<listitem><para>
  <emphasis role="bold">vlelim, vcelim</emphasis>: Устанавливает порог
  отбрасывания одиночного коэффициента для яркостной и цветностной плоскостей.
  Они кодируются независимо во всех MPEG-похожих алгоритмах.
  Идея этих опций заключается в использованию некоторой хорошей эвристики для
  определения момента, когда изменения в блоке ниже указанного вами порога, и что его
  стоит кодировать как "блок без изменений". 
  Это сохраняет быти и, возможно, ускоряет кодирование. 
  vlelim=-4 и vcelim=9 выглядят неплохими для живой съемки, но, скорее всего, не
  помогут для аниме; при кодировании анимации вам, возможно, следует оставить
  эту опцию неизменной.
</para></listitem>
<listitem><para>
  <emphasis role="bold">qpel</emphasis>: Четверьтпиксельная оценка движения.
  По-умолчанию, MPEG-4 использует полупиксельную точность для оценки движения,
  следовательно, эта опция вносит дополнительные накладные рахсоды, поскольку
  сохраняет больше информации в закодированном файле.
  Улучшение/ухудшение степени сжатия зависит от фильма, но обычно эта опция не
  очень эффективна для аниме.
  qpel всегда вносит значительный вклад в CPU время декодирования (+25% на
  практике).
</para></listitem>
<listitem><para>
  <emphasis role="bold">psnr</emphasis>: не влияет на сам процесс кодирования,
  но выводит в файл тип/размер/качество каждого кадра, а также итоговый
  PSNR (Peak Signal to Noise Ratio, пиковое отношения сигнала к шуму) в конце
  прцесса.
</para></listitem>
</itemizedlist>

<itemizedlist>
<title>Опции, с которыми играть не стоит:</title>
<listitem><para>
  <emphasis role="bold">vme</emphasis>: Значение по-умолчанию является лучшим.
</para></listitem>
<listitem><para>
  <emphasis role="bold">lumi_mask, dark_mask</emphasis>: Психовизуальное
  адаптивное квантование.
  Не стоит играть с этими опциями, если заботитесь о качестве.
  Разумные значения могут быть эффективными в вашем случае, но имейте в виду,
  что это весьма субъективно.
</para></listitem>
<listitem><para>
  <emphasis role="bold">scplx_mask</emphasis>: Пытается предотвратить появление
  квадратиков, но постобработка делает это лучше.
</para></listitem>
</itemizedlist>
</sect2>

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

<sect2 id="menc-feat-mpeg4-lavc-example-settings">
<title>Примеры настроек кодирования</title>

<para>
Следующие настройки - это примеры различных комбинаций опций кодирования,
которые влияют на соотношение скорость-качество при той же величине целевого
биптотока.
</para>

<para>
Все настройки кодирования проверялись на тестовом видео 720x448 @30000/1001 fps 
с целевым битпотоком 900кбит/сек, на машине AMD-64 3400+ с 2400 МГц и 64 битном режиме.
Для каждой настройки кодирования указаны измеренная скорость кодирования (в
кадрах в секунду) и потеря PSNR (в дБ) по сравнению с настройкой "очень высокое
качество". Поймите, пожалуйста, что в зависимости от вашего материала, типа
машины, прогресса разработки вы можете получить сильно отличающиеся результаты.
</para>

<para>
<informaltable frame="all">
<tgroup cols="4">
<thead>
<row>
  <entry>Описание</entry>
  <entry>Опции кодирования</entry>
  <entry>скорость (в fps)</entry>
  <entry>Относительная потеря PSNR (в дБ)</entry>
</row>
</thead>
<tbody>
<row>
  <entry>Очень высокое качество</entry>
  <entry><option>vcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2</option></entry>
  <entry>6fps</entry>
  <entry>0dB</entry>
</row>
<row>
  <entry>Высокое качество</entry>
  <entry><option>vcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo</option></entry>
  <entry>15fps</entry>
  <entry>-0.5dB</entry>
</row>
<row>
  <entry>Быстрое</entry>
  <entry><option>vcodec=mpeg4:mbd=2:trell:v4mv:turbo</option></entry>
  <entry>42fps</entry>
  <entry>-0.74dB</entry>
</row>
<row>
  <entry>Реального времени</entry>
  <entry><option>vcodec=mpeg4:mbd=2:turbo</option></entry>
  <entry>54fps</entry>
  <entry>-1.21dB</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</sect2>

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

<sect2 id="custommatrices">
<title>Нестандартные inter/intra матрицы</title>

<para>
С этой возможностью
<link linkend="ffmpeg"><systemitem
class="library">libavcodec</systemitem></link>,
вы можете установить нестандартные inter (I-кадры/ключевые) и intra
(P-кадры/предсказанные) матрицы. Это поддерживается многими кодеками:
В <systemitem>mpeg1video</systemitem> и <systemitem>mpeg2video</systemitem>
также заявлена поддержка.
</para>

<para>
Обычное использовании этой опции - установить матрицы, предпочитаемые
спецификациями <ulink url="http://www.kvcd.net/">KVCD</ulink>.
</para>

<para>
<emphasis role="bold">KVCD Матрица Квантования "Notch":</emphasis>
</para>

<para>
Intra:
<screen>
 8  9 12 22 26 27 29 34
 9 10 14 26 27 29 34 37
12 14 18 27 29 34 37 38
22 26 27 31 36 37 38 40
26 27 29 36 39 38 40 48
27 29 34 37 38 40 48 58
29 34 37 38 40 48 58 69
34 37 38 40 48 58 69 79
</screen>

Inter:
<screen>
16 18 20 22 24 26 28 30
18 20 22 24 26 28 30 32
20 22 24 26 28 30 32 34
22 24 26 30 32 32 34 36
24 26 28 32 34 34 36 38
26 28 30 32 34 36 38 40
28 30 32 34 36 38 42 42
30 32 34 36 38 40 42 44
</screen>
</para>

<para>
Использование:
<screen>
mencoder <replaceable>input.avi</replaceable> -o <replaceable>output.avi</replaceable> -oac copy -ovc lavc \
    -lavcopts inter_matrix=...:intra_matrix=...
</screen>
</para>

<para>
<screen>
mencoder <replaceable>input.avi</replaceable> -ovc lavc -lavcopts \
vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,\
12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27,\
29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79\
:inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,\
28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,\
36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o svcd.mpg
</screen>
</para>
</sect2>

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

<sect2 id="menc-feat-dvd-mpeg4-example">
<title>Пример</title>

<para>
Итак, вы только что купили новенькую, блестящую копию фильма "Гарри Поттер и Тайная
Комната" (в широкоэкранном формате, конечно) и хотите сделать рип этого DVD так,
чтобы добавить его к Домашнему кинотеатру на PC. Это DVD первого региона, 
поэтому NTSC. Пример ниже также применим и для PAL, за исключением того, что
надо будет опустить <option>-ofps 24000/1001</option> (поскольку частота кадров
на выходе такая же, как и на входе), и, конечно, границы обрезания будут
другими.
</para>

<para>
После запуска <option>mplayer dvd://1</option> мы следуем процессу, детально
описанному в разделе <link linkend="menc-feat-telecine">Как работать с телесином
и чересстрочностью в NTSC DVD</link>, и выясняем, что это 24000/1001 fps
прогрессивное видео, а значит использовать фильтры обратного телесина,
такие как <option>pullup</option> или <option>filmdint</option> не нужно.
</para>

<para>
Далее, мы хотим определить верные границы обрезания, поэтому используем фильтр 
cropdetect:
<screen>mplayer dvd://1 -vf cropdetect</screen>
Убедитесь, что переместились к полностью заполненному кадру (например,
к светлой сцене), вы должны увидеть в консоли <application>MPlayer</application>:
<screen>crop area: X: 0..719  Y: 57..419  (-vf crop=720:362:0:58)</screen>
Затем снова воспроизводим фильм с этим фильтром для проверки его корректности:
<screen>mplayer dvd://1 -vf crop=720:362:0:58</screen>
И убеждаемся, что все выглядит прекрасно. Далее, проверяем, что ширина и высота
делятся на 16. С шириной все в порядке, а с высотой - нет. 
Поскольку мы не заваливали математику в 7-ом классе, то знаем, что ближайшее
целое, меньшее 362 и кратное 16, равно 352.
</para>

<para>
Мы могли бы просто использовать <option>crop=720:352:0:58</option>, но будет
лучше отрезать понемногу от верха и низа, чтобы центр остался на месте.
Мы уменьшили высоту на 10 пикселов, но не хотим увеличивать смещение по y на 5,
поскольку это нечетное число и отрицательно скажется на качестве.
Вместо этого, мы увеличим y на 4:
<screen>mplayer dvd://1 -vf crop=720:352:0:62</screen>
Другая причина, по которой мы урезаем пикселы сверху и снизу, заключаемся в том,
что мы хотим убедиться, что удалены все наполовину черные пикселы, если они есть.
Если ваше видео подвержено телесину, убедитесь, что фильтр <option>pullup</option> (или
любой другой фильтр обратного телесина, который вы решили использовать)
находится в цепочке до фильтра crop.
Если оно чересстрочное, то перед обрезкой проведите деинтерлейсинг.
(Если решили сохранить чересстрочность видео, убедитесь, что вертикальный сдвиг
обрезания кратен 4.)
</para>

<para>
Если вас действительно заботит потеря этих 10 пикселов, вы можете
вместо этого отмасштабировать фильм, уменьшив размерности до ближайших 
кратных 16 значений.
Цепочка фильтров будет выглядеть примерно так:
<screen>-vf crop=720:362:0:58,scale=720:352</screen>
Подобное уменьшение изображения будет означать потерю небольшого количества
деталей, хотя это, возможно, окажется незаметным. Масштабирование изображения в
сторону увеличения даст худшее качество (если вы не увеличиваете битпоток).
Обрезка же полностью выбросит те пикселы. Это компромисс, идти на который или нет,
придется решать в каждом частном случае. Например, если DVD видео было создано
для телевидения,  вы можете захотеть избежать вертикального масштабирования,
поскольку частота строчной развертки [line sampling] соответствует тому, как содержимое
изначально записывалось.
</para>

<para>
При проверке видим, что наш фильм имеет немного движения и большое количество
деталей, так что выбираем для битпотока значение 2400Кбит/сек.
</para>

<para>
Теперь мы готовы произвести двухпроходное кодирование. Проход первый:
<screen>
mencoder dvd://1 -ofps 24000/1001 -oac copy -o <replaceable>Harry_Potter_2.avi</replaceable> -ovc lavc \
    -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=1 \
    -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2
</screen>
И второй проход с теми же параметрами, за исключением <option>vpass=2</option>:
<screen>
mencoder dvd://1 -ofps 24000/1001 -oac copy -o <replaceable>Harry_Potter_2.avi</replaceable> -ovc lavc \
    -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=2 \
    -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2
</screen>
</para>

<para>
Опции <option>v4mv:mbd=2:trell</option> значительно улучшат качество ценой
времени кодирования. Нет никаких оснований отключать эти
опции, когда главным критерием является качество. Опции 
<option>cmp=3:subcmp=3:mbcmp=3</option> выбирают функцию сравнения, дающую
лучшее качество, чем стандартная. Вы можете поэкспериментировать с этим параметром
(возможные значения смотрите на man странице), поскольку разные функции могут
давать разный прирост в качестве в зависимости от исходного материала.
Например, если вы  замечаете, что <systemitem class="library">libavcodec</systemitem>
производит слишком много блочных артефактов (квадратиков), то можете попытаться
выбрать экспериментальный NSSE в качестве функции сравнения при помощи опциеи <option>*cmp=10</option>.
</para>

<para>
Для этого фильма полученный AVI будет 138 минут длинной и размером около 3Гб.
И, поскольку вы сказали, что размер файла значения не имеет, это вполне
приемлемый результат. Однако, если все-таки хотите получить меньший размер файла, 
можете попробовать уменьшить битпоток. Увеличение битпотока имеет снижающийся эффект, 
поэтому, хотя мы можем ясно видеть улучшение от 1800Кбит/сек до 20000Кбит/сек, оно 
может быть не столь заметно выше 20000Кбит/сек.
</para>

<para>
Так как мы пропустили исходное видео через фильтр удаления шума, то, возможно,
захочется вернуть какую-то его часть во время воспроизведения.
Это, совместно с фильтром постобработки <option>spp</option>, существенно
улучшит воспринимаемое качество и поможет избежать блочных артефактов в видео.
Опцией <option>autoq</option> <application>MPlayer</application>'а вы можете
изменять величину производимой фильтром spp постобработки в зависимости от
доступных ресурсов CPU. Вдобавок, на этом этапе вы можете захотеть применить 
коррекцию гаммы и/или цвета для лучшего соответствия вашему монитору. Например:
<screen>
mplayer <replaceable>Harry_Potter_2.avi</replaceable> -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3
</screen>
</para>
</sect2>
</sect1>


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


<sect1 id="menc-feat-xvid">
<title>Кодирование кодеком <systemitem class="library">Xvid</systemitem></title>

<para>
<systemitem class="library">Xvid</systemitem> - это свободная библиотека для
кодирования MPEG-4 ASP видео потоков.
Перед тем, как начать кодирование, вам потребуется <link linkend="xvid">
настроить <application>MEncoder</application> для его поддержки</link>.
</para>

<para>
Это руководство в основном нацелено на особенности применения тех же методов,
что описаны в руководстве по кодированию с помощью x264.
Поэтому, сначала прочтите, пожалуйста, 
<link linkend="menc-feat-x264-encoding-options-intro">первую часть</link>
того руководства.
</para>

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

<sect2 id="menc-feat-xvid-intro">
<title>Какие опции следует использовать для получения лучших результатов?</title>

<para>
Пожалуйста, начните с просмотра раздела 
<systemitem class="library">Xvid</systemitem> man страницы
<application>MPlayer</application>.
Этот раздел предполагается как дополнение к man странице.
</para>

<para>
Настройки по-умолчанию Xvid уже являются хорошим выбором между скоростью и
качеством, поэтому вы можете без опасений придерживаться их, если следующий
раздел вас озадачивает.
</para>
</sect2>

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

<sect2 id="menc-feat-xvid-encoding-options">
<title>Опции кодирования <systemitem class="library">Xvid</systemitem></title>

<itemizedlist>
<listitem><para>
  <emphasis role="bold">vhq</emphasis>
  Эта опция влияет на алгоритм принятия решений о макроблоке, чем выше значение, тем
  мудрее будут решения.
  Значение по-умолчанию можно без опаски использовать для любого кодирования, в
  то время, как более высокие значения улучшат PSNR, но будут работать значительно
  медленнее.
  Заметьте, пожалуйста, что лучший PSNR не обязательно означает лучше выглядящую
  картинку, но говорит, что она ближе к оригиналу.
  Отключение этой опции заметно ускоряет кодирование; это может быть достойным
  компромиссом, если скорость вам критична.
</para></listitem>
<listitem><para>
  <emphasis role="bold">bvhq</emphasis>
  То же, что и vhq, но для B-кадров.
  Имеет незначительное влияние на скорость и слегка улучшает качество (около
  +0.1дБ).
</para></listitem>
<listitem><para>
  <emphasis role="bold">max_bframes</emphasis>
  Большее число допустимых последовательных B-кадров обычно улучшает
  сжимаемость, хотя оно может также привести к большему количеству блочных
  артефактов (квадратиков).
  Значение по-умолчанию - хороший выбор между сжимаемостью и качеством, но вы
  можете увеличить его до 3, если стеснены величиной битпотока.
  Вы также можете уменьшить это значение до 1 или 0, если печетесь об отличном качестве,
  впрочем в этом случае вы должны убедиться, что целевой битпоток достаточно высок,
  дабы кодировщик не увеличивал значение квантователя, сохраняя нужную величину
  битпотока.
</para></listitem>
<listitem><para>
  <emphasis role="bold">bf_threshold</emphasis>
  Управляет чувствительностью кодировщика к B-кадрам, где большие значения
  приводят к использованию большего количество B-кадров (и наоборот).
  Опция должна использоваться совместно с <option>max_bframes</option>;
  если вы стеснены величиной битпотока, то должны увеличить и 
  <option>max_bframes</option>, и <option>bf_threshold</option>,
  в том время как увеличение <option>max_bframes</option> и уменьшение
  <option>bf_threshold</option> позволят кодировщику использовать больше
  B-кадров в местах, где это <emphasis role="bold">действительно</emphasis>
  необходимо.
  Низкое количество <option>max_bframes</option> и высокое значение 
  <option>bf_threshold</option> - это, возможно, не самое мудрое решение,
  поскольку оно принудит кодировщик размещать B-кадры в местах, которые никак не
  выиграют от этого, тем самым ухудшая визуальное качество.
  Однако, если вам требуется совместимость с аппаратными
  проигрывателями, поддерживающими только старые DivX профили (которые
  поддерживают только 1 последовательный B-кадр), это единственный способ 
  увеличить сжимаемость при помощи B-кадров.
</para></listitem>
<listitem><para>
  <emphasis role="bold">trellis</emphasis>
  Оптимизирует процесс квантования для получения оптимального 
  соотношения между PSNR и битпотоком, что позволяет существенно экономить биты.
  Эти биты впоследствии будут потрачены на другие части видео, что приведет к
  увеличению общего качества.
  Следует всегда оставлять эту опцию включенной, поскольку ее влияние на
  качество огромно. Даже если вы заботитесь о скорости, не отключайте ее до тех
  пор, пока не выставили <option>vhq</option> и остальные более CPU-прожорливые
  опции на минимум.
</para></listitem>
<listitem><para>
  <emphasis role="bold">hq_ac</emphasis>
  Активирует более точный метод оценки стоимости коэффициентов, что
  уменьшает размер файла примерно на 0.15 - 0.19% (соответствует увеличению
  PSNR меньше, чем на 0.01дБ), имея несущественное влияние на скорость.
  Поэтому, рекомендуется всегда держать эту опцию включенной.
</para></listitem>
<listitem><para>
  <emphasis role="bold">cartoon</emphasis>
  Разработана для лучшего кодирования мультфильмов и не влияет на скорость,
  поскольку всего-лишь настраивает эвристики принятия решений о режимах для
  этого типа содержимого.
</para></listitem>
<listitem>
  <para>
  <emphasis role="bold">me_quality</emphasis>
  Это опция для настройки точности оценки движения.
  Чем выше <option>me_quality</option>, тем точнее будет оценка оригинального
  движения и тем лучше получающийся отрывок будет фиксировать оригинальное движение.
  </para>

  <para>
  Настройка по-умолчанию лучше во всех случаях, поэтому не рекомендуется ее
  выключать, если только вы действительно не гонитесь за скоростью, поскольку
  биты, сэкономленные хорошей оценкой движения, могут быть использованы
  где-нибудь еще, увеличивая общее качество.
  Таким образом, не используйте значения ниже 5, да и его - только в крайнем
  случае.
  </para>
</listitem>
<listitem><para>
  <emphasis role="bold">chroma_me</emphasis>
  Улучшает оценку движения, дополнительно принимая во внимание информацию о
  цвете, тогда как одна <option>me_quality</option> использует только яркость.
  Это замедляет кодирование на 5-10%, но несколько улучшает визуальное качество,
  уменьшая эффект блочности и сокращая размер файла примерно на 1.3%.
  Если вас интересует скорость, следует попробовать отключить эту опцию, прежде
  чем решите уменьшать значение <option>me_quality</option>.
</para></listitem>
<listitem><para>
  <emphasis role="bold">chroma_opt</emphasis>
  Эта опция служит для увеличения качества цветного изображения вокруг чисто черных/белых
  границ вместо улучшения сжатия. Она также может помочь против
  эффекта красных ступенек ["red stairs" effect].
</para></listitem>
<listitem><para>
  <emphasis role="bold">lumi_mask</emphasis>
  Пытается отдать меньший битпоток областям изображения, которые 
  человеческий глаз не в состоянии увидеть достаточно хорошо, что
  позволит кодировщику потратить сэкономленные биты на более важные 
  части картинки. Качество закодированного материала, привнесенное этой 
  опцией, сильно зависит от личных предпочтений и от типа и настроек монитора,
  использовавшегося для просмотра (обычно результат выглядит не очень хорошо,
  если он яркий, или является TFT монитором).
</para></listitem>
<listitem>
  <para>
  <emphasis role="bold">qpel</emphasis>
  Увеличивает количество предполагаемых векторов движения, повышая точность
  оценки движения с полупиксельной до четверьтпиксельной.
  Идея состоит в том, чтобы найти лучшие векторы движения, которые взамен
  уменьшат битпоток (тем самым увеличивая качество).
  Однако, векторы движения с четверьтпиксельной точностью требуют большего
  количества дополнительных бит для кодирования, а векторы-кандидаты не всегда
  дают (значительно) лучшие результаты.
  Почти всегда кодек тратит дополнительные биты на повышенную точность
  впустую, а в взамен получает или вообще ничего, или небольшое увеличение качества.
  К сожалению, нет способа предсказать возможные улучшения от <option>qpel</option>, 
  так что вам придется сделать кодирование с ней и без нее, чтобы знать
  наверняка.
  </para>
  
  <para>
  <option>qpel</option> может привести к удвоенному времени кодирования и
  требует, как минимум, на 25% большей мощности при декодировании.
  Она поддерживается не всеми аппаратными проигрывателями.
  </para>
</listitem>
<listitem><para>
  <emphasis role="bold">gmc</emphasis>
  Пытается сэкономить биты в сценах с приближением, используя один вектор
  движения для всего кадра. Это почти всегда увеличивает PSNR, но заметно
  замедляет кодирование (так же как и декодирование).
  Поэтому вас следует использовать ее, только когда вы включили 
  <option>vhq</option> на максимум.
  GMC <systemitem class="library">Xvid</systemitem>'а является более сложным,
  чем у DivX'а, но поддерживается только некоторыми аппаратными проигрывателями.
</para></listitem>
</itemizedlist>
</sect2>

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

<sect2 id="menc-feat-xvid-encoding-profiles">
<title>Профили кодирования</title>

<para>
Xvid поддерживает профили кодирования через опцию <option>profile</option>,
которая используется для накладывания ограничений на значения видео потока Xvid таким
образом, что он будет воспроизводиться на всем, что поддерживает выбранный
профиль.
Ограничения относятся к разрешению, битпотоку и некоторым возможностям MPEG-4.
Следующая таблица показывает, что поддерживает тот или иной профиль.
</para>

<informaltable>
<tgroup cols="16" align="center">
<colspec colnum="1"  colname="col1"/>
<colspec colnum="2"  colname="col2"/>
<colspec colnum="3"  colname="col3"/>
<colspec colnum="4"  colname="col4"/>
<colspec colnum="5"  colname="col5"/>
<colspec colnum="6"  colname="col6"/>
<colspec colnum="7"  colname="col7"/>
<colspec colnum="8"  colname="col8"/>
<colspec colnum="9"  colname="col9"/>
<colspec colnum="10" colname="col10"/>
<colspec colnum="11" colname="col11"/>
<colspec colnum="12" colname="col12"/>
<colspec colnum="13" colname="col13"/>
<colspec colnum="14" colname="col14"/>
<colspec colnum="15" colname="col15"/>
<colspec colnum="16" colname="col16"/>
<colspec colnum="17" colname="col17"/>
<spanspec spanname="spa2-5"   namest="col2" nameend="col5"/>
<spanspec spanname="spa6-11"  namest="col6" nameend="col11"/>
<spanspec spanname="spa12-17" namest="col12" nameend="col17"/>
<tbody>
<row>
  <entry></entry>
  <entry spanname="spa2-5">Простой</entry>
  <entry spanname="spa6-11">Расширенный простой</entry>
  <entry spanname="spa12-17">DivX</entry>
</row>
<row>
  <entry>Название профиля</entry>
  <entry>0</entry>
  <entry>1</entry>
  <entry>2</entry>
  <entry>3</entry>
  <entry>0</entry>
  <entry>1</entry>
  <entry>2</entry>
  <entry>3</entry>
  <entry>4</entry>
  <entry>5</entry>
  <entry>Handheld</entry>
  <entry>Портативный NTSC</entry>
  <entry>Портативный PAL</entry>
  <entry>Домашний кинотеатр NTSC</entry>
  <entry>Домашний кинотеатр PAL</entry>
  <entry>HDTV</entry>
</row>
<row>
  <entry>Ширина [пикселов]</entry>
  <entry>176</entry>
  <entry>176</entry>
  <entry>352</entry>
  <entry>352</entry>
  <entry>176</entry>
  <entry>176</entry>
  <entry>352</entry>
  <entry>352</entry>
  <entry>352</entry>
  <entry>720</entry>
  <entry>176</entry>
  <entry>352</entry>
  <entry>352</entry>
  <entry>720</entry>
  <entry>720</entry>
  <entry>1280</entry>
</row>
<row>
  <entry>Высота [пикселов]</entry>
  <entry>144</entry>
  <entry>144</entry>
  <entry>288</entry>
  <entry>288</entry>
  <entry>144</entry>
  <entry>144</entry>
  <entry>288</entry>
  <entry>288</entry>
  <entry>576</entry>
  <entry>576</entry>
  <entry>144</entry>
  <entry>240</entry>
  <entry>288</entry>
  <entry>480</entry>
  <entry>576</entry>
  <entry>720</entry>
</row>
<row>
  <entry>Частота кадров [fps]</entry>
  <entry>15</entry>
  <entry>15</entry>
  <entry>15</entry>
  <entry>15</entry>
  <entry>30</entry>
  <entry>30</entry>
  <entry>15</entry>
  <entry>30</entry>
  <entry>30</entry>
  <entry>30</entry>
  <entry>15</entry>
  <entry>30</entry>
  <entry>25</entry>
  <entry>30</entry>
  <entry>25</entry>
  <entry>30</entry>
</row>
<row>
  <entry>Максимальный средний битпоток [кбит/сек]</entry>
  <entry>64</entry>
  <entry>64</entry>
  <entry>128</entry>
  <entry>384</entry>
  <entry>128</entry>
  <entry>128</entry>
  <entry>384</entry>
  <entry>768</entry>
  <entry>3000</entry>
  <entry>8000</entry>
  <entry>537.6</entry>
  <entry>4854</entry>
  <entry>4854</entry>
  <entry>4854</entry>
  <entry>4854</entry>
  <entry>9708.4</entry>
</row>
<row>
  <entry>Пиковое значение средней величины битпотока за 3 секунды [кбит/сек]</entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry>800</entry>
  <entry>8000</entry>
  <entry>8000</entry>
  <entry>8000</entry>
  <entry>8000</entry>
  <entry>16000</entry>
</row>
<row>
  <entry>Макс. B-кадров</entry>
  <entry>0</entry>
  <entry>0</entry>
  <entry>0</entry>
  <entry>0</entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry>0</entry>
  <entry>1</entry>
  <entry>1</entry>
  <entry>1</entry>
  <entry>1</entry>
  <entry>2</entry>
</row>
<row>
  <entry>MPEG квантование</entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
</row>
<row>
  <entry>Адаптивное квантование</entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
</row>
<row>
  <entry>Чересстрочное кодирование</entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
</row>
<row>
  <entry>Четвертьпиксельная точность</entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
</row>
<row>
  <entry>Global motion compensation</entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry>X</entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
  <entry></entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2>

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

<sect2 id="menc-feat-xvid-example-settings">
<title>Примеры настроек кодирования</title>

<para>
Последующие настройки - это примеры различных комбинаций опций кодирования,
которые влияют на соотношения скорость-качество при той же величине целевого
битпотока.
</para>

<para>
Все настройки кодирования проверялись на тестовом видео 720x448 @30000/1001 fps 
с целевым битпотоком 900кбит/сек, на машине AMD-64 3400+ с 2400 МГц и 64 битном режиме.
Для каждой настройки кодирования указаны измеренная скорость кодирования (в
кадрах в секунду) и потеря PSNR (в дБ) по сравнению с настройкой "очень высокое
качество". Поймите, пожалуйста, что в зависимости от вашего материала, типа
машины, прогресса разработки вы можете получить сильно отличающиеся результаты.
</para>

<informaltable frame="all">
<tgroup cols="4">
<thead>
<row><entry>Описание</entry><entry>Опции кодирования</entry><entry>скорость 
(в fps)</entry><entry>Относительная потеря PSNR (в дБ)</entry></row>
</thead>
<tbody>
<row>
  <entry>Очень высокое качество</entry>
  <entry><option>chroma_opt:vhq=4:bvhq=1:quant_type=mpeg</option></entry>
  <entry>16fps</entry>
  <entry>0dB</entry>
</row>
<row>
  <entry>Высокое качество</entry>
  <entry><option>vhq=2:bvhq=1:chroma_opt:quant_type=mpeg</option></entry>
  <entry>18fps</entry>
  <entry>-0.1dB</entry>
</row>
<row>
  <entry>Быстрое</entry>
  <entry><option>turbo:vhq=0</option></entry>
  <entry>28fps</entry>
  <entry>-0.69dB</entry>
</row>
<row>
  <entry>Реального времени</entry>
  <entry><option>turbo:nochroma_me:notrellis:max_bframes=0:vhq=0</option></entry>
  <entry>38fps</entry>
  <entry>-1.48dB</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2>
</sect1>


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


<sect1 id="menc-feat-x264">
<title>Кодирование кодеком <systemitem class="library">x264</systemitem></title>
<para>
<systemitem class="library">x264</systemitem> это свободная библиотека для
кодирование H.264/AVC видео потоков.
Перед началом кодирование вы должны <link linkend="codec-x264-encode">
настроить <application>MEncoder</application> для его поддержки</link>.
</para>

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

<sect2 id="menc-feat-x264-encoding-options">
<title>Опции кодирования x264</title>

<para>
Начните, пожалуйста с просмотра раздела 
<systemitem class="library">x264</systemitem> 
man страницы <application>MPlayer</application>'а.
Этот раздел предполагается быть дополнением к странице man.
Здесь вы найдете быстрые подсказки о том, какие опции чаще всего интересуют
большинство людей. Страница man более лаконична, но также более полна и порой
намного лучше преподносит технические детали.
</para>


<sect3 id="menc-feat-x264-encoding-options-intro">
<title>Введение</title>

<para>
Это руководство рассматривает две главные категории опций кодирования:
</para>

<orderedlist>
<listitem><para>
  Опции, в основном влияющие на соотношение скорость-качество.
</para></listitem>
<listitem><para>
  Опции, которые могут быть полезны для удовлетворения различный
  пользовательский предпочтений и специальных требований.
</para></listitem>
</orderedlist>

<para>
В конце концов, только вы можете решать какие опции являются лучшими для ваших
целей. Решение для первого класса опций очень простое:
надо только определить, считаете ли вы, что разница в качестве оправдывает разницу в
скорости.  Для второго класса опций предпочтения могут быть значительно более
субъективными и зависеть от большего числа факторов. 
Имейте в виду, что некоторые из опций категории "пользовательских предпочтений и специальных
требований" могут все же иметь большое влияние на скорость или качество,
но это не основное их предназначение.
Часть опций из "пользовательских предпочтений" могут даже привести к изменениям,
которые выглядят лучше для одних людей и хуже - для других.
</para>

<para>
Перед тем как продолжить, вам придется понять, что это руководство использует
только одну метрику качества: глобальный PSNR.
Краткое описание того, что такое PSNR, смотрите в
<ulink url="http://en.wikipedia.org/wiki/PSNR">статье Википедии о PSNR</ulink>.
Глобальный PSNR - это последнее значение PSNR, выводимое на консоль, когда в
<option>x264encopts</option> включена опция <option>psnr</option>.
Каждый раз, когда вы читаете утверждения о PSNR, за ними скрывается
предположение, что используются одинаковые значения битпотока.
</para>

<para>
Почти все комментарии этого руководства предполагают, что вы используете два
прохода.
Есть две основные причины использовать двухпроходное кодирование при сравнении
опций.
Во-первых, использование двух проходов увеличивает PSNR примерно на 1дБ,
что является очень хорошим значением.
Во-вторых, тестирование опций прямым сравнением качества при однопроходном
кодировании вводит основной сбивающий фактор: зачастую битпоток значительно
меняется при каждом кодировании.
Не всегда можно с легкостью сказать, изменилось ли качество в основном за счет
изменения опций, или оно по большей части отражает случайные изменения
в полученном битпотоке.
</para>
</sect3>


<sect3 id="menc-feat-x264-encoding-options-speedvquality">
<title>Опции, затрагивающие, в основном, скорость и качество</title> 

<itemizedlist>
<listitem>
  <para>
  <emphasis role="bold">subq</emphasis>:
  Из всех опций, позволяющих выбирать между скоростью и качеством, 
  <option>subq</option> и <option>frameref</option> (смотрите ниже), пожалуй,
  самые важные.
  Если вы заинтересованы в тонкой настройке либо скорости, лио качества, 
  эти две  - первое, с чего вам стоит начать.
  С точки зрения скорости, опции <option>frameref</option> и
  <option>subq</option> очень жестко взаимодействуют друг с другом.
  Опыт показывает, что с одним ссылающимся кадром
  <option>subq=5</option> (настройка по-умолчанию) расходует на 35% больше
  времени, чем  <option>ubq=1</option>.
  С 6 ссылающимися кадрами эта величина достигает 60%.
  Эффект <option>subq</option> на PSNR выглядит довольно постоянным, в отличие
  от количества ссылающийся кадров.
  Как правило, <option>subq=5</option> достигает значения глобального PSNR 
  на 0.2-0.5 дБ большего, чем  при <option>subq=1</option>.
  Обычно этого достаточно, чтобы заметить.
  </para>
  
  <para>
  <option>subq=6</option> - это самый медленный режим с лучшим качеством.
  Если сравнивать с <option>subq=5</option>, он обычно дает на 0.1-0.4 дБ
  больший глобальный PSNR ценой потери 25%-100% скорости.
  В отличие от остальных уровней <option>subq</option>, поведение 
  <option>subq=6</option> не так сильно зависит от <option>frameref</option>
  и <option>me</option>.  Вместо этого, эффективность <option>subq=6
  </option> по большей части зависит от количества используемых B-кадров. При
  обычном использовании это означает, что <option>subq=6</option> в сложных,
  высокодинамичных сценах имеет большое влияние как на скорость, так и на
  качество, но в сценах с малым количествах движения она не имеет такого
  эффекта. Имейте в виду, что по-прежнему рекомендуется всегда устанавливать 
  <option>bframes</option> в значение, отличное от нуля (смотрите далее).
  </para>
</listitem>
<listitem>
  <para>
  <emphasis role="bold">frameref</emphasis>:
  <option>frameref</option> по-умолчанию установлена в 1, но это не значит, что
  ее стоит устанавливать в 1.
  Только увеличение <option>frameref</option> до 2 дает прирост PSNR примерно
  на 0.15дБ за счет уменьшения скорости на 5-10%; похоже, что это неплохая цена.
  <option>frameref=3</option> дает примерно 0.25dB PSNR сверх
  <option>frameref=1</option>, что должно быть видимой разницей.
  <option>frameref=3</option> медленнее примерно на 15%, чем
  <option>frameref=1</option>.
  К сожалению, улучшение очень быстро сходит на нет.
  От <option>frameref=6</option> можно ожидать прироста PSNR лишь на 
  0.05-0.1 дБ по сравнению с <option>frameref=3</option> с дополнительной
  потерей 15% скорости.
  Выше <option>frameref=6</option> качество обычно увеличивается очень незначительно 
  (хотя на всем протяжении этой дискуссии вам следует иметь в виду, оно может
  значительно изменяться в зависимости от исходного материала).
  В довольно типичном случае <option>frameref=12</option> улучшит глобальный 
  PSNR всего на 0.02дБ по сравнению с <option>frameref=6</option>, 
  ценой 15%-20% скорости.
  При таких высоких значениях <option>frameref</option>, единственная
  действительно хорошая вешь, о которой может быть сказано, состоит в том, что
  дальнейшее ее увеличение почти никогда не будет <emphasis
  role="bold">вредить</emphasis> PSNR, но увеличение качества будет трудно даже
  измерить, не говоря уже о его заметности.
  </para>
  <note><title>Замечание:</title>
  <para>
  Увеличение <option>frameref</option> до чрезмерно высоких значений 
  <emphasis role="bold">может</emphasis> и
  <emphasis role="bold">обычно наносит</emphasis>
  вред эффективности кодирования, если CABAC отключен.
  С задействованным CABAC (настройка по-умолчанию), возможность установки 
  <option>frameref</option> "слишком высоким" на данный момент выглядит слишком
  далекой, чтобы об этом беспокоиться, а в будущем оптимизации могут вообще
  убрать такую возможность.
  </para></note>
  <para>
  Если вас заботит скорость, разумным компромиссом будет использовать низкие
  значения <option>subq</option> и <option>frameref</option> в первом проходе, а
  <!-- FIXME  is translation correct ? -->
  затем увеличить из во втором: Вы, возможно, потеряете вплоть до 0.1дБ PSNR,
  что может быть достаточно малым значением, чтобы его заметить.
  Однако, различные значения <option>frameref</option> могут 
  иногда повлиять на решение о выборе типа кадра.
  Скорее всего, это довольно редкие крайние случаи, но если вы хотите точно
  уверены, подумайте, содержит ли ваше видео полноэкранные
  <!-- FIXME is translation correct? -->
  периодически вспыхивающие изображения или очень большие паузы, которые могут стать
  причиной принудительной вставки I-кадра.
  Настройте <option>frameref</option> в первом проходе так, чтобы 
  она была достаточно большой, чтобы содержать длительность цикла вспыхивания
  (или паузы).
  Например, если сцены вспыхивает и гаснет в течении двух кадров из трех,
  установите <option>frameref</option> равным 3 или выше.
  Эта проблема, возможно, очень редко появляется для живой съемки, но она иногда
  появляется при записи видео игр.
 </para>
</listitem>
<listitem>
  <para>
  <emphasis role="bold">me</emphasis>:
  Эта опция используется для выбора метода оценки движения.
  Изменение этой опции оказывает прямое влияние на соотношение
  скорость-качество. <option>me=dia</option> лишь на несколько процентов
  быстрее, чем поиск по-умолчанию ценой не больше 0.1дБ глобального PSNR. 
  Значение по-умолчанию (<option>me=hex</option>) разумный выбор между скоростью
  и качеством. <option>me=umh</option> немного, вплоть до 0.1дБ, улучшает
  глобальный PSNR, соответствующее падение скорости зависит меняется и 
  зависит от <option>frameref</option>.  С высокими значениями 
  <option>frameref</option> (например, 12 или около того), <option>me=umh</option>
  примерно на 40% медленнее, чем настройка по-умолчанию <option> me=hex</option>.
  С <option>frameref=3</option>, падение скорости уменьшается до 25%-30%.
  </para>
  <para>
  <option>me=esa</option> использует исчерпывающий поиск, который работает
  слишком медленно для практического применения.
  </para>
</listitem>
<listitem><para>
  <emphasis role="bold">partitions=all</emphasis>:
  Эта опция задействует использование сегментов 8x4, 4x8 и 4x4 в предсказанных
  макроблоках (в дополнение к стандартным).
  Ее включение приведет к довольно постоянной 10%-15% потере в скорости.
  Эта опция практически бесполезна для исходного материала, содержащего только
  небольшое движение, тем не менее, для некоторого высокодинамичного,
  особенно с большим количеством мелких движущихся объектов, следует ожидать
  прироста в 0.1дБ.
</para></listitem>
<listitem>
  <para>
  <emphasis role="bold">bframes</emphasis>:
  Если вы занимались кодированием с другими кодеками, то могли заметить, что
  B-кадры не всегда полезны.
  В H.264 это изменилось: есть новые техники и типы блоков, возможные в B-кадрах.
  Обычно, даже примитивный алгоритм выбора B-кадров может дать значимую
  выгоду для PSNR.
  Интересно заметить, что использование B-кадров обычно отчасти ускоряет второй
  проход, а также может ускорить однопроходное кодирование, если отключено
  адаптивное принятие решения о B-кадрах.
  </para>
  <para>
  С отключенным адаптивным принятием решения о B-кадрах
  (<option>x264encopts</option>'ой <option>nob_adapt</option>),
  оптимальное значение этой опции обычно не превышает 
  <option>bframes=1</option>, иначе пострадают высокодинамичные сцены.
  С включенным адаптивным принятием решения о B-кадрах (поведение по-умолчанию),
  можно безопасно использовать более высокие значения; кодировщик уменьшит
  количество B-кадров в сценах, где они повредят сжатию.
  Кодировщик редко решает использовать больше, чем 3 или 4 B-кадра;
  установка этой опции в любое более высокое значение не будет иметь большого
  эффекта.
  </para>
</listitem>
<listitem>
  <para>
  <emphasis role="bold">b_adapt</emphasis>:
  Заметьте: она включена по-умолчанию.
  </para>
  <para>
  Когда эта опция включена, кодировщик будет использовать разумно 
  быстрый процесс принятия решения для уменьшения количества B-кадров,
  используемых в сценах, которые от этого не сильно выиграют.
  Вы можете использовать <option>b_bias</option> для тонкой настройки того,
  насколько "счастлив" будет кодировщик использованию B-кадров.
  Потеря в скорости при использовании адаптивных B-кадров на данный момент,
  пожалуй, умереннее, но таково же и потенциальное улучшение качества.
  Тем не менее, хуже от этого обычно не становится.
  Заметьте, что эта опция влияет на скорость и решение о типе кадра только в первом
  проходе.
  <option>b_adapt</option> и <option>b_bias</option> не имеют эффекта в
  последующих проходах.
  </para>
</listitem>
<listitem><para>
  <emphasis role="bold">b_pyramid</emphasis>:
  С тем же успехом вы можете включить эту опцию, если используете >=2 B-кадров;
  вы получите небольшое улучшение качества без потери в скорости, как и говорит
  man руководство.
  Имейте в виду, что такое видео не может быть прочитано основанными на
  libavcodec декодерами, созданными ранее, чем примерно 5 Марта 2005. 
</para></listitem>
<listitem>
  <para>
  <emphasis role="bold">weight_b</emphasis>:
  В обычных случаях эта опция не дает большого улучшения.
  Однако, в проявляющихся или затухающих сценах взвешенное предсказание дает
  довольно большую экономию битпотока.
  В MPEG-4 ASP затухание обычно лучше кодируется последовательностью дорогих
  I-кадров; используя взвешенное предсказание в B-кадрах делает возможным
  преобразовать хотя бы часть из них в значительно более маленькие B-Кадры.
  Потери в скорости кодирования минимальны, поскольку не требуется делать
  дополнительные принятия решений.
  <!-- FIXME is translation correct -->
  Вдобавок, вопреки возможным предположениям, взвешенное предсказание не так
  сильно влияет на требования декодера к CPU, все остальное же полностью совпадает.
  </para>
  <para>
  К сожалению, текущий алгоритм адаптивного принятия решений о B-Кадрах имеет
  твердую склонность к избеганию использования B-кадров при затуханиях.
  До тех пор, пока это не изменится, хорошей идеей, возможно, будет добавить 
  <option>nob_adapt</option> к x264encopts, если предполагаете, что затухания
  будут иметь сильный эффект на ваш конкретный видеоклип.
  </para>
</listitem>
</itemizedlist>
</sect3>


<sect3 id="menc-feat-x264-encoding-options-misc-preferences">
<title>Опции, относящиеся к различным предпочтениям</title>
<itemizedlist>
<listitem>
  <para>
  <emphasis role="bold">Двухпроходное кодирование</emphasis>:
  Выше советовалось всегда использовать кдирование в два прохода, но все же
  существуют причины этого не делать. Например, если вы захватываете TV
  трансляцию и кодируете в реальном времени, придется использовать однопроходный
  режим. К тому же один проход очевидно быстрее, чем два; если вы используете
  точно такой же набор опций в обоих случаях, двухпроходной режим медленнее
  вдвое.
  </para>
  <para>
  Все же существует очень хорошие причины использовать кодирование в два
  прохода. Во-первых, управление битпотоком при однопроходного режима не
  является телепатом и часто делает необоснованный выбор, потому что не может
  видеть общую картину. Например, предположим, что вы имеете двухминутное видео,
  состоящее из двух независимых частей. Первая половина - очень динамичная
  сцена, продолжающаяся 60 секунд и требующая сама по себе битпоток примерно
  2500 кбит/сек, чтобы прилично выглядеть. Сразу за ней следует менее
  требовательная 60-секундная сцена, которая хорошо выглядит при 300 кбит/сек.
  Предположим, вы запросили битпоток 14000 кбит/сек; в теории этого достаточно
  для удовлетворения потребностей обеих сцен.
  В этом случае управление битпотоком в однопроходном режиме сделает пару "ошибок".
  Во-первых, оно установит битпоток в 1400 кбит/сек для обеих частей. Первая
  часть может оказаться чрезмерно квантованной, что приведет к
  недопустимому и неоправданно блочному изображению. Вторая часть будет
  недостаточно квантованной; она может выглядеть отлично, но цена битпотока для
  этого качества будет полностью неоправданной.
  Чего намного труднее избежать, так это проблемы перехода между двумя
  сценами. В первых секундах малодинамичной части квантователь будет чрезвычайно
  превышен, потому что управление битпотоком все еще ожидает встретить такие же 
  требования к битпотоку как и в первой части. Этот "ошибочный период" с
  чрезвычайно превышенным квантованием будет выглядеть раздражающе неприятно и
  использовать на самом деле меньше, чем 300 кбит/сек, требуемых ему для того,
  чтобы прилично выглядеть. Существуют способы смягчить эффект от подобных
  подводных камней однопроходного режима, но они могут иметь склонность к
  усилению неверного предсказания битпотока.
  </para>
  <para>
  Многопроходное кодирование может предложить огромные преимущества по сравнению
  с однопроходным. Используя статистику, собранную при первом проходе, 
  кодировщик может оценить, с разумной точностью, "стоимость" (в битах)
  кодирования любого заданного кадра при любом заданном квантователе.
  Это делает возможным намного более рациональное, лучше спланированное
  распределение битов между дорогими (высокодинамичными) и дешевыми
  (малодинамичными) сценами. Смотрите <option>qcomp</option> ниже, чтобы узнать
  некоторые идеи о том, как можно это распределение настроить по вашему вкусу.
  </para>
  <para>
  Более того, два прохода занимают не двойное время по сравнению с одним.
  Вы можете настроить опции первого прохода на более быструю скорость и низкое
  качество. Если хорошо выберете опции, вы получите очень быстрый первый проход.
  Полученное качество во втором проходе будет несколько ниже, потому что
  предсказание размера менее точно, но разница в качестве обычно слишком мала,
  чтобы быть заметной. Попробуйте, например, добавить
  <option>subq=1:frameref=1</option> в <option>x264encopts</option> первого
  прохода. Затем, при втором проходе, используйте более медленные, с лучшим
  качеством опции:
  <option>subq=6:frameref=15:partitions=all:me=umh</option>
  </para>
</listitem>
<listitem><para>
  <emphasis role="bold">Кодирование в три прохода</emphasis>?
  x264 предоставляет возможность делать желаемое количество последовательных
  проходов. Если вы указали <option>pass=1</option> при первом проходе,
  используйте затем <option>pass=3</option> в последующем проходе, этот проход
  будет одновременно читать статистику предыдущего прохода и записывать ее
  собственную. Дополнительный проход, следующий за этим, будет иметь очень
  хорошую основу для осуществления очень точных предсказаний размеров кадров при
  выбранном квантователе. На практике, общее улучшение качества от использования
  этого режима близко к нулю и, вполне возможно, третий проход приведет к
  немного худшему глобальному PSNR, чем у предыдущего прохода.
  При обычном использовании три прохода помогают, если вы при двух проходах
  получаете либо плохое предсказание битпотока, либо плохо выглядящие переходы
  между сценами. Это в точности то, что наверняка будет происходить на очень
  коротких клипах. Существуют также особые случаи, когда три (или более)
  проходом удобны для продвинутых пользователей, но, для краткости, это
  руководство не включает в себя описание этих особых случаев.
</para></listitem>
<listitem><para>
  <emphasis role="bold">qcomp</emphasis>:
  <option>qcomp</option> управляет соотношением количества бит, отданных
  "дорогим" высокодинамичным и "дешевым" малодинамичным кадрам. Один крайний
  случай, <option>qcomp=0</option>, предназначен для истинно постоянного
  битпотока. Обычно это сделает высокодинамичные сцены выглядящими просто
  ужасно, в то время как малодинамичные сцены будут, возможно, выглядеть
  отлично, но при этом будут использовать во много раз больший битпоток, чем им
  необходимо, чтобы выглядеть просто великолепно.
  Другая крайность, <option>qcomp=1</option>, добивается примерно одинакового
  параметра квантования (QP). Постоянный QP не выглядит ужасно, но большинство
  людей думают, что более разумно частично снизить битпоток в сильно
  дорогих сценах (где потеря качества не очень заметна) и перераспределить их в
  сцены, которые легче закодировать с отличным качеством.
  <option>qcomp</option> по-умолчанию установлена в 0.6, что по мнению многих
  людей может быть несколько мало (также часто используется 0.7-0.8).
</para></listitem>
<listitem><para>
  <emphasis role="bold">keyint</emphasis>:
  <option>keyint</option> - единственная возможность выбора между удобством
  перемещения по файлу и эффективностью кодирования. По-умолчанию
  <option>keyint</option> установлена в 250. В материале с 25fps это гарантирует
  возможность перемещения с точностью до 10 секунд. Если вы считаете, что более
  важным и полезным будет перемещение с точностью до 5 секунд, установите
  <option>keyint=125</option>; это немного ухудшит качество/битпоток. Если вы
  заботитесь только о качестве, но не о перемещаемости, вы можете установить
  значение этой опции в более высокое значение (понимая, что улучшение будет
  убывающим, вплоть до исчезающе малого или даже нулевого). Видео поток
  по-прежнему будет иметь точки перемещения, пока в нем есть какие-то изменения
  сцен.
</para></listitem> 
<listitem>
  <para>
  <emphasis role="bold">deblock</emphasis>:
  Этот раздел может быть несколько спорным.
  </para>
  <para>
  H.264 определяет простую процедуру удаления блочности в I-блоках, которая
  использует предустановленные степени обработки и пороговые значения в
  зависимости от QP интересующего блока.
  По-умолчанию, блоки с высоким QP обрабатываются сильнее, а в блоках с низким
  QP удаление блочности вообще не производится.
  Предустановленые степени обработки, определенные стандартом, тщательно подобраны
  и имеют хорошие шансы быть PSNR-оптимальными для любого видео, которое вы
  пытаетесь кодировать.
  Опция <option>deblock</option> позволяет указать смещения предустановленных
  пороговых значений деблокинга.
  </para>
  <para>
  Похоже, многие думают, что хорошей идеей является значительное уменьшение силы
  воздействия фильтра деблокинга (читай, -3).
  Это, однако, почти никогда не является хорошей идеей, и, люди, это делающие, в большинстве
  случаев не совсем хорошо понимают, как работает удаление
  блочности по-умолчанию.
  </para>
  <para>
  Первая и самая важная вещь, которую нужно знать о in-loop фильтре удаления
  блочности состоит в том, что пороговые значения по-умолчанию практически
  всегда PSNR-оптимальны.
  В редких случаях, где они неоптимальны, идеальное смещение будет плюс минус 1.
  Изменение параметров деблокинга на большие значения фактически гарантирует
  ухудшение PSNR.
  Усиление фильтра размажет больше деталей; ослабление - оставит больше квадратиков.
  </para>
  <para>
  По определению плохая идея уменьшать пороги деблокинга, если ваш исходный
  материал в основном имеет небольшую пространственную сложность (т.е. не имеет
  множества деталей или шума).
  In-loop фильтр делает весьма неплохую работу по сокрытию появляющихся
  артефактов. Однако, если исходный материал имеет высокую пространственную
  сложность, артефакты будут практически незаметны.
  Это происходит потому, что ореолы имеют склонность выглядеть как детали или
  шум. Зрительное восприятие легко замечает отсутствие деталей, но ему не так
  легко обратить внимание на неверно изображенный шум.
  Когда речь идет о субъективном качестве, шум и детали в некоторой степени
  взаимозаменяемы.
  Уменьшая силу фильтра удаления блочности, вы скорее всего увеличиваете ошибку,
  добавляя ореолы, но глаз этого не замечает, поскольку он путает артефакты с
  деталями.
  </para>
  <para>
  Однако, это <emphasis role="bold">по-прежнему</emphasis> не оправдывает
  уменьшение силы фильтра. Вы в большинстве случаев можете получить более
  качественный шум при помощи постобработки.
  Если результат кодирования при помощи H.264 выглядит слишком смазанным или
  размытым, попробуйте поиграть с <option>-vf noise</option>, при
  воспроизведении закодированного фильма.
  <option>-vf noise=8a:4a</option> должна скрыть большинство мелких артефактов.
  Ее результат почти наверняка будет выглядеть лучше, чем полученный при помощи
  махинаций с фильтром удаления блочности.
  </para>
</listitem>
</itemizedlist>
</sect3>
</sect2>

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

<sect2 id="menc-feat-x264-example-settings">
<title>Примеры настроек кодирования</title>

<para>
Последующие настройки - это примеры различных комбинаций опций кодирования,
которые влияют на соотношения скорость-качество при той же величине целевого
битпотока.
</para>

<para>
Все настройки кодирования проверялись на тестовом видео 720x448 @30000/1001 fps 
с целевым битпотоком 900кбит/сек, на машине AMD-64 3400+ с 2400 МГц и 64-х битном режиме.
Для каждой настройки кодирования указаны измеренная скорость кодирования (в
кадрах в секунду) и потеря PSNR (в дБ) по сравнению с настройкой "очень высокое
качество". Поймите, пожалуйста, что в зависимости от вашего материала, типа
машины, прогресса разработки вы можете получить сильно отличающиеся результаты.
</para>

<informaltable frame="all">
<tgroup cols="4">
<thead>
<row>
  <entry>Описание</entry>
  <entry>Опции кодирования</entry>
  <entry>скорость (в fps)</entry>
  <entry>Относительная потеря PSNR (в дБ)</entry>
</row>
</thead>
<tbody>
<row>
  <entry>Очень высокое качество</entry>
  <entry><option>subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid:weight_b</option></entry>
  <entry>6fps</entry>
  <entry>0dB</entry>
</row>
<row>
  <entry>Высокое качество</entry>
  <entry><option>subq=5:8x8dct:frameref=2:bframes=3:b_pyramid:weight_b</option></entry>
  <entry>13fps</entry>
  <entry>-0.89dB</entry>
</row>
<row>
  <entry>Быстро</entry>
  <entry><option>subq=4:bframes=2:b_pyramid:weight_b</option></entry>
  <entry>17fps</entry>
  <entry>-1.48dB</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2>
</sect1>


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


<sect1 id="menc-feat-video-for-windows">
<title>
  Кодирование семейством кодеков <systemitem class="library">Video For Windows</systemitem>
</title>

<para>
Video for Windows предоставляет простое кодирование в смысле бинарных видео
кодеков. Вы можете кодировать следующими кодеками (если у вас есть другие,
сообщите нам!)
</para>

<para>
Имейте в виду, что поддержка этой возможности очень экспериментальная и
некоторые кодеки могут не работать корректно. Некоторые кодеки могут работать
только в определенных пространствах цветов, попробуйте 
<option>-vf format=bgr24</option> и <option>-vf format=yuy2</option>,
если кодек выдает ошибку или кодирует неверно.
</para>

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

<sect2 id="menc-feat-enc-vfw-video-codecs">
<title>Поддерживаемые кодеки Video for Windows</title>

<para>
<informaltable frame="all">
<tgroup cols="4">
<thead>
<row>
  <entry>Имя файла с видео кодеком</entry>
  <entry>Описание (FourCC)</entry>
  <entry>md5sum</entry>
  <entry>Комментарий</entry>
</row>
</thead>
<tbody>
<row>
  <entry>aslcodec_vfw.dll</entry>
  <entry>Alparysoft vfw кодек без потерь (ASLC)</entry>
  <entry>608af234a6ea4d90cdc7246af5f3f29a</entry>
  <entry></entry>
</row>
<row>
  <entry>avimszh.dll</entry>
  <entry>AVImszh (MSZH)</entry>
  <entry>253118fe1eedea04a95ed6e5f4c28878</entry>
  <entry>needs <option>-vf format</option></entry>
</row>
<row>
  <entry>avizlib.dll</entry>
  <entry>AVIzlib (ZLIB)</entry>
  <entry>2f1cc76bbcf6d77d40d0e23392fa8eda</entry>
  <entry></entry>
</row>
<row>
  <entry>divx.dll</entry>
  <entry>DivX4Windows-VFW</entry>
  <entry>acf35b2fc004a89c829531555d73f1e6</entry>
  <entry></entry>
</row>
<row>
  <entry>huffyuv.dll</entry>
  <entry>HuffYUV (без потерь) (HFYU)</entry>
  <entry>b74695b50230be4a6ef2c4293a58ac3b</entry>
  <entry></entry>
</row>
<row>
  <entry>iccvid.dll</entry>
  <entry>Cinepak Video (cvid)</entry>
  <entry>cb3b7ee47ba7dbb3d23d34e274895133</entry>
  <entry></entry>
</row>
<row>
  <entry>icmw_32.dll</entry>
  <entry>Motion Wavelets (MWV1)</entry>
  <entry>c9618a8fc73ce219ba918e3e09e227f2</entry>
  <entry></entry>
</row>
<row>
  <entry>jp2avi.dll</entry>
  <entry>ImagePower MJPEG2000 (IPJ2)</entry>
  <entry>d860a11766da0d0ea064672c6833768b</entry>
  <entry><option>-vf flip</option></entry>
</row>
<row>
  <entry>m3jp2k32.dll</entry>
  <entry>Morgan MJPEG2000 (MJ2C)</entry>
  <entry>f3c174edcbaef7cb947d6357cdfde7ff</entry>
  <entry></entry>
</row>
<row>
  <entry>m3jpeg32.dll</entry>
  <entry>Morgan Motion JPEG Codec (MJPG)</entry>
  <entry>1cd13fff5960aa2aae43790242c323b1</entry>
  <entry></entry>
</row>
<row>
  <entry>mpg4c32.dll</entry>
  <entry>Microsoft MPEG-4 v1/v2</entry>
  <entry>b5791ea23f33010d37ab8314681f1256</entry>
  <entry></entry>
</row>
<row>
  <entry>tsccvid.dll</entry>
  <entry>TechSmith Camtasia Screen Codec (TSCC)</entry>
  <entry>8230d8560c41d444f249802a2700d1d5</entry>
  <entry>ошибка shareware в windows</entry>
</row>
<row>
  <entry>vp31vfw.dll</entry>
  <entry>On2 Open Source VP3 Codec (VP31)</entry>
  <entry>845f3590ea489e2e45e876ab107ee7d2</entry>
  <entry></entry>
</row>
<row>
  <entry>vp4vfw.dll</entry>
  <entry>On2 VP4 Personal Codec (VP40)</entry>
  <entry>fc5480a482ccc594c2898dcc4188b58f</entry>
  <entry></entry>
</row>
<row>
  <entry>vp6vfw.dll</entry>
  <entry>On2 VP6 Personal Codec (VP60)</entry>
  <entry>04d635a364243013898fd09484f913fb</entry>
  <entry>крах в Linux</entry>
</row>
<row>
  <entry>vp7vfw.dll</entry>
  <entry>On2 VP7 Personal Codec (VP70)</entry>
  <entry>cb4cc3d4ea7c94a35f1d81c3d750bc8d</entry>
  <entry>неверный FourCC?</entry>
</row>
<row>
  <entry>ViVD2.dll</entry>
  <entry>SoftMedia ViVD V2 VfW кодек (GXVE)</entry>
  <entry>a7b4bf5cac630bb9262c3f80d8a773a1</entry>
  <entry></entry>
</row>
<row>
  <entry>msulvc06.DLL</entry>
  <entry>MSU кодек без потерь (MSUD)</entry>
  <entry>294bf9288f2f127bb86f00bfcc9ccdda</entry>
  <entry>
  Может декодироваться <application>Window Media Player</application>,
  но не <application>MPlayer</application> (пока).
  </entry>
</row>
<row>
  <entry>camcodec.dll</entry>
  <entry>CamStudio lossless video codec (CSCD)</entry>
  <entry>0efe97ce08bb0e40162ab15ef3b45615</entry>
  <entry>sf.net/projects/camstudio</entry>
</row>
</tbody>
</tgroup>
</informaltable>

Первый столбец содержит имена кодеков, которые должны указываться после 
<literal>codec</literal> параметра, 
например: <option>-xvfwopts codec=divx.dll</option>
FourCC код, используемый каждым кодеком, указан в скобках.
</para>
<informalexample>
<para>
Пример сжатия с помощью VP3:
<screen>
mencoder dvd://2 -o <replaceable>title2.avi</replaceable> -ovc vfw -xvfwopts codec=vp31vfw.dll -oac copy
</screen>
</para>
</informalexample>
</sect2>
</sect1>


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


<sect1 id="menc-feat-vcd-dvd">
<title>Using <application>MEncoder</application> 
  to create VCD/SVCD/DVD-compliant files.</title>

<sect2 id="menc-feat-vcd-dvd-constraints">
<title>Format Constraints</title>

<para>
<application>MEncoder</application> is capable of creating VCD, SCVD
and DVD format MPEG files using the
<systemitem class="library">libavcodec</systemitem> library.
These files can then be used in conjunction with
<ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink>
or
<ulink url="http://dvdauthor.sourceforge.net/">dvdauthor</ulink>
to create discs that will play on a standard set-top player.
</para>

<para>
The DVD, SVCD, and VCD formats are subject to heavy constraints.
Only a small selection of encoded picture sizes and aspect ratios are
available.
If your movie does not already meet these requirements, you may have
to scale,crop or add black borders to the picture to make it
compliant.
</para>


<sect3 id="menc-feat-vcd-dvd-constraints-resolution">
<title>Format Constraints</title>

<informaltable frame="all">
<tgroup cols="9">
<thead>
<row>
  <entry>Format</entry>
  <entry>Resolution</entry>
  <entry>V. Codec</entry>
  <entry>V. Bitrate</entry>
  <entry>Sample Rate</entry>
  <entry>A. Codec</entry>
  <entry>A. Bitrate</entry>
  <entry>FPS</entry>
  <entry>Aspect</entry>
</row>
</thead>
<tbody>
<row>
  <entry>NTSC DVD</entry>
  <entry>720x480, 704x480, 352x480, 352x240</entry> 
  <entry>MPEG-2</entry>
  <entry>9800 kbps</entry>
  <entry>48000 Hz</entry>
  <entry>AC3,PCM</entry>
  <entry>1536 kbps (max)</entry>
  <entry>30000/1001, 24000/1001</entry>
  <entry>4:3, 16:9 (only for 720x480)</entry>
</row>
<row>
  <entry>NTSC DVD</entry>
  <entry>352x240<footnote id='fn-rare-resolutions'><para>
  These resolutions are rarely used for DVDs because
  they are fairly low quality.</para></footnote></entry> 
  <entry>MPEG-1</entry>
  <entry>1856 kbps</entry>
  <entry>48000 Hz</entry>
  <entry>AC3,PCM</entry>
  <entry>1536 kbps (max)</entry>
  <entry>30000/1001, 24000/1001</entry>
  <entry>4:3, 16:9</entry>
</row>
<row>
  <entry>NTSC SVCD</entry>
  <entry>480x480</entry>
  <entry>MPEG-2</entry>
  <entry>2600 kbps</entry>
  <entry>44100 Hz</entry>
  <entry>MP2</entry>
  <entry>384 kbps (max)</entry>
  <entry>30000/1001</entry>
  <entry>4:3</entry>
</row>
<row>
  <entry>NTSC VCD</entry>
  <entry>352x240</entry>
  <entry>MPEG-1</entry>
  <entry>1150 kbps</entry>
  <entry>44100 Hz</entry>
  <entry>MP2</entry>
  <entry>224 kbps</entry>
  <entry>24000/1001, 30000/1001</entry>
  <entry>4:3</entry>
</row>
<row>
  <entry>PAL DVD</entry>
  <entry>720x576, 704x576, 352x576, 352x288</entry>
  <entry>MPEG-2</entry>
  <entry>9800 kbps</entry>
  <entry>48000 Hz</entry>
  <entry>MP2,AC3,PCM</entry>
  <entry>1536 kbps (max)</entry>
  <entry>25</entry>
  <entry>4:3, 16:9 (only for 720x576)</entry>
</row>
<row>
   <entry>PAL DVD</entry>
   <entry>352x288<footnoteref linkend='fn-rare-resolutions'/></entry>
   <entry>MPEG-1</entry>
   <entry>1856 kbps</entry>
   <entry>48000 Hz</entry>
   <entry>MP2,AC3,PCM</entry>
   <entry>1536 kbps (max)</entry>
   <entry>25</entry>
   <entry>4:3, 16:9</entry>
</row>
<row>
   <entry>PAL SVCD</entry>
   <entry>480x576</entry>
   <entry>MPEG-2</entry>
   <entry>2600 kbps</entry>
   <entry>44100 Hz</entry>
   <entry>MP2</entry>
   <entry>384 kbps (max)</entry>
   <entry>25</entry>
   <entry>4:3</entry>
</row>
<row>
   <entry>PAL VCD</entry>
   <entry>352x288</entry>
   <entry>MPEG-1</entry>
   <entry>1152 kbps</entry>
   <entry>44100 Hz</entry>
   <entry>MP2</entry>
   <entry>224 kbps</entry>
   <entry>25</entry>
   <entry>4:3</entry>
</row>
</tbody>
</tgroup>
</informaltable>

<para>
If your movie has 2.35:1 aspect (most recent action movies), you will
have to add black borders or crop the movie down to 16:9 to make a DVD
or VCD.
If you add black borders, try to align them at 16-pixel boundaries in
order to minimize the impact on encoding performance.
Thankfully DVD has sufficiently excessive bitrate that you do not have
to worry too much about encoding efficiency, but SVCD and VCD are
highly bitrate-starved and require effort to obtain acceptable quality.
</para>
</sect3>


<sect3 id="menc-feat-vcd-dvd-constraints-gop">
<title>GOP Size Constraints</title>

<para>
DVD, VCD, and SVCD also constrain you to relatively low 
GOP (Group of Pictures) sizes.
For 30 fps material the largest allowed GOP size is 18.
For 25 or 24 fps, the maximum is 15.
The GOP size is set using the <option>keyint</option> option.
</para>
</sect3>


<sect3 id="menc-feat-vcd-dvd-constraints-bitrate">
<title>Bitrate Constraints</title>

<para>
VCD video is required to be CBR at 1152 kbps.
This highly limiting constraint also comes along with an extremly low vbv
buffer size of 327 kilobits.
SVCD allows varying video bitrates up to 2500 kbps, and a somewhat less 
restrictive vbv buffer size of 917 kilobits is allowed.
DVD video bitrates may range anywhere up to 9800 kbps (though typical
bitrates are about half that), and the vbv buffer size is 1835 kilobits.
</para>
</sect3>
</sect2>

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

<sect2 id="menc-feat-vcd-dvd-output">
<title>Output Options</title>

<para>
<application>MEncoder</application> has options to control the output
format.
Using these options we can instruct it to create the correct type of
file.
</para>

<para>
The options for VCD and SVCD are called xvcd and xsvcd, because they
are extended formats.
They are not strictly compliant, mainly because the output does not
contain scan offsets.
If you need to generate an SVCD image, you  should pass the output file
to
<ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink>.
</para>

<para>
VCD:
<screen>-of mpeg -mpegopts format=xvcd</screen>
</para>

<para>
SVCD:
<screen>-of mpeg -mpegopts format=xsvcd</screen>
</para>

<para>
DVD (with timestamps on every frame, if possible):
<screen>-of mpeg -mpegopts format=dvd:tsaf</screen>
</para>

<para>
DVD with NTSC Pullup:
<screen>-of mpeg -mpegopts format=dvd:tsaf:telecine -ofps 24000/1001</screen>
This allows 24000/1001 fps progressive content to be encoded at 30000/1001 
fps whilst maintaing DVD-compliance.
</para>


<sect3 id="menc-feat-vcd-dvd-output-aspect">
<title>Aspect Ratio</title>
<para>
The aspect argument of <option>-lavcopts</option> is used to encode
the aspect ratio of the file.
During playback the aspect ratio is used to restore the video to the
correct size.
</para>

<para>
16:9 or "Widescreen"
<screen>-lavcopts aspect=16/9</screen>
</para>

<para>
4:3 or "Fullscreen"
<screen>-lavcopts aspect=4/3</screen>
</para>

<para>
2.35:1 or "Cinemascope" NTSC
<screen>-vf scale=720:368,expand=720:480 -lavcopts aspect=16/9</screen>
To calculate the correct scaling size, use the expanded NTSC width of
854/2.35 = 368
</para>

<para>
2.35:1 or "Cinemascope" PAL
<screen>-vf scale="720:432,expand=720:576 -lavcopts aspect=16/9</screen>
To calculate the correct scaling size, use the expanded PAL width of
1024/2.35 = 432
</para>
</sect3>


<sect3 id="menc-feat-vcd-dvd-a-v-sync">
<title>Maintaining A/V sync</title>

<para>
In order to maintain audio/video synchronization throughout the encode,
<application>MEncoder</application> has to drop or duplicate frames.
This works rather well when muxing into an AVI file, but is almost
guaranteed to fail to maintain A/V sync with other muxers such as MPEG.
This is why it is necessary to append the
<option>harddup</option> video filter at the end of the filter chain
to avoid this kind of problem.
You can find more technical information about <option>harddup</option>
in the section
<link linkend="menc-feat-dvd-mpeg4-muxing-filter-issues">Improving muxing and A/V sync reliability</link>
or in the manual page.
</para>
</sect3>


<sect3 id="menc-feat-vcd-dvd-output-srate">
<title>Sample Rate Conversion</title>

<para>
If the audio sample rate in the original file is not the same as
required by the target format, sample rate conversion is required.
This is achieved using the <option>-srate</option> option and 
the <option>-af lavcresample</option> audio filter together.
</para>

<para>
DVD:
<screen>-srate 48000 -af lavcresample=48000</screen>
</para>

<para>
VCD and SVCD:
<screen>-srate 44100 -af lavcresample=44100</screen>
</para>
</sect3>
</sect2>

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

<sect2 id="menc-feat-vcd-dvd-lavc">
<title>Using libavcodec for VCD/SVCD/DVD Encoding</title>

<sect3 id="menc-feat-vcd-dvd-lavc-intro">
<title>Introduction</title>

<para>
  <systemitem class="library">libavcodec</systemitem> can be used to
  create VCD/SVCD/DVD compliant video by using the appropriate options.
</para>
</sect3>


<sect3 id="menc-feat-vcd-dvd-lavc-options">
<title>lavcopts</title>

<para>
This is a list of fields in <option>-lavcopts</option> that you may
be required to change in order to make a complaint movie for VCD, SVCD,
or DVD:
</para>

<itemizedlist>
<listitem><para>
  <emphasis role="bold">acodec</emphasis>:
  <option>mp2</option> for VCD, SVCD, or PAL DVD;
  <option>ac3</option> is most commonly used for DVD.
  PCM audio may also be used for DVD, but this is mostly a big waste of
  space.
  Note that MP3 audio is not compliant for any of these formats, but
  players often have no problem playing it anyway.
</para></listitem>
<listitem><para>
  <emphasis role="bold">abitrate</emphasis>:
  224 for VCD; up to 384 for SVCD; up to 1536 for  DVD, but commonly
  used values range from 192 kbps for stereo to 384 kbps for 5.1 channel
  sound.
</para></listitem>
<listitem><para>
  <emphasis role="bold">vcodec</emphasis>:
  <option>mpeg1video</option> for VCD;
  <option>mpeg2video</option> for SVCD;
  <option>mpeg2video</option> is usually used for DVD but you may also use
  <option>mpeg1video</option> for CIF resolutions.
</para></listitem>
<listitem><para>
  <emphasis role="bold">keyint</emphasis>:
  Used to set the GOP size.
  18 for 30fps material, or 15 for 25/24 fps material.
  Commercial producers seem to prefer keyframe intervals of 12.
  It is possible to make this much larger and still retain compatibility 
  with most players.
  A <option>keyint</option> of 25 should never cause any problems.
</para></listitem>
<listitem><para>
  <emphasis role="bold">vrc_buf_size</emphasis>:
  327 for VCD, 917 for SVCD, and 1835 for DVD.
</para></listitem>
<listitem><para>
  <emphasis role="bold">vrc_minrate</emphasis>:
  1152, for VCD. May be left alone for SVCD and DVD.
</para></listitem>
<listitem><para>
  <emphasis role="bold">vrc_maxrate</emphasis>:
  1152 for VCD; 2500 for SVCD; 9800 for DVD.
  For SVCD and DVD, you might wish to use lower values depending on your
  own personal preferences and requirements.
</para></listitem>
<listitem><para>
  <emphasis role="bold">vbitrate</emphasis>:
  1152 for VCD;
  up to 2500 for SVCD;
  up to 9800 for DVD.
  For the latter two formats, vbitrate should be set based on personal
  preference.
  For instance, if you insist on fitting 20 or so hours on a DVD, you
  could use vbitrate=400.
  The resulting video quality would probably be quite bad.
  If you are trying to squeeze out the maximum possible quality on a DVD,
  use vbitrate=9800, but be warned that this could constrain you to less
  than an hour of video on a single-layer DVD.
</para></listitem>
<listitem><para>
  <emphasis role="bold">vtrict</emphasis>:
  <option>vstrict</option>=0 should be used to create DVDs.
  Without this option, <application>MEncoder</application> creates a
  stream that cannot be correctly decoded by some standalone DVD
  players.
</para></listitem>
</itemizedlist>
</sect3>


<sect3 id="menc-feat-vcd-dvd-lavc-examples">
<title>Examples</title>

<para>
  This is a typical minimum set of <option>-lavcopts</option> for
  encoding video:
</para>
<para>
VCD:
<screen>
-lavcopts vcodec=mpeg1video:vrc_buf_size=327:vrc_minrate=1152:\
vrc_maxrate=1152:vbitrate=1152:keyint=15:acodec=mp2
</screen>
</para>

<para>
SVCD:
<screen>
-lavcopts vcodec=mpeg2video:vrc_buf_size=917:vrc_maxrate=2500:vbitrate=1800:\
keyint=15:acodec=mp2
</screen>
</para>

<para>
DVD:
<screen>
-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
keyint=15:vstrict=0:acodec=ac3
</screen>
</para>
</sect3>


<sect3 id="menc-feat-vcd-dvd-lavc-advanced">
<title>Advanced Options</title>

<para>
For higher quality encoding, you may also wish to add quality-enhancing
options to lavcopts, such as <option>trell</option>,
<option>mbd=2</option>, and others.
Note that <option>qpel</option> and <option>v4mv</option>, while often
useful with MPEG-4, are not usable with MPEG-1 or MPEG-2.
Also, if you are trying to make a very high quality DVD encode, it may
be useful to add <option>dc=10</option> to lavcopts.
Doing so may help reduce the appearance of blocks in flat-colored areas.
Putting it all together, this is an example of a set of lavcopts for a
higher quality DVD:
</para>

<para>
<screen>
-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=8000:\
keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:\
vqmin=1:lmin=1:dc=10:vstrict=0
</screen>
</para>
</sect3>
</sect2>

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

<sect2 id="menc-feat-vcd-dvd-audio">
<title>Encoding Audio</title>

<para>
VCD and SVCD support MPEG-1 layer II audio, using one of
<systemitem class="library">toolame</systemitem>,
<systemitem class="library">twolame</systemitem>,
or <systemitem class="library">libavcodec</systemitem>'s MP2 encoder.
The libavcodec MP2 is far from being as good as the other two libraries,
however it should always be available to use.
VCD only supports constant bitrate audio (CBR) whereas SVCD supports
variable bitrate (VBR), too.
Be careful when using VBR because some bad standalone players might not
support it too well.
</para>

<para>
For DVD audio, <systemitem class="library">libavcodec</systemitem>'s
AC3 codec is used.
</para>


<sect3 id="menc-feat-vcd-dvd-audio-toolame">
<title>toolame</title>

<para>
For VCD and SVCD:
<screen>-oac toolame -toolameopts br=224</screen>
</para>
</sect3>


<sect3 id="menc-feat-vcd-dvd-audio-twolame">
<title>twolame</title>

<para>
For VCD and SVCD:
<screen>-oac twolame -twolameopts br=224</screen>
</para>
</sect3>


<sect3 id="menc-feat-vcd-dvd-audio-lavc">
<title>libavcodec</title>

<para>
For DVD with 2 channel sound:
<screen>-oac lavc -lavcopts acodec=ac3:abitrate=192</screen>
</para>

<para>
For DVD with 5.1 channel sound:
<screen>-channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384</screen>
</para>

<para>
For VCD and SVCD:
<screen>-oac lavc -lavcopts acodec=mp2:abitrate=224</screen>
</para>
</sect3>
</sect2>

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

<sect2 id="menc-feat-vcd-dvd-all">
<title>Putting it all Together</title>

<para>
This section shows some complete commands for creating VCD/SVCD/DVD
compliant videos.
</para>


<sect3 id="menc-feat-vcd-dvd-all-pal-dvd">
<title>PAL DVD</title>

<para>
<screen>
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \
  -vf scale=720:576,harddup -srate 48000 -af lavcresample=48000 \
  -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
keyint=15:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 25 \
  -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
</screen>
</para>
</sect3>


<sect3 id="menc-feat-vcd-dvd-all-ntsc-dvd">
<title>NTSC DVD</title>

<para>
<screen>
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \
  -vf scale=720:480,harddup -srate 48000 -af lavcresample=48000 \
  -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 30000/1001 \
  -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
</screen>
</para>
</sect3>


<sect3 id="menc-feat-vcd-dvd-all-pal-ac3-copy">
<title>PAL AVI Containing AC3 Audio to DVD</title>

<para>
If the source already has AC3 audio, use -oac copy instead of re-encoding it.
<screen>
mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \
  -vf scale=720:576,harddup -ofps 25 \
  -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
keyint=15:vstrict=0:aspect=16/9 -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
</screen>
</para>
</sect3>


<sect3 id="menc-feat-vcd-dvd-all-ntsc-ac3-copy">
<title>NTSC AVI Containing AC3 Audio to DVD</title>

<para>
If the source already has AC3 audio, and is NTSC @ 24000/1001 fps:
<screen>
mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf:telecine \
  -vf scale=720:480,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:\
  vrc_maxrate=9800:vbitrate=5000:keyint=15:vstrict=0:aspect=16/9 -ofps 24000/1001 \
  -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
</screen>
</para>
</sect3>


<sect3 id="menc-feat-vcd-dvd-all-pal-svcd">
<title>PAL SVCD</title>

<para>
<screen>
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \
    scale=480:576,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
    vcodec=mpeg2video:mbd=2:keyint=15:vrc_buf_size=917:vrc_minrate=600:\
vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 25 \
    -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
</screen>
</para>
</sect3>


<sect3 id="menc-feat-vcd-dvd-all-ntsc-svcd">
<title>NTSC SVCD</title>

<para>
<screen>
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd  -vf \
    scale=480:480,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
    vcodec=mpeg2video:mbd=2:keyint=18:vrc_buf_size=917:vrc_minrate=600:\
vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 30000/1001 \
    -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
</screen>
</para>
</sect3>


<sect3 id="menc-feat-vcd-dvd-all-pal-vcd">
<title>PAL VCD</title>
<para>
<screen>
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \
    scale=352:288,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
    vcodec=mpeg1video:keyint=15:vrc_buf_size=327:vrc_minrate=1152:\
vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 25 \
    -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
</screen>
</para>
</sect3>


<sect3 id="menc-feat-vcd-dvd-all-ntsc-vcd">
<title>NTSC VCD</title>
<para>
<screen>
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \
    scale=352:240,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
    vcodec=mpeg1video:keyint=18:vrc_buf_size=327:vrc_minrate=1152:\
vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 30000/1001 \
    -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
</screen>
</para>
</sect3>
</sect2>
</sect1>
</chapter>