mirror of https://github.com/mpv-player/mpv
5706 lines
307 KiB
XML
5706 lines
307 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- synced with r26711 -->
|
||
<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>
|
||
Фильмы, состоящие из кадров, называются фильмами с построчной (или прогрессивной)
|
||
развёрткой, а состоящие из независимых полей — фильмами с чересстрочной
|
||
развёрткой или просто видео; однако, последний термин двусмысленный.
|
||
</para>
|
||
|
||
<para>
|
||
Из-за дальнейших усложнений, некоторые фильмы будут смесью
|
||
нескольких, указанных выше.
|
||
</para>
|
||
|
||
<para>
|
||
Наиболее важным различием между всеми этими форматами является
|
||
то, что одни из них основаны на кадрах, а другие — на полях.
|
||
<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, но сохранит лог свойств для каждого кадра.
|
||
Эта информация затем будет использована во время второго прохода
|
||
для принятия интеллектуальных решений о том, какой квантователь
|
||
следует использовать. Во время быстрого движения или сцен с
|
||
высокой детализацией с большой вероятностью будут использованы
|
||
б<emphasis>о</emphasis>льшие квантователи, а во время медленного движения или сцен
|
||
с низкой детализацией — меньшие.
|
||
Обычно количество движения играет существенно более важную роль,
|
||
чем количество деталей.
|
||
</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>
|
||
После того, как Вы сейчас убедились, что два прохода — это путь
|
||
к действию, возникает вопрос о том, какой битпоток использовать?
|
||
Ответ таков, что нет единого ответа. В идеале, Вы хотите выбрать
|
||
битпоток, при котором достигается наилучший баланс между качеством
|
||
и размером файла. Здесь возможны вариации в зависимости от
|
||
исходного видеоматериала.
|
||
</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 role="bold">сильно</emphasis> повредить качество
|
||
несколькими путями.
|
||
</para>
|
||
|
||
<orderedlist>
|
||
<listitem>
|
||
<para>
|
||
MPEG-подобное сжатие очень чувствительно к преобразованиям
|
||
частотных интервалов, в частности, к дискретному косинусному
|
||
преобразованию (DCT), которое аналогично преобразованию Фурье.
|
||
Этот вид сжатия эффективен для представления образов и сглаженных
|
||
переходов, но у него возникают проблемы с острыми краями.
|
||
Для кодирования последних Вам нужно гораздо больше битов, а иначе
|
||
у Вас появится артефакт, известный как ореолы.
|
||
</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 — цветности.
|
||
</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 не точно соответствуют
|
||
формату 16:9 и могут быть как 1.85:1, так и 2.35:1 (кинематографический формат).
|
||
Это означает, что в видео будут чёрные полосы, которые нужно усечь.
|
||
</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 — ширина и высота усечённого видео,
|
||
</para></listitem>
|
||
<listitem><para>
|
||
ARa — коэффициент соотношения сторон изображения, обычно 4/3 или 16/9,
|
||
</para></listitem>
|
||
<listitem><para>
|
||
PRdvd — отношение пикселей 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 AVC кодеки, такие как
|
||
<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 — лишь показательная величина,
|
||
т.к. она зависит от кодируемого содержимого; 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>
|
||
важно для получения хороших результатов кодирования.
|
||
Вся обработка видео выполняется посредством фильтров: усечение,
|
||
масштабирование, подстройка цвета, удаление шума, увеличение
|
||
чёткости, деинтерлейс (преобразование видео из чересстрочной
|
||
развёртки в построчную), телесин, обратный телесин и удаление
|
||
блочной сегментации — и это лишь некоторые из них.
|
||
Вместе с огромным количеством поддерживаемых входных форматов,
|
||
разнообразие фильтров, доступных в <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>
|
||
Однако, есть одна вещь, которую Вы, быть может, захотите сделать —
|
||
это пропустить видео через очень слабый фильтр удаления шумов,
|
||
такой как <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> также позволяет
|
||
многопоточное кодирование, что обычно ускоряет процесс на 94%
|
||
для каждого CPU ядра с уменьшением PSNR от 0.005 дБ до 0.01 дБ при типичных
|
||
настройках.
|
||
</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>
|
||
<emphasis role="bold">Личные предпочтения</emphasis>:
|
||
Здесь всё становится почти неразумным: из-за тех же причин, по
|
||
которым одни придерживаются DivX 3 в течении лет, в то время
|
||
как новые кодеки уже творят чудеса, другие люди предпочитают
|
||
<systemitem class="library">Xvid</systemitem> или
|
||
<systemitem class="library">libavcodec</systemitem> MPEG-4
|
||
использованию <systemitem class="library">x264</systemitem>.
|
||
</para>
|
||
|
||
<para>
|
||
Вам нужно принимать решение самостоятельно; не слушайте советов
|
||
людей, признающих только один кодек.
|
||
Сделайте несколько образцов клипов из искомых источников и
|
||
сравните разные опции кодирования и кодеки, с целью выбора
|
||
того, что Вам наиболее подходит.
|
||
Лучший кодек — это тот, которым Вы сами овладели, и
|
||
который выглядит лучше всего для Ваших глаз на Вашем дисплее
|
||
<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>
|
||
Аудио — это гораздо более простая проблема: если Вы
|
||
беспокоитесь о качестве, просто оставьте всё как есть.
|
||
Даже потоки AC-3 5.1 не более чем 448 Кбит/с и они стоят каждого
|
||
бита. Вы можете соблазниться перекодированием аудио в
|
||
высококачественный Vorbis (он же ogg формат), но лишь то, что
|
||
у Вас сегодня нет A/V приёмника для пропускания AC-3, не означает,
|
||
что у Вас не будет его завтра. Для жизнеспособности Ваших DVD
|
||
рипов в будущем, сохраняйте поток AC-3.
|
||
Вы можете сохранить поток AC-3, копируя его непосредственно в
|
||
видеопоток <link linkend="menc-feat-mpeg4">в процессе кодирования</link>.
|
||
Вы также можете извлечь AC-3 поток с целью мультиплексирования его
|
||
в контейнеры наподобие 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 — это вторая
|
||
аудиодорожка файла).
|
||
</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> не может это сделать
|
||
и если Вы демультиплексируете AC-3 аудио и кодируете его отдельным
|
||
приложением (или создаёте дамп в PCM с помощью
|
||
<application>MPlayer</application>), сшивания останутся
|
||
нескорректированными и единственный испособ их исправить —
|
||
пропускать/дублировать видеокадры в местах сшивки.
|
||
Пока <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> —
|
||
библиотеки из проекта 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 или AC-3.
|
||
</para></listitem>
|
||
</orderedlist>
|
||
|
||
<para>
|
||
Сказав всё это, отметим, что <application>MEncoder</application>
|
||
на данный момент не поддерживает вывод с переменным fps или
|
||
Vorbis кодирование.
|
||
Поэтому Вы можете не рассматривать всё это как ограничения, если
|
||
<application>MEncoder</application> — это единственный
|
||
инструмент, который Вы используете для кодирования.
|
||
Однако, возможно использовать <application>MEncoder</application>
|
||
только для кодирования видео и затем использовать внешние
|
||
утилиты для кодирования аудио и мультиплексирования его в
|
||
контейнер другого формата.
|
||
</para>
|
||
</sect3>
|
||
|
||
|
||
<sect3 id="menc-feat-dvd-mpeg4-muxing-matroska">
|
||
<title>Мультиплексирование в контейнер Matroska (Матрёшка)</title>
|
||
|
||
<para>
|
||
Matroska — это свободный, открытый стандарт формата
|
||
контейнера, нацеленный на предоставление большого количества
|
||
продвинутых возможностей, которые старые контейнеры (наподобие
|
||
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 — открытый формат, Вы можете найти
|
||
иные утилиты, которые лучше Вам подходят, но поскольку
|
||
<application>mkvtoolnix</application> — наиболее общие
|
||
и поддерживаются самой командой разработчиков 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>Как работать с телесином и чересстрочной развёрткой на NTSC DVD</title>
|
||
|
||
<sect2 id="menc-feat-telecine-intro">
|
||
<title>Введение</title>
|
||
<formalpara>
|
||
<title>Что такое телесин?</title>
|
||
<para>
|
||
Если Вы не понимаете многое из того, что здесь написано,
|
||
прочтите
|
||
<ulink url="http://en.wikipedia.org/wiki/Telecine">статью Википедии о телесине</ulink>.
|
||
Это понятное и разумно обширное описание того, что такое
|
||
телесин.
|
||
</para></formalpara>
|
||
|
||
<formalpara>
|
||
<title>Замечание о числах.</title>
|
||
<para>
|
||
Многие документы, включая указанную выше статью, ссылаются
|
||
на количество полей в секунду 59.94 для NTSC видео и
|
||
соответствующие кадровые частоты 29.97 (для подверженного
|
||
телесину и чересстрочного видео) и 23.976 (для построчного).
|
||
Для простоты в ряде статей эти числа даже округляются до 60, 30
|
||
и 24 соответственно.
|
||
</para></formalpara>
|
||
|
||
<para>
|
||
Строго говоря, все эти числа являются аппроксимациями.
|
||
Чёрно-белое NTSC видео было точно с 60 полями в секунду, но
|
||
позже была выбрана частота 60000/1001 для адаптации цветовой
|
||
информации с одновременным сохранением совместимости с чёрно-белым
|
||
телевидением.
|
||
Цифровое NTSC видео (такое как на DVD) также с 60000/1001
|
||
полями в секунду. Отсюда возникла кадровая частота 30000/1001
|
||
кадр/сек для чересстрочного и телесиненного видео; построчное
|
||
видео идёт с 24000/1001 кадр/сек.
|
||
</para>
|
||
|
||
<para>
|
||
Старые версии документации <application>MEncoder</application>
|
||
и много архивных сообщений из списков рассылки ссылаются на
|
||
59.94, 29.97 и 23.976. Вся документация <application>MEncoder</application>
|
||
была обновлена для использования дробных значений, и Вам так же
|
||
следует их использовать.
|
||
</para>
|
||
|
||
<para>
|
||
<option>-ofps 23.976</option> — неправильно.
|
||
Взамен нужно использовать <option>-ofps 24000/1001</option>.
|
||
</para>
|
||
|
||
<formalpara>
|
||
<title>Как используется телесин.</title>
|
||
<para>
|
||
Всё видео, предназначенное для просмотра на NTSC телевидении
|
||
должно быть с 60000/1001 полями в секунду. Фильмы, сделанные
|
||
для показа на TV часто снимаются непосредственно при 60000/1001
|
||
полей в секунду, но большинство кино снимается на 24 или
|
||
24000/1001 кадрах в секунду. В процессе создания DVD с
|
||
кинофильмом, видео преобразуется для телевидения с помощью
|
||
процесса, называемого телесин.
|
||
</para></formalpara>
|
||
|
||
<para>
|
||
В действительности, видео никогда не хранится на DVD с
|
||
60000/1001 полями в секунду. Для видео, оригинально являющегося
|
||
60000/1001, каждая пара полей объединяется для формирования
|
||
кадра, приводя к 30000/1001 кадрам в секунду. Затем аппаратные
|
||
DVD плееры читают флаг, включенный в видеопоток, для определения
|
||
того какие, чётные или нечётные строки должны формировать первый
|
||
кадр.
|
||
</para>
|
||
|
||
<para>
|
||
Обычно, содержимое с частотой кадров 24000/1001 остаётся
|
||
неизменным при кодировании на DVD и DVD плеер должен выполнить
|
||
телесин на лету. Однако, иногда видео подвергается телесину
|
||
<emphasis>до</emphasis> записи на DVD; и хотя оно изначально
|
||
было с 24000/1001 кадр/сек, видео становится с 60000/1001 полями
|
||
в секунду. Когда оно сохраняется на DVD, пары полей объединяются
|
||
для формирования 30000/1001 кадров в секунду.
|
||
</para>
|
||
|
||
<para>
|
||
При рассмотрении отдельных кадров, полученных из 60000/1001
|
||
полей в секунду, телесиненных или наоборот, чересстрочная
|
||
развёртка чётко видна в случае, если есть какое-либо движение,
|
||
поскольку одно поле (скажем, с чётными номерами строк)
|
||
отображает момент времени на 1/(60000/1001) секунды позже, чем
|
||
другое поле. Воспроизведение чересстрочного видео на компьютере
|
||
выглядит скверно по двум причинам: монитор обладает более высоким
|
||
разрешением и видео показывается покадрово, вместо отображения по
|
||
полям.
|
||
</para>
|
||
|
||
<itemizedlist>
|
||
<title>Замечания:</title>
|
||
<listitem><para>
|
||
Этот раздел применим только к NTSC DVD, а не к PAL.
|
||
</para></listitem>
|
||
<listitem><para>
|
||
Примеры командных строк <application>MEncoder</application>
|
||
в данном разделе <emphasis role="bold">не</emphasis>
|
||
предназначены для реального использования. Они просто являются
|
||
минимально необходимым требованием для кодирования
|
||
соответствующей категории видео. То, как сделать хорошие DVD
|
||
рипы или тонко настроить
|
||
<systemitem class="library">libavcodec</systemitem> для
|
||
достижения максимального качества, не входит в рамки данного
|
||
раздела; обратитесь к другим разделам
|
||
<link linkend="encoding-guide">Руководства по кодированию
|
||
с MEncoder</link>.
|
||
</para></listitem>
|
||
<listitem><para>
|
||
Есть несколько сносок, специфичных для данного руководства,
|
||
обозначенных следующим образом:
|
||
<link linkend="menc-feat-telecine-footnotes">[1]</link>
|
||
</para></listitem>
|
||
</itemizedlist>
|
||
</sect2>
|
||
|
||
<sect2 id="menc-feat-telecine-ident">
|
||
<title>Как распознать тип Вашего видео</title>
|
||
|
||
<sect3 id="menc-feat-telecine-ident-progressive">
|
||
<title>Построчная развёртка</title>
|
||
<para>
|
||
Видео с построчной развёрткой изначально записывается на
|
||
24000/1001 fps и сохраняется на DVD без чередования.
|
||
</para>
|
||
|
||
<para>
|
||
При воспроизведении DVD с построчной развёрткой в
|
||
<application>MPlayer</application>, <application>MPlayer</application>
|
||
выведет следующую строку при начале воспроизведения фильма:
|
||
|
||
<screen>demux_mpg: обнаружено 24000/1001 кадра/сек NTSC содержимое с построчной развёрткой,
|
||
переключаю частоту кадров.</screen>
|
||
|
||
Начиная с этого момента, demux_mpg никогда не должен
|
||
сообщать о том, что найдено
|
||
"30000/1001 кадров/сек NTSC содержимое".
|
||
</para>
|
||
|
||
<para>
|
||
При просмотре видео с построчной развёрткой Вы не должны никогда
|
||
наблюдать чересстрочность. Однако, будьте осторожны, поскольку
|
||
иногда есть небольшая примесь телесина там, где Вы этого не
|
||
ожидаете. Мной наблюдались DVD с TV-шоу, у которых была одна
|
||
секунда телесина при каждой смене сцен или в случайных на вид
|
||
местах. Однажды я видел DVD, у которого одна половина была с
|
||
построчной развёрткой, а вторая — телесиненной. Если Вы
|
||
желаете быть <emphasis>действительно</emphasis> уверенными,
|
||
Вы можете просканировать весь фильм:
|
||
|
||
<screen>mplayer dvd://1 -nosound -vo null -benchmark</screen>
|
||
|
||
Использование <option>-benchmark</option> позволяет
|
||
<application>MPlayer</application> воспроизводить фильм столь
|
||
быстро, сколь это возможно; тем не менее, в зависимости от
|
||
Вашего железа, это может занять некоторое время. Всякий раз,
|
||
когда demux_mpg будет сообщать об изменении частоты кадров,
|
||
строка прямо над сообщением покажет Вам время, при котором
|
||
произошло изменение.
|
||
</para>
|
||
|
||
<para>
|
||
Иногда видео на DVD с построчной развёрткой называют
|
||
"мягким телесином", поскольку предполагается, что
|
||
телесин будет выполнен DVD плеером.
|
||
</para>
|
||
</sect3>
|
||
|
||
<sect3 id="menc-feat-telecine-ident-telecined">
|
||
<title>Телесин</title>
|
||
<para>
|
||
Телесиненное видео изначально снимается на 24000/1001 кадр/сек,
|
||
но подвергается телесину <emphasis>до</emphasis> записи на DVD.
|
||
</para>
|
||
|
||
<para>
|
||
<application>MPlayer</application> не (всегда) сообщает об
|
||
изменении частоты кадров при воспроизведении телесиненного
|
||
видео.
|
||
</para>
|
||
|
||
<para>
|
||
При просмотре телесиненного видео, Вы будете видеть "мерцающие"
|
||
артефакты чересстрочной развёртки: они будут многократно
|
||
повторяться и исчезать.
|
||
Вы можете детально это рассмотреть следующим образом:
|
||
<orderedlist>
|
||
<listitem>
|
||
<screen>mplayer dvd://1</screen>
|
||
</listitem>
|
||
<listitem><para>
|
||
Переместитесь в часть фильма с движением.
|
||
</para></listitem>
|
||
<listitem><para>
|
||
Используйте клавишу <keycap>.</keycap> для покадровой перемотки
|
||
вперёд.
|
||
</para></listitem>
|
||
<listitem><para>
|
||
Наблюдайте за последовательностью кадров с чересстрочной и
|
||
построчной развёрткой. Если Вы видите следующую структуру:
|
||
ЧЧЧПП,ЧЧЧПП,ЧЧЧПП,... (где Ч — чересстрочные, а П —
|
||
построчные кадры), значит видео телесиненное. Если Вы
|
||
наблюдаете иную структуру, видео может быть телесиненным,
|
||
используя какой-либо нестандартный метод;
|
||
<application>MEncoder</application> не может преобразовать
|
||
без потерь нестандартный телесин в построчную развёртку.
|
||
Если Вы не видите вообще никакой структуры, значит наиболее
|
||
вероятно, что видео с чересстрочной развёрткой.
|
||
</para></listitem>
|
||
</orderedlist>
|
||
</para>
|
||
|
||
<para>
|
||
Иногда подверженное телесину видео на DVD называют "жестким телесином".
|
||
Поскольку жесткий телесин уже имеет 60000/1001 полей в секунду, DVD
|
||
проигрыватель, воспроизводя его, не делает никаких преобразований.
|
||
</para>
|
||
|
||
<para>
|
||
Другой способ выяснить, был Ваш источник подвержен телесину или нет, заключается
|
||
в воспроизведении исходного материала с опциями командной строки
|
||
<option>-vf pullup</option> и <option>-v</option>, чтобы увидеть, как
|
||
<option>pullup</option> сопоставляет кадры.
|
||
Если источник был телесиненным, Вы должны увидеть в консоли 3:2 структуру с
|
||
чередующимися <systemitem>0+.1.+2</systemitem> и <systemitem>0++1</systemitem>.
|
||
Преимущество этой техники состоит в том, что не требуется просматривать исходный
|
||
материал для его идентификации, это может быть полезно для автоматизации
|
||
процедуры кодирования или выполнения вышеуказанной процедуры удаленно через
|
||
медленное соединение.
|
||
</para>
|
||
</sect3>
|
||
|
||
|
||
<sect3 id="menc-feat-telecine-ident-interlaced">
|
||
<title>Чересстрочная развертка</title>
|
||
|
||
<para>
|
||
Чересстрочное видео изначально снималось на 60000/1001 полями в секунду,
|
||
и сохранялось на DVD с 30000/1001 кадрами в секунду. Эффект чересстрочности
|
||
(часто называемый "гребёнкой") — результат объединения пары полей в кадры.
|
||
Поля сдвинуты друг относительно друга на 1/(60000/1001) секунды,
|
||
и, когда отображаются одновременно, разница заметна.
|
||
</para>
|
||
|
||
<para>
|
||
Как и с подверженным телесину видео, <application>MPlayer</application> не должен
|
||
сообщать о каких-либо изменениях частоты кадров при воспроизведении
|
||
чересстрочного содержимого.
|
||
</para>
|
||
|
||
<para>
|
||
Внимательно, кадр за кадром (при помощи клавиши <keycap>.</keycap>) рассматривая
|
||
чересстрочное видео, Вы увидите, что каждый отдельный кадр — чересстрочный.
|
||
</para>
|
||
</sect3>
|
||
|
||
|
||
<sect3 id="menc-feat-telecine-ident-mixedpt">
|
||
<title>Смешанные построчная развертка и телесин</title>
|
||
|
||
<para>
|
||
Все видео со "смешанными построчной разверткой и телесином" изначально было с
|
||
24000/1001 кадрами в секунду, но некоторые его части оказались подвержены
|
||
телесину.
|
||
</para>
|
||
|
||
<para>
|
||
Когда <application>MPlayer</application> воспроизводит эту категорию, он будет
|
||
(как правило, периодически) переключаться между "30000/1001 кадров/сек NTSC
|
||
содержимым" и "24000/1001 кадра/сек NTSC содержимым с построчной развёрткой".
|
||
Смотрите конец вывода <application>MPlayer</application>, чтобы увидеть
|
||
эти сообщения.
|
||
</para>
|
||
|
||
<para>
|
||
Вам следует проверить разделы с "30000/1001 кадров/сек NTSC содержимым",
|
||
чтобы убедиться, что видео действительно телесиненное, а не просто
|
||
чересстрочное.
|
||
</para>
|
||
</sect3>
|
||
|
||
|
||
<sect3 id="menc-feat-telecine-ident-mixedpi">
|
||
<title>Смешанные построчная и чересстрочная развертки</title>
|
||
|
||
<para>
|
||
В содержимом со "смешанными построчной и чересстрочной развертками",
|
||
построчное и чересстрочное видео переплетаются друг с другом.
|
||
</para>
|
||
|
||
<para>
|
||
Эта категория выглядит также, как и "смешанные построчная развертка и телесин",
|
||
до тех пор, пока не проверите разделы 30000/1001 кадр/сек и не увидите,
|
||
что структура телесина отсутствует.
|
||
</para>
|
||
</sect3>
|
||
</sect2>
|
||
|
||
<!-- ********** -->
|
||
|
||
<sect2 id="menc-feat-telecine-encode">
|
||
<title>Как кодировать каждую категорию</title>
|
||
|
||
<para>
|
||
Как уже было сказано выше, последующие примеры командных строк
|
||
<application>MEncoder</application> <emphasis role="bold">не</emphasis> означают,
|
||
что надо использовать именно их; они всего лишь примеры минимального набора параметров
|
||
для правильного кодирования каждой категории.
|
||
</para>
|
||
|
||
|
||
<sect3 id="menc-feat-telecine-encode-progressive">
|
||
<title>Построчная развертка</title>
|
||
|
||
<para>
|
||
Видео с построчной разверткой не требует специальной обработки для кодирования.
|
||
Единственный нужный Вам для уверенности параметр — это
|
||
<option>-ofps 24000/1001</option>.
|
||
В противном случае <application>MEncoder</application> будет пытаться кодировать
|
||
с 30000/1001 кадрами в секунду и создаст дублирующиеся кадры.
|
||
</para>
|
||
|
||
<para>
|
||
<screen>mencoder dvd://1 -oac copy -ovc lavc -ofps 24000/1001</screen>
|
||
</para>
|
||
|
||
<para>
|
||
Частый случай, однако, когда видео, выглядящее построчным, на самом деле
|
||
содержит очень короткие подверженные телесину части. Если Вы не уверены,
|
||
безопаснее будет считать его как видео со
|
||
<link linkend="menc-feat-telecine-encode-mixedpt">смешанными построчной
|
||
разверткой телесином</link>.
|
||
Потеря скорости невелика<link linkend="menc-feat-telecine-footnotes">[3]</link>.
|
||
</para>
|
||
</sect3>
|
||
|
||
|
||
<sect3 id="menc-feat-telecine-encode-telecined">
|
||
<title>Телесин</title>
|
||
|
||
<para>
|
||
Телесин может быть обращён для получения оригинального 24000/1001 содержимого
|
||
при помощи процесса, называемого обратный телесин.
|
||
<application>MPlayer</application> содержит несколько фильтров для выполнения
|
||
этого; лучший из них, <option>pullup</option> описан в разделе
|
||
<link linkend="menc-feat-telecine-encode-mixedpt">смешанные построчная развертка
|
||
и телесин</link>.
|
||
</para>
|
||
</sect3>
|
||
|
||
|
||
<sect3 id="menc-feat-telecine-encode-interlaced">
|
||
<title>Чересстрочная развертка</title>
|
||
|
||
<para>
|
||
На практике в большинстве случаев невозможно получить полностью построчное
|
||
видео из чересстрочного содержимого.
|
||
Единственный способ сделать это без потери половины вертикального разрешения
|
||
- это удвоить частоту кадров и попытаться "угадать", что должно составить
|
||
соответствующие линии каждого поля (этот способ имеет недостатки, смотрите метод
|
||
3).
|
||
</para>
|
||
|
||
<orderedlist>
|
||
<listitem><para>
|
||
Кодируйте видео в чересстрочной форме. Обычно это наносит вред способности
|
||
кодировщика хорошо сжимать, но <systemitem class="library">libavcodec</systemitem>
|
||
имеет два параметра специально для чуть лучшего сохранения чересстрочного
|
||
видео: <option>ildct</option> и <option>ilme</option>. К тому же, настоятельно
|
||
рекомендуется использовать
|
||
<option>mbd=2</option><link linkend="menc-feat-telecine-footnotes">[2]</link>,
|
||
потому что при этом макроблоки в местах без движения будут кодированы как
|
||
нечересстрочные. Имейте в виду, что <option>-ofps</option> здесь НЕ нужна.
|
||
<screen>mencoder dvd://1 -oac copy -ovc lavc -lavcopts ildct:ilme:mbd=2</screen>
|
||
</para></listitem>
|
||
<listitem><para>
|
||
Используйте фильтр деинтерлейсинга перед кодированием. Существует несколько
|
||
таких фильтров на выбор, каждый имеет свои преимущества и недостатки.
|
||
Обратитесь к <option>mplayer -pphelp</option> и <option>mplayer -vf help</option>
|
||
для определения доступных (grep по "deint"), прочтите
|
||
<ulink url="http://guru.multimedia.cx/deinterlacing-filters/">Сравнение
|
||
фильтров деинтерлейсинга</ulink> Майкла Нидермайера (Michael Niedermayer),
|
||
и поищите в <ulink url="http://www.mplayerhq.hu/design7/mailing_lists.html">
|
||
списках рассылки MPlayer</ulink>, чтобы найти множество обсуждений различных
|
||
фильтров.
|
||
И опять, частота кадров не меняется, поэтому никаких <option>-ofps</option>.
|
||
к тому же деинтерлейсинг следует производить после обрезания
|
||
<link linkend="menc-feat-telecine-footnotes">[1]</link> и до масштабирования.
|
||
<screen>mencoder dvd://1 -oac copy -vf yadif -ovc lavc</screen>
|
||
</para></listitem>
|
||
<listitem><para>
|
||
К сожалению, эта опция сбоит с <application>MEncoder</application>; она должна
|
||
хорошо работать с <application>MEncoder G2</application>, но его пока нет. Вы
|
||
можете столкнуться с крахами. Как бы то ни было, назначение опции
|
||
<option> -vf tfields</option> — создать полный кадр из каждого поля, что
|
||
делает частоту кадров равной 60000/1001. Преимущество этого подхода в том, что
|
||
никакие данные не теряются; однако, т.к. каждый кадр получается только из одного
|
||
поля, недостающие строки должны как-то интерполироваться.
|
||
|
||
Не существует очень хороших методов
|
||
генерации недостающих данных, поэтому результат будет выглядеть несколько похожим
|
||
на применение некоторых фильтров деинтерлейсинга. Генерация недостающих строк также создает
|
||
другие проблемы, просто потому что количество данных удваивается.
|
||
Таким образом, для сохранения качества требуются более высокие значения
|
||
битпотока, и больше ресурсов процессора используется как для
|
||
кодирования, так и для декодирования. <option>tfields</option> имеет
|
||
несколько различных опций, определяющих способ создания недостающих строк
|
||
каждого кадра. Если выбрали этот способ, обратитесь к руководству и выберите
|
||
ту опцию, которая лучше подходит для Вашего материала. Имейте в виду, что при
|
||
использовании <option>tfields</option> Вы
|
||
<emphasis role="bold">должны</emphasis> указать как <option>-fps</option>, так
|
||
и <option>-ofps</option>, установив им значение, равное удвоенной частоте
|
||
исходного материала.
|
||
<screen>
|
||
mencoder dvd://1 -oac copy -vf tfields=2 -ovc lavc \
|
||
-fps 60000/1001 -ofps 60000/1001<!--
|
||
--></screen>
|
||
</para></listitem>
|
||
<listitem><para>
|
||
Если планируете сильно уменьшать размер изображения, можно извлекать и
|
||
декодировать только одно поле из двух. Конечно, Вы потеряете половину
|
||
вертикального разрешения, но если планируется уменьшать размер как минимум
|
||
вдвое, потеря будет не сильно заметна. В результате получится построчной
|
||
развёртки файл с 30000/1001 кадрами в секунду. Процедура следующая:
|
||
<option>-vf field</option>, затем обрезание
|
||
<link linkend="menc-feat-telecine-footnotes">[1]</link> и масштабирование
|
||
соответствующим образом. Помните, что потребуется скорректировать масштабирование
|
||
для компенсации уменьшенного вдвое вертикального разрешения.
|
||
<screen>mencoder dvd://1 -oac copy -vf field=0 -ovc lavc</screen>
|
||
</para></listitem>
|
||
</orderedlist>
|
||
</sect3>
|
||
|
||
|
||
<sect3 id="menc-feat-telecine-encode-mixedpt">
|
||
<title>Смешанные построчная развертка и телесин</title>
|
||
|
||
<para>
|
||
Для преобразования видео со смешанными построчной разверткой и телесином в
|
||
полностью построчное необходимо к подверженным телесину частям применить
|
||
обратный телесин. Есть три описанных ниже способа добиться этого.
|
||
Заметьте, что следует <emphasis role="bold">всегда</emphasis> применять обратный
|
||
телесин до какого-либо масштабирования; за исключением случая, когда Вы точно
|
||
знаете, что делаете, выполняйте обратный телесин также до обрезания
|
||
<link linkend="menc-feat-telecine-footnotes">[1]</link>.
|
||
<option>-ofps 24000/1001</option> здесь необходима, поскольку видео на выходе
|
||
будет с 24000/1001 кадрами в секунду.
|
||
</para>
|
||
|
||
<itemizedlist>
|
||
<listitem><para>
|
||
<option>-vf pullup</option> разработана для обратного телесина материала,
|
||
телесину подверженного, оставляя построчные данные как есть. Для правильной
|
||
работы после <option>pullup</option> <emphasis role="bold">должен</emphasis>
|
||
следовать фильтр <option>softskip</option>, иначе произойдет крах
|
||
<application>MEncoder</application>.
|
||
<option>pullup</option> является, однако, самым чистым и точным методом,
|
||
доступным для кодирования и телесина, и "смешанного построчного с телесином".
|
||
<screen>
|
||
mencoder dvd://1 -oac copy -vf pullup,softskip \
|
||
-ovc lavc -ofps 24000/1001<!--
|
||
--></screen>
|
||
</para></listitem>
|
||
<listitem><para>
|
||
<option>-vf filmdint</option> похожа на
|
||
<option>-vf pullup</option>: оба фильтра пытаются сопоставить пару полей
|
||
для формирования полного кадра. Однако <option>filmdint</option> будет
|
||
производить деинтерлейсинг одиночных полей, которым не может найти пару,
|
||
в то время как <option>pullup</option> попросту их отбросит.
|
||
Вдобавок фильтры имеют различные алгоритмы анализа, и filmdint
|
||
имеет тенденцию к более частому нахождению соответствий.
|
||
Какой фильтр будет лучше работать зависит от исходного видео и
|
||
личного вкуса; не бойтесь экспериментировать с тонкой настройкой
|
||
опций фильтров, если у Вас возникли проблемы с любым из них (подробности
|
||
смотрите на странице руководства man). Для большинства качественного
|
||
исходного видео, однако, оба фильтра работают достаточно хорошо,
|
||
так что начинать работать можно с любым из них.
|
||
<screen>
|
||
mencoder dvd://1 -oac copy -vf filmdint -ovc lavc -ofps 24000/1001<!--
|
||
--></screen>
|
||
</para></listitem>
|
||
<listitem><para>
|
||
Более старый метод заключается не в применении обратного телесина к
|
||
телесиненным частям, а, наоборот, в телесине не подверженных телесину частей и
|
||
последующем применении обратного телесина ко всему видео. Звучит запутанно?
|
||
softpulldown — это фильтр, проходящий по видео и делающий телесиненным весь
|
||
файл. Если следом за softpulldown указать либо <option>detc</option>, либо
|
||
<option>ivtc</option>, финальный результат будет полностью построчным.
|
||
<option>-ofps 24000/1001</option> необходима.
|
||
<screen>
|
||
mencoder dvd://1 -oac copy -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001
|
||
</screen>
|
||
</para></listitem>
|
||
</itemizedlist>
|
||
</sect3>
|
||
|
||
|
||
<sect3 id="menc-feat-telecine-encode-mixedpi">
|
||
<title>Смешанные построчная и чересстрочная развертки</title>
|
||
|
||
<para>
|
||
Существует две опции для этой категории, каждая из которых — это компромисс. Вы
|
||
должны выбрать, исходя из продолжительности/положения каждого типа.
|
||
</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>
|
||
Рассматривайте видео как построчное. Чересстрочные части будут выглядеть
|
||
чересстрочными, и потребуется удаление некоторых из чересстрочных полей, что
|
||
даст в результате некоторое скачкообразное дрожание. Вы можете использовать
|
||
фильтр постобработки, если хотите, но это может несколько ухудшить
|
||
построчные части.
|
||
</para>
|
||
|
||
<para>
|
||
Эта опция определенно не должна использоваться, если Вы хотите со
|
||
временем отображать видео на чересстрочном устройстве (с помощью TV карты,
|
||
например). Если у Вас есть чересстрочные кадры в видео с 24000/1001 кадрами в
|
||
секунду, к ним, как и к прогрессивным, будет применен телесин. Половина их
|
||
чересстрочных "кадров" будут отображаться с длительностью трех полей
|
||
(3/(60000/1001) секунд), давая в результате неприятно выглядящий эффект
|
||
<!-- FIXME is translation correct? -->
|
||
"прыжка назад во времени". Даже если Вы пробуете это, Вы
|
||
<emphasis role="bold">должны</emphasis> использовать фильтр деинтерлейсинга,
|
||
такой как <option>lb</option> или <option>l5</option>.
|
||
</para>
|
||
|
||
<para>
|
||
Для отображения на построчном дисплее это тоже может быть плохой идеей.
|
||
Будут отбрасываться пары последовательных чересстрочных полей, приводя к
|
||
разрывам, которые могут быть заметнее, чем при использовании второго метода,
|
||
отображающего некоторые построчные кадры дважды. Чересстрочное видео с
|
||
30000/1001 кадрами в секунду уже несколько прерывисто, потому что в реальности
|
||
оно должно отображаться с 60000/1001 полями в секунду, так что дублирующиеся
|
||
кадры не так сильно выделяются.
|
||
</para>
|
||
|
||
<para>
|
||
Так или иначе, лучше всего проанализировать Ваше содержимое и как Вы его
|
||
собираетесь показывать. Если видео на 90% построчное и Вы никогда не будете
|
||
показывать его на TV, Вам следует отдать предпочтение построчному варианту.
|
||
Если оно только наполовину построчное, Вы, возможно, захотите кодировать
|
||
его, как если бы оно было чересстрочным.
|
||
</para>
|
||
</listitem>
|
||
|
||
<listitem><para>
|
||
Считайте его чересстрочным. Некоторые кадры построчной части потребуют
|
||
дублирования, что даст в результате некоторое скачкообразное дрожание. И
|
||
снова, фильтры деинтерлейсинга могут несколько ухудшить построчные части.
|
||
</para></listitem>
|
||
</itemizedlist>
|
||
</sect3>
|
||
</sect2>
|
||
|
||
<!-- ********** -->
|
||
|
||
<sect2 id="menc-feat-telecine-footnotes">
|
||
<title>Примечания</title>
|
||
|
||
<orderedlist>
|
||
<listitem>
|
||
<formalpara>
|
||
<title>Об усечении сторон:</title>
|
||
<para>
|
||
Видеоданные на DVD хранятся в формате, называемом YUV 4:2:0. В YUV
|
||
видео, люма ("яркость") и хрома ("цвет") хранятся отдельно.
|
||
Поскольку человеческий глаз отчасти менее чувствителен к цвету, чем к яркости,
|
||
в YUV 4:2:0 изображении присутствует только один цветностный пиксел на четыре
|
||
яркостных. В изображении с построчной развёрткой каждый квадрат из четырёх яркостных
|
||
пикселов (два на два) имеют один общий цветностный пиксел. Вы должны обрезать
|
||
построчный YUV 4:2:0 до чётных размеров и использовать чётные смещения.
|
||
Например,
|
||
<option>crop=716:380:2:26</option> — правильно, а
|
||
<option>crop=716:380:3:26 </option> — нет.
|
||
</para>
|
||
</formalpara>
|
||
|
||
<para>
|
||
Когда имеете дело с чересстрочным YUV 4:2:0, ситуация чуть более сложная.
|
||
Вместо разделения одного цветностного пиксела четырьмя яркостными пикселами в
|
||
<emphasis>кадре</emphasis>, каждые четыре яркостных пиксела каждого
|
||
<emphasis>поля</emphasis> разделяют цветностный пиксел. Когда поля объединены в
|
||
кадр, каждая строка имеет высоту в один пиксел. Теперь, вместо квадрата из
|
||
четырех яркостных пикселов мы имеем два соседних пиксела, а два других расположены
|
||
на две строки ниже. Два яркостных пиксела следующей строки принадлежат
|
||
другому полю, и, поэтому, разделяют другой пиксел цветности с двумя пикселами
|
||
на две строки дальше. Вся эта неразбериха требует, чтобы вертикальные размеры
|
||
и смещения обрезания были кратны четырем. Горизонтальные могут оставаться
|
||
четными.
|
||
</para>
|
||
|
||
<para>
|
||
Для телесиненного видео я рекомендую производить обрезание после обратного
|
||
телесина. Так как видео построчное, достаточно обрезать только по четным
|
||
размерам. Если же действительно хотите получить небольшую прибавку к скорости,
|
||
которую может дать обрезка, Вам придется производить усечение с вертикальными
|
||
размерностями, кратными четырем. В противном случае фильтр обратного телесина
|
||
не будет иметь правильных данных.
|
||
</para>
|
||
|
||
<para>
|
||
Для чересстрочного (не подверженного телесину) видео, Вы всегда должны
|
||
производить усечение с вертикальными размерностями, кратными четырем, если
|
||
только не используете <option>-vf field</option> перед усечением.
|
||
</para>
|
||
</listitem>
|
||
|
||
<listitem><formalpara>
|
||
<title>О параметрах кодирования и качестве:</title>
|
||
<para>
|
||
Если я здесь рекомендую <option>mbd=2</option>, это еще не значит, что эту
|
||
опцию не следует использовать где-либо еще. Совместно с <option>trell</option>,
|
||
<option>mbd=2</option> является одной из двух опций
|
||
<systemitem class="library">libavcodec</systemitem>, которые значительно
|
||
увеличивают качество. Вам всегда следует использовать как минимум эти две,
|
||
за исключением случая, когда потеря скорости кодирования недопустима
|
||
(например, кодирование в реальном времени). Есть множество других
|
||
<systemitem class="library">libavcodec</systemitem> опций, улучшающих качество
|
||
(и замедляющих кодирование), но их описание выходит за рамки этого
|
||
документа.
|
||
</para>
|
||
</formalpara></listitem>
|
||
|
||
<listitem><formalpara>
|
||
<title>О производительности pullup:</title>
|
||
<para>
|
||
Использование <option>pullup</option> (совместно с <option>softskip</option>)
|
||
для видео с построчной развёрткой вполне безопасно и обычно является хорошей
|
||
идеей, если только про источник не известно достоверно, что он полностью
|
||
построчный. Потеря скорости мала в большинстве случаев.
|
||
В минимальном варианте кодирования <option>pullup</option> замедляет
|
||
<application>MEncoder</application> на 50%. Добавление обработки звука и
|
||
продвинутых <option>lavcopts</option> опций затмевает эту разницу, уменьшая
|
||
падение производительности от использования <option>pullup</option> до 2%.
|
||
</para>
|
||
</formalpara></listitem>
|
||
</orderedlist>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
|
||
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||
|
||
|
||
<sect1 id="menc-feat-enc-libavcodec">
|
||
<title>Кодирование семейством кодеков <systemitem class="library">libavcodec</systemitem>
|
||
</title>
|
||
|
||
<para>
|
||
<systemitem class="library">libavcodec</systemitem>
|
||
предоставляет возможность простого кодирования в множество интересных видео и
|
||
аудио форматов. Вы можете кодировать следующими кодеками (более или менее
|
||
свежий список):
|
||
</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>jpegls</entry>
|
||
<entry>JPEG LS</entry>
|
||
</row>
|
||
<row>
|
||
<entry>targa</entry>
|
||
<entry>Targa рисунок</entry>
|
||
</row>
|
||
<row>
|
||
<entry>gif</entry>
|
||
<entry>GIF рисунок</entry>
|
||
</row>
|
||
<row>
|
||
<entry>bmp</entry>
|
||
<entry>BMP рисунок</entry>
|
||
</row>
|
||
<row>
|
||
<entry>png</entry>
|
||
<entry>PNG рисунок</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>ffvhuff</entry>
|
||
<entry>huffyuv без потерь, модифицированный FFmpeg</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>flashsv</entry>
|
||
<entry>Flash Screen Video</entry>
|
||
</row>
|
||
<row>
|
||
<entry>dvvideo</entry>
|
||
<entry>Sony Digital Video</entry>
|
||
</row>
|
||
<row>
|
||
<entry>snow</entry>
|
||
<entry>экспериментальный кодек FFmpeg, основанный на вейвлетах</entry>
|
||
</row>
|
||
<row>
|
||
<entry>zmbv</entry>
|
||
<entry>Zip Motion Blocks Video</entry>
|
||
</row>
|
||
<row>
|
||
<entry>dnxhd</entry>
|
||
<entry>AVID DNxHD</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>ac3</entry>
|
||
<entry>Dolby Digital (AC-3)</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_*</entry>
|
||
<entry>Форматы Adaptive PCM, смотрите дополнительную таблицу</entry>
|
||
</row>
|
||
<row>
|
||
<entry>flac</entry>
|
||
<entry>Free Lossless Audio Codec (FLAC)</entry>
|
||
</row>
|
||
<row>
|
||
<entry>g726</entry>
|
||
<entry>G.726 ADPCM</entry>
|
||
</row>
|
||
<row>
|
||
<entry>libamr_nb</entry>
|
||
<entry>3GPP Adaptive Multi-Rate (AMR) узкополосный</entry>
|
||
</row>
|
||
<row>
|
||
<entry>libamr_wb</entry>
|
||
<entry>3GPP Adaptive Multi-Rate (AMR) широкополосный</entry>
|
||
</row>
|
||
<row>
|
||
<entry>libfaac</entry>
|
||
<entry>Advanced Audio Coding (AAC) - используя FAAC</entry>
|
||
</row>
|
||
<row>
|
||
<entry>libgsm</entry>
|
||
<entry>ETSI GSM 06.10 full rate</entry>
|
||
</row>
|
||
<row>
|
||
<entry>libgsm_ms</entry>
|
||
<entry>Microsoft GSM</entry>
|
||
</row>
|
||
<row>
|
||
<entry>libmp3lame</entry>
|
||
<entry>MPEG-1 audio layer 3 (MP3) - используя LAME</entry>
|
||
</row>
|
||
<row>
|
||
<entry>mp2</entry>
|
||
<entry>MPEG-1 audio layer 2 (MP2)</entry>
|
||
</row>
|
||
<row>
|
||
<entry>pcm_*</entry>
|
||
<entry>PCM форматы, смотрите дополнительную таблицу</entry>
|
||
</row>
|
||
<row>
|
||
<entry>roq_dpcm</entry>
|
||
<entry>Id Software RoQ DPCM</entry>
|
||
</row>
|
||
<row>
|
||
<entry>sonic</entry>
|
||
<entry>экспериментальный кодек от FFmpeg с потерями (lossy)</entry>
|
||
</row>
|
||
<row>
|
||
<entry>sonicls</entry>
|
||
<entry>экспериментальный кодек от FFmpeg без потерь (lossless)</entry>
|
||
</row>
|
||
<row>
|
||
<entry>vorbis</entry>
|
||
<entry>Vorbis</entry>
|
||
</row>
|
||
<row>
|
||
<entry>wmav1</entry>
|
||
<entry>Windows Media Audio v1</entry>
|
||
</row>
|
||
<row>
|
||
<entry>wmav2</entry>
|
||
<entry>Windows Media Audio v2</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
|
||
Первый столбец содержит названия кодеков, которые следует указывать после
|
||
<literal>acodec</literal> опции, например: <option>-lavcopts acodec=ac3</option>
|
||
</para>
|
||
|
||
<informalexample><para>
|
||
Пример с AC-3 сжатием:
|
||
<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>
|
||
|
||
<sect3 id="menc-feat-enc-libavcodec-audio-codecs-pcmadpcm">
|
||
<title>Дополнительная таблица PCM/ADPCM форматов</title>
|
||
|
||
<para>
|
||
<informaltable frame="all">
|
||
<tgroup cols="2">
|
||
<thead>
|
||
<row><entry>Название PCM/ADPCM кодека</entry><entry>Описание</entry></row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry>pcm_s32le</entry>
|
||
<entry>signed 32-bit little-endian</entry>
|
||
</row>
|
||
<row>
|
||
<entry>pcm_s32be</entry>
|
||
<entry>signed 32-bit big-endian</entry>
|
||
</row>
|
||
<row>
|
||
<entry>pcm_u32le</entry>
|
||
<entry>unsigned 32-bit little-endian</entry>
|
||
</row>
|
||
<row>
|
||
<entry>pcm_u32be</entry>
|
||
<entry>unsigned 32-bit big-endian</entry>
|
||
</row>
|
||
<row>
|
||
<entry>pcm_s24le</entry>
|
||
<entry>signed 24-bit little-endian</entry>
|
||
</row>
|
||
<row>
|
||
<entry>pcm_s24be</entry>
|
||
<entry>signed 24-bit big-endian</entry>
|
||
</row>
|
||
<row>
|
||
<entry>pcm_u24le</entry>
|
||
<entry>unsigned 24-bit little-endian</entry>
|
||
</row>
|
||
<row>
|
||
<entry>pcm_u24be</entry>
|
||
<entry>unsigned 24-bit big-endian</entry>
|
||
</row>
|
||
<row>
|
||
<entry>pcm_s16le</entry>
|
||
<entry>signed 16-bit little-endian</entry>
|
||
</row>
|
||
<row>
|
||
<entry>pcm_s16be</entry>
|
||
<entry>signed 16-bit big-endian</entry>
|
||
</row>
|
||
<row>
|
||
<entry>pcm_u16le</entry>
|
||
<entry>unsigned 16-bit little-endian</entry>
|
||
</row>
|
||
<row>
|
||
<entry>pcm_u16be</entry>
|
||
<entry>unsigned 16-bit big-endian</entry>
|
||
</row>
|
||
<row>
|
||
<entry>pcm_s8</entry>
|
||
<entry>signed 8-bit</entry>
|
||
</row>
|
||
<row>
|
||
<entry>pcm_u8</entry>
|
||
<entry>unsigned 8-bit</entry>
|
||
</row>
|
||
<row>
|
||
<entry>pcm_alaw</entry>
|
||
<entry>G.711 A-LAW </entry>
|
||
</row>
|
||
<row>
|
||
<entry>pcm_mulaw</entry>
|
||
<entry>G.711 μ-LAW</entry>
|
||
</row>
|
||
<row>
|
||
<entry>pcm_s24daud</entry>
|
||
<entry>signed 24-bit D-Cinema Audio формат</entry>
|
||
</row>
|
||
<row>
|
||
<entry>pcm_zork</entry>
|
||
<entry>Activision Zork Nemesis</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_ima_qt</entry>
|
||
<entry>Apple QuickTime</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_ima_wav</entry>
|
||
<entry>Microsoft/IBM WAVE</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_ima_dk3</entry>
|
||
<entry>Duck DK3</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_ima_dk4</entry>
|
||
<entry>Duck DK4</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_ima_ws</entry>
|
||
<entry>Westwood Studios</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_ima_smjpeg</entry>
|
||
<entry>SDL Motion JPEG</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_ms</entry>
|
||
<entry>Microsoft</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_4xm</entry>
|
||
<entry>4X Technologies</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_xa</entry>
|
||
<entry>Phillips Yellow Book CD-ROM eXtended Architecture</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_ea</entry>
|
||
<entry>Electronic Arts</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_ct</entry>
|
||
<entry>Creative 16->4-bit</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_swf</entry>
|
||
<entry>Adobe Shockwave Flash</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_yamaha</entry>
|
||
<entry>Yamaha</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_sbpro_4</entry>
|
||
<entry>Creative VOC SoundBlaster Pro 8->4-bit</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_sbpro_3</entry>
|
||
<entry>Creative VOC SoundBlaster Pro 8->2.6-bit</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_sbpro_2</entry>
|
||
<entry>Creative VOC SoundBlaster Pro 8->2-bit</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_thp</entry>
|
||
<entry>Nintendo GameCube FMV THP</entry>
|
||
</row>
|
||
<row>
|
||
<entry>adpcm_adx</entry>
|
||
<entry>Sega/CRI ADX</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
</para>
|
||
</sect3>
|
||
|
||
</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>0дБ</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.5дБ</entry>
|
||
</row>
|
||
<row>
|
||
<entry>Быстрое</entry>
|
||
<entry><option>vcodec=mpeg4:mbd=2:trell:v4mv:turbo</option></entry>
|
||
<entry>42fps</entry>
|
||
<entry>-0.74дБ</entry>
|
||
</row>
|
||
<row>
|
||
<entry>Реального времени</entry>
|
||
<entry><option>vcodec=mpeg4:mbd=2:turbo</option></entry>
|
||
<entry>54fps</entry>
|
||
<entry>-1.21дБ</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
</para>
|
||
</sect2>
|
||
|
||
<!-- ********** -->
|
||
|
||
<sect2 id="custommatrices">
|
||
<title>Нестандартные inter/intra матрицы</title>
|
||
|
||
<para>
|
||
С этой возможностью
|
||
<systemitem class="library">libavcodec</systemitem>,
|
||
Вы можете установить нестандартные 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 id="menc-feat-dvd-mpeg4-example-crop">
|
||
Далее, мы хотим определить верные границы обрезания, поэтому используем фильтр
|
||
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 видео было создано
|
||
для телевидения, Вы можете захотеть избежать вертикального масштабирования,
|
||
поскольку дискретизация строк соответствует тому, как содержимое
|
||
изначально записывалось.
|
||
</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: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: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</option> выбирают функцию сравнения, дающую
|
||
лучшее качество, чем стандартная. Вы можете поэкспериментировать с этим параметром
|
||
(возможные значения смотрите на man странице), поскольку разные функции могут
|
||
давать разный прирост в качестве в зависимости от исходного материала.
|
||
Например, если Вы замечаете, что <systemitem class="library">libavcodec</systemitem>
|
||
производит слишком много блочных артефактов (квадратиков), то можете попытаться
|
||
выбрать экспериментальный NSSE в качестве функции сравнения при помощи опции
|
||
<option>*cmp=10</option>.
|
||
</para>
|
||
|
||
<para>
|
||
Для этого фильма полученный AVI будет 138 минут длинной и размером около 3Гб.
|
||
И, поскольку Вы сказали, что размер файла значения не имеет, это вполне
|
||
приемлемый результат. Однако, если все-таки хотите получить меньший размер файла,
|
||
можете попробовать уменьшить битпоток. Увеличение битпотока имеет снижающийся эффект,
|
||
поэтому, хотя мы можем ясно видеть улучшение от 1800Кбит/сек до 2000Кбит/сек, оно
|
||
может быть не столь заметно выше 2000Кбит/сек.
|
||
</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>
|
||
Эта опция служит для увеличения качества цветного изображения вокруг чисто черных/белых
|
||
границ вместо улучшения сжатия. Она также может помочь против
|
||
эффекта "красных ступенек".
|
||
</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>Карманный</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>Глобальная компенсация движения</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>0дБ</entry>
|
||
</row>
|
||
<row>
|
||
<entry>Высокое качество</entry>
|
||
<entry><option>vhq=2:bvhq=1:chroma_opt:quant_type=mpeg</option></entry>
|
||
<entry>18fps</entry>
|
||
<entry>-0.1дБ</entry>
|
||
</row>
|
||
<row>
|
||
<entry>Быстрое</entry>
|
||
<entry><option>turbo:vhq=0</option></entry>
|
||
<entry>28fps</entry>
|
||
<entry>-0.69дБ</entry>
|
||
</row>
|
||
<row>
|
||
<entry>Реального времени</entry>
|
||
<entry><option>turbo:nochroma_me:notrellis:max_bframes=0:vhq=0</option></entry>
|
||
<entry>38fps</entry>
|
||
<entry>-1.48дБ</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="x264">
|
||
настроить <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>subq=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>
|
||
<para>
|
||
<option>subq=7</option> — самый медленный режим с наилучшим качеством.
|
||
По сравнению с <option>subq=6</option> он, обычно, улучшает общий PSNR на
|
||
0.01-0.05 дБ ценой потери 15%-30% скорости.
|
||
Поскольку соотношение качества и времени кодирования очень невелико, Вам
|
||
следует использовать этот режим, только если боретесь за каждый бит, и время
|
||
кодирования Вас не волнует.
|
||
</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.25дБ 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> в первом проходе, а
|
||
затем увеличить их во втором. Обычно, это обладает ничтожным отрицательным
|
||
эффектом на конечное качество: Вы, возможно, потеряете вплоть до 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>nob_adapt</option> в <option>x264encopts</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-кадры.
|
||
Потери в скорости кодирования минимальны, поскольку не требуется делать
|
||
дополнительные принятия решений.
|
||
Вдобавок, вопреки расхожему мнению, взвешенное предсказание не
|
||
сильно влияет на требования декодера к CPU при прочих равных условиях.
|
||
</para>
|
||
<para>
|
||
К сожалению, текущий алгоритм адаптивного принятия решений о B-кадрах имеет
|
||
твердую склонность к избеганию использования B-кадров при затуханиях.
|
||
До тех пор, пока это не изменится, хорошей идеей, возможно, будет добавить
|
||
<option>nob_adapt</option> к x264encopts, если предполагаете, что затухания
|
||
будут давать существенный вклад в Вашем конкретном видеоклипе.
|
||
</para>
|
||
</listitem>
|
||
<listitem id="menc-feat-x264-encoding-options-speedquality-threads">
|
||
<para>
|
||
<emphasis role="bold">threads</emphasis>
|
||
Эта опция позволяет породить потоки для параллельного кодирования на
|
||
нескольких CPU. Вы можете вручную выбрать количество создаваемых потоков или,
|
||
что лучше, установить <option>threads=auto</option> и позволить
|
||
<systemitem class="library">x264</systemitem> определить количество доступных
|
||
CPU и выбрать соответствующее количество потоков.
|
||
Если у Вас многопроцессорная машина, Вам следует всерьез задуматься об
|
||
использовании этой опции, так как она может увеличить скорость кодирования линейно
|
||
в зависимости от числа CPU ядер (около 94% на ядро), незначительно уменьшая PSNR
|
||
(примерно 0.005 дБ для двухпроцессорной, 0.01 дБ — для
|
||
четырехпроцессорной машины).
|
||
</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 кбит/сек.
|
||
Предположим, Вы запросили битпоток 1400 кбит/сек; в теории этого достаточно
|
||
для удовлетворения потребностей обеих сцен.
|
||
В этом случае управление битпотоком в однопроходном режиме сделает пару "ошибок".
|
||
Во-первых, оно установит битпоток в 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>
|
||
<!-- FIXME: Можно ли как-то перевести in-loop? -->
|
||
Первая и самая важная вещь, которую нужно знать о 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>0дБ</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.89дБ</entry>
|
||
</row>
|
||
<row>
|
||
<entry>Быстро</entry>
|
||
<entry><option>subq=4:bframes=2:b_pyramid:weight_b</option></entry>
|
||
<entry>17fps</entry>
|
||
<entry>-1.48дБ</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>необходим <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></entry>
|
||
</row>
|
||
<row>
|
||
<entry>vp7vfw.dll</entry>
|
||
<entry>On2 VP7 Personal Codec (VP70)</entry>
|
||
<entry>cb4cc3d4ea7c94a35f1d81c3d750bc8d</entry>
|
||
<entry><option>-ffourcc VP70</option></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>
|
||
Пример конвертации ISO DVD ролика в VP6 flash видео файл с использованием
|
||
compdata настроек битпотока:
|
||
<screen>
|
||
mencoder -dvd-device <replaceable>zeiram.iso</replaceable> dvd://7 -o <replaceable>trailer.flv</replaceable> \
|
||
-ovc vfw -xvfwopts codec=vp6vfw.dll:compdata=onepass.mcf -oac mp3lame \
|
||
-lameopts cbr:br=64 -af lavcresample=22050 -vf yadif,scale=320:240,flip \
|
||
-of lavf
|
||
</screen>
|
||
</para>
|
||
</informalexample>
|
||
</sect2>
|
||
|
||
<sect2 id="menc-feat-video-for-windows-bitrate-settings">
|
||
<title>Использование vfw2menc для создания файла настроек кодека.</title>
|
||
|
||
<para>
|
||
Для кодирования кодеками Video for Windows, Вам потребуется установить
|
||
величину битпотока и другие опции. Известно, что это работает на x86 и для
|
||
*NIX, и для Windows.
|
||
</para>
|
||
<para>
|
||
Во-первых, Вы должны собрать программу <application>vfw2menc</application>.
|
||
Она находится в подкаталоге <filename class="directory">TOOLS</filename>
|
||
дерева исходников MPlayer.
|
||
Для сборки под Linux, это можно сделать, воспользовавшись <application>Wine</application>:
|
||
<screen>winegcc vfw2menc.c -o vfw2menc -lwinmm -lole32</screen>
|
||
|
||
Для сборки под Windows в <application>MinGW</application> или
|
||
<application>Cygwin</application> используйте:
|
||
<screen>gcc vfw2menc.c -o vfw2menc.exe -lwinmm -lole32</screen>
|
||
|
||
Для сборки в <application>MSVC</application> Вам потребуется getopt.
|
||
Getopt можно найти в исходном архиве <application>vfw2menc</application>,
|
||
доступном в:
|
||
Проект <ulink url="http://oss.netfarm.it/mplayer-win32.php">MPlayer на win32</ulink>.
|
||
</para>
|
||
<informalexample>
|
||
<para>
|
||
Далее следует пример использования с VP6 кодеком.
|
||
<screen>
|
||
vfw2menc -f VP62 -d vp6vfw.dll -s firstpass.mcf
|
||
</screen>
|
||
Это откроет диалоговое окно кодека VP6. Повторите этот шаг для второго прохода,
|
||
указав <option>-s <replaceable>secondpass.mcf</replaceable></option>.
|
||
</para>
|
||
</informalexample>
|
||
<para>
|
||
Пользователи Windows могут использовать
|
||
<option>-xvfwopts codec=vp6vfw.dll:compdata=dialog</option>,
|
||
для показа окна настроек кодека перед началом кодирования.
|
||
</para>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
|
||
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||
|
||
|
||
<sect1 id="menc-feat-quicktime-7">
|
||
<title>Использование <application>MEncoder</application>
|
||
для создания совместимых с <application>QuickTime</application>
|
||
файлов</title>
|
||
|
||
|
||
<sect2 id="menc-feat-quicktime-7-why-use-it">
|
||
<title>Зачем необходимо создавать совместимые с <application>QuickTime</application>
|
||
файлы?</title>
|
||
|
||
<para>
|
||
Есть несколько причин, по которым создание
|
||
<application>QuickTime</application>-совместимых файлов может быть
|
||
желательно.
|
||
</para>
|
||
<itemizedlist>
|
||
<listitem><para>
|
||
Вы хотите, чтобы любой компьютерно неграмотный человек мог смотреть
|
||
результат Вашего кодирования на большинстве платформ (Windows, Mac OS X, Unices …).
|
||
</para></listitem>
|
||
<listitem><para>
|
||
<application>QuickTime</application>
|
||
позволяет воспользоваться преимуществами большего числа возможностей
|
||
аппаратного и программного ускорения на Mac OS X, чем платформо-независимые
|
||
плееры наподобие <application>MPlayer</application> или
|
||
<application>VLC</application>.
|
||
Это означает, что Ваше кодирование имеет шансы плавно воспроизводиться
|
||
на старых машинах, оснащённых G4.
|
||
</para></listitem>
|
||
<listitem><para>
|
||
<application>QuickTime</application> 7 поддерживает кодек нового поколения
|
||
H.264, который даёт существенно лучшее качество изображения, чем
|
||
предыдущие поколения кодеков (MPEG-2, MPEG-4 …).
|
||
</para></listitem>
|
||
</itemizedlist>
|
||
</sect2>
|
||
|
||
<sect2 id="menc-feat-quicktime-7-constraints">
|
||
<title>Ограничения <application>QuickTime</application> 7</title>
|
||
|
||
<para>
|
||
<application>QuickTime</application> 7 поддерживает H.264 видео и
|
||
AAC аудио, но не поддерживает их мультиплексирование в формат
|
||
контейнера AVI.
|
||
Однако, Вы можете использовать <application>MEncoder</application>
|
||
для кодирования видео и аудио, а потом использовать внешнюю
|
||
программу, такую как <application>mp4creator</application> (часть
|
||
<ulink url="http://mpeg4ip.sourceforge.net/">пакета MPEG4I</ulink>)
|
||
для ремультиплексирования видео и аудио дорожек в контейнер MP4.
|
||
</para>
|
||
|
||
<para>
|
||
Поддержка H.264 в <application>QuickTime</application> ограничена,
|
||
так что Вам придётся отказаться от нескольких продвинутых возможностей.
|
||
Если Вы кодируете видео с возможностями, не поддерживаемыми
|
||
<application>QuickTime</application> 7,
|
||
плееры, основанные на <application>QuickTime</application>,
|
||
покажут Вам милый белый экран вместо ожидаемого Вами видео.
|
||
</para>
|
||
|
||
<itemizedlist>
|
||
<listitem><para>
|
||
<emphasis role="bold">B-кадры</emphasis>:
|
||
<application>QuickTime</application> 7 поддерживает максимум 1 B-кадр,
|
||
т.е. <option>-x264encopts bframes=1</option>. Это означает, что
|
||
<option>b_pyramid</option> и <option>weight_b</option> не дадут
|
||
эффекта, поскольку им необходимо, чтобы <option>bframes</option>
|
||
было больше 1.
|
||
</para></listitem>
|
||
<listitem><para>
|
||
<emphasis role="bold">Макроблоки</emphasis>:
|
||
<application>QuickTime</application> 7 не поддерживает 8x8 DCT макроблоки.
|
||
Эта опция (<option>8x8dct</option>) выключена по умолчанию, так что
|
||
просто удостоверьтесь, что явно её не задали.
|
||
Это также означает, что опция <option>i8x8</option> будет бесполезна,
|
||
т.к. ей необходима <option>8x8dct</option>.
|
||
</para></listitem>
|
||
<listitem><para>
|
||
<emphasis role="bold">Коэффициент соотношения сторон</emphasis>:
|
||
<application>QuickTime</application> 7 не поддерживает информацию
|
||
SAR (коэффициент пропорций пиксела, sample aspect ratio)
|
||
в MPEG-4 файлах; он предполагает SAR=1. Прочтите
|
||
<link linkend="menc-feat-quicktime-7-scale">раздел о масштабировании</link>
|
||
для обхода проблемы.
|
||
</para></listitem>
|
||
</itemizedlist>
|
||
|
||
</sect2>
|
||
|
||
<sect2 id="menc-feat-quicktime-7-crop">
|
||
<title>Обрезание</title>
|
||
<para>
|
||
Предположим, что Вы хотите сделать рип свежекупленной копии "Хроник
|
||
Нарнии" и Ваш регион DVD 1, что означает, что это NTSC.
|
||
Пример ниже будет также применим к PAL, за исключением того, что Вам
|
||
нужно будет опустить <option>-ofps 24000/1001</option> и использовать
|
||
слегка отличающиеся размеры для <option>crop</option> и <option>scale</option>.
|
||
</para>
|
||
|
||
<para>
|
||
После запуска <option>mplayer dvd://1</option>, Вы следуете процессу,
|
||
описанному в разделе <link linkend="menc-feat-telecine">Как работать
|
||
с телесином и чересстрочной развёрткой на NTSC DVD</link> и обнаруживаете,
|
||
что это 24000/1001 fps видео с построчной развёрткой. Это несколько
|
||
упрощает обработку, поскольку Вам не нужно использовать фильтр
|
||
обратного телесина, такой как <option>pullup</option>, или фильтр
|
||
деинтерлейса, такой как <option>yadif</option>.
|
||
</para>
|
||
|
||
<para>
|
||
Затем Вам необходимо усечь чёрные полосы сверху и снизу видео, как
|
||
описано в <link linkend="menc-feat-dvd-mpeg4-example-crop">этом</link>
|
||
разделе.
|
||
</para>
|
||
|
||
</sect2>
|
||
|
||
<sect2 id="menc-feat-quicktime-7-scale">
|
||
<title>Масштабирование</title>
|
||
|
||
<para>
|
||
Следующий шаг действительно душераздирающий.
|
||
<application>QuickTime</application> 7 не поддерживает MPEG-4 видео
|
||
с коэффициентом соотношения сторон пиксела, отличным от 1. Так что Вам
|
||
придётся масштабировать видео либо в сторону увеличения (что впустую
|
||
потратит много места на диске), либо в строну уменьшения (что приведёт
|
||
к потере некоторых деталей источника) для квадратизации пикселов.
|
||
Какой бы способ Вы не выбрали, это будет крайне неэффективным, но
|
||
не может быть опущено, если Вы хотите, чтоб Ваше видео воспроизводилось
|
||
с помощью <application>QuickTime</application> 7.
|
||
<application>MEncoder</application> может применить необходимое
|
||
увеличивающее или уменьшающее масштабирование, если ему указать
|
||
<option>-vf scale=-10:-1</option> или <option>-vf scale=-1:-10</option>
|
||
соответственно.
|
||
Это отмасштабирует Ваше видео до корректной ширины для усечённой
|
||
высоты, округлённой до ближайшего множителя 16 для оптимального
|
||
сжатия.
|
||
Помните, что если производите обрезание, то нужно сперва обрезать, а лишь затем
|
||
масштабировать:
|
||
|
||
<screen>-vf crop=720:352:0:62,scale=-10:-1</screen>
|
||
</para>
|
||
|
||
</sect2>
|
||
|
||
<sect2 id="menc-feat-quicktime-7-avsync">
|
||
<title>A/V синхронизация</title>
|
||
|
||
<para>
|
||
Поскольку Вы будете мультиплексировать в другой контейнер, Вы должны
|
||
всегда использовать опцию <option>harddup</option>, чтобы убедиться,
|
||
что дублирующиеся кадры будут действительно дублироваться в полученном
|
||
видео. Без этой опции <application>MEncoder</application> будет просто
|
||
располагать маркер в видеопотоке о том, что кадр был повторен, и будет
|
||
полагаться на то, что клиентское программное обеспечение покажет кадр
|
||
дважды. К сожалению, это "мягкое дублирование" не переживает
|
||
ремультиплексирование, в результате чего аудио будет постепенно терять
|
||
синхронизацию с видео.
|
||
</para>
|
||
|
||
<para>
|
||
В итоге, цепочка фильтров выглядит следующим образом:
|
||
<screen>-vf crop=720:352:0:62,scale=-10:-1,harddup</screen>
|
||
</para>
|
||
|
||
</sect2>
|
||
|
||
<sect2 id="menc-feat-quicktime-7-bitrate">
|
||
<title>Битпоток</title>
|
||
|
||
<para>
|
||
Как обычно, выбор битпотока зависит от технических свойств исходного
|
||
материала, как объясняется
|
||
<link linkend="menc-feat-dvd-mpeg4-resolution-bitrate">здесь</link>,
|
||
как, впрочем, и от личного вкуса.
|
||
Этот фильм обладает небольшим количеством движения и большим
|
||
количеством деталей, но H.264 видео хорошо выглядит на существенно
|
||
меньших битпотоках, чем XviD или другие MPEG-4 кодеки.
|
||
После длительного экспериментирования, автор данного руководства
|
||
решил кодировать фильм на 900 кбит/сек, и считает, что он выглядит
|
||
очень хорошо. Вы можете уменьшить битпоток, если Вам нужно сохранить
|
||
больше места, или увеличить, если Вам нужно улучшить качество.
|
||
</para>
|
||
|
||
</sect2>
|
||
|
||
<sect2 id="menc-feat-quicktime-7-example">
|
||
<title>Пример кодирования</title>
|
||
|
||
<para>
|
||
Теперь Вы готовы к кодированию видео. Поскольку Вы заботитесь
|
||
о качестве, Вы , разумеется, будете делать двупроходное кодирование.
|
||
Для некоторого сокращения времени кодирования, Вы можете указать
|
||
опцию <option>turbo</option> при первом проходе; это уменьшит
|
||
<option>subq</option> и <option>frameref</option> до 1.
|
||
Чтобы сохранить немного места на диске, Вы можете использовать
|
||
параметр <option>ss</option> для отрезания первых нескольких
|
||
секунд видео. (Я обнаружил, что, в частности, у данного фильма
|
||
есть 32 секунды титров и логотипов.)
|
||
<option>bframes</option> может быть 0 или 1.
|
||
остальные опции описаны в разделе <link
|
||
linkend="menc-feat-x264-encoding-options-speedvquality">Кодирование
|
||
кодеком <systemitem class="library">x264</systemitem></link> и на
|
||
man странице.
|
||
|
||
<screen>mencoder dvd://1 -o /dev/null -ss 32 -ovc x264 \
|
||
-x264encopts pass=1:turbo:bitrate=900:bframes=1:\
|
||
me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \
|
||
-vf crop=720:352:0:62,scale=-10:-1,harddup \
|
||
-oac faac -faacopts br=192:mpeg=4:object=2 -channels 2 -srate 48000 \
|
||
-ofps 24000/1001</screen>
|
||
|
||
Если у Вас многопроцессорная машина, не упустите шанс значительно
|
||
ускорить кодирование задействованием
|
||
<link linkend="menc-feat-x264-encoding-options-speedquality-threads">
|
||
многопоточного режима <systemitem class="library">x264</systemitem></link>,
|
||
добавив <option>threads=auto</option> в <option>x264encopts</option> в
|
||
командной строке.
|
||
</para>
|
||
|
||
<para>
|
||
Второй проход выполняется аналогично, за исключением того, что Вам
|
||
нужно указать выходной файл и установить <option>pass=2</option>.
|
||
|
||
<screen>mencoder dvd://1 <emphasis role="bold">-o нарния.avi</emphasis> -ss 32 -ovc x264 \
|
||
-x264encopts <emphasis role="bold">pass=2</emphasis>:turbo:bitrate=900:frameref=5:bframes=1:\
|
||
me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \
|
||
-vf crop=720:352:0:62,scale=-10:-1,harddup \
|
||
-oac faac -faacopts br=192:mpeg=4:object=2 -channels 2 -srate 48000 \
|
||
-ofps 24000/1001</screen>
|
||
</para>
|
||
|
||
<para>
|
||
Получившееся AVI должно хорошо воспроизводиться в
|
||
<application>MPlayer</application>, но, конечно же,
|
||
<application>QuickTime</application> не сможет его воспроизвести,
|
||
т.к. не поддерживает H.264, мультиплексированный в AVI.
|
||
Так что следующий шаг — ремультиплексирование видео в контейнер MP4.
|
||
</para>
|
||
</sect2>
|
||
|
||
<sect2 id="menc-feat-quicktime-7-remux">
|
||
<title>Ремультиплексирование в MP4</title>
|
||
|
||
<para>
|
||
Существует несколько способов ремультиплексирования AVI файлов
|
||
в MP4. Вы можете использовать <application>mp4creator</application>,
|
||
являющийся частью
|
||
<ulink url="http://mpeg4ip.sourceforge.net/">пакета MPEG4IP</ulink>.
|
||
</para>
|
||
|
||
<para>
|
||
Сперва демультиплексируйте AVI в отдельные аудио и видео потоки
|
||
с помощью <application>MPlayer</application>.
|
||
|
||
<screen>mplayer нарния.avi -dumpaudio -dumpfile нарния.aac
|
||
mplayer нарния.avi -dumpvideo -dumpfile нарния.h264</screen>
|
||
|
||
Имена файлов важны; для <application>mp4creator</application>
|
||
необходимо, чтобы AAC аудио потоки назывались <systemitem>.aac</systemitem>
|
||
и H.264 видео потоки назывались <systemitem>.h264</systemitem>.
|
||
</para>
|
||
|
||
<para>
|
||
Теперь используйте <application>mp4creator</application> для создания
|
||
нового MP4 файла из аудио и видео потоков.
|
||
|
||
<screen>mp4creator -create=нарния.aac нарния.mp4
|
||
mp4creator -create=нарния.h264 -rate=23.976 нарния.mp4</screen>
|
||
|
||
В отличии от этапа кодирования, Вам нужно указать частоту кадров
|
||
как десятичную (например, 23.976), а не целую (например, 24000/1001)
|
||
дробь.
|
||
</para>
|
||
|
||
<para>
|
||
Теперь файл <systemitem>нарния.mp4</systemitem> должен проигрываться
|
||
с помощью любого <application>QuickTime</application> 7 приложения,
|
||
например, <application>QuickTime Player</application> или
|
||
<application>iTunes</application>.
|
||
Если Вы планируете просмотр видео в вэб-браузере с помощью плагина
|
||
<application>QuickTime</application>, Вам также необходимо
|
||
модифицировать фильм таким образом, чтобы плагин
|
||
<application>QuickTime</application> мог начать его воспроизведение
|
||
ещё во время загрузки. <application>mp4creator</application>
|
||
может создать эти вспомогательные дорожки (т.н. hint tracks):
|
||
|
||
<screen>mp4creator -hint=1 нарния.mp4
|
||
mp4creator -hint=2 нарния.mp4
|
||
mp4creator -optimize нарния.mp4</screen>
|
||
|
||
Вы можете проверить полученный результат, чтобы убедиться, что
|
||
вспомогательные дорожки были успешно созданы.
|
||
|
||
<screen>mp4creator -list нарния.mp4</screen>
|
||
|
||
Вы должны увидеть список дорожек: 1 аудио, 1 видео и 2 вспомогательных.
|
||
|
||
<screen>Track Type Info
|
||
1 audio MPEG-4 AAC LC, 8548.714 secs, 190 kbps, 48000 Hz
|
||
2 video H264 Main@5.1, 8549.132 secs, 899 kbps, 848x352 @ 23.976001 fps
|
||
3 hint Payload mpeg4-generic for track 1
|
||
4 hint Payload H264 for track 2
|
||
</screen>
|
||
</para>
|
||
|
||
</sect2>
|
||
|
||
<sect2 id="menc-feat-quicktime-7-metadata">
|
||
<title>Добавление тегов метаданных</title>
|
||
|
||
<para>
|
||
Если Вы хотите добавить в видео теги, которые отображаются в iTunes, Вы
|
||
можете использовать
|
||
<ulink url="http://atomicparsley.sourceforge.net/">AtomicParsley</ulink>.
|
||
|
||
<screen>AtomicParsley нарния.mp4 --metaEnema --title "The Chronicles of Narnia" --year 2005 --stik Movie --freefree --overWrite</screen>
|
||
|
||
Опция <option>--metaEnema</option> удаляет любые существующие метаданные
|
||
(<application>mp4creator</application> вставляет своё название в тег
|
||
"утилита кодирования") и <option>--freefree</option> высвобождает место,
|
||
оставшееся от удалённых метаданных.
|
||
Опция <option>--stik</option> устанавливает тип видео (например,
|
||
Movie или TV Show), который используется iTunes для группировки
|
||
родственных видеофайлов.
|
||
Опция <option>--overWrite</option> перезаписывает исходный файл; без неё
|
||
<application>AtomicParsley</application> создаст новый файл с автоматическим
|
||
именем в том же каталоге и оставит исходный файл нетронутым.
|
||
</para>
|
||
|
||
</sect2>
|
||
|
||
</sect1>
|
||
|
||
|
||
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||
|
||
|
||
<sect1 id="menc-feat-vcd-dvd">
|
||
<title>Использование <application>MEncoder</application>
|
||
для создания VCD/SVCD/DVD-совместимых файлов.</title>
|
||
|
||
<sect2 id="menc-feat-vcd-dvd-constraints">
|
||
<title>Ограничения формата</title>
|
||
|
||
<para>
|
||
<application>MEncoder</application> способен создавать MPEG файлы VCD, SCVD
|
||
и DVD формата, используя библиотеку <systemitem class="library">libavcodec</systemitem>.
|
||
Эти файлы затем могут быть использованы совместно с
|
||
<ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink>
|
||
или
|
||
<ulink url="http://dvdauthor.sourceforge.net/">dvdauthor</ulink>
|
||
для создания дисков, которые будут воспроизводиться на стандартном видео
|
||
проигрывателе.
|
||
</para>
|
||
|
||
<para>
|
||
DVD, SVCD, и VCD форматы обладают жесткими ограничениями. Доступен только небольшой выбор
|
||
размеров и пропорций кодируемого изображения.
|
||
Если Ваш фильм пока не удовлетворяет этим ограничениям, придется изображение
|
||
масштабировать, обрезать или добавлять к нему черные полосы, чтобы добиться
|
||
совместимости.
|
||
</para>
|
||
|
||
|
||
<sect3 id="menc-feat-vcd-dvd-constraints-resolution">
|
||
<title>Ограничения форматов</title>
|
||
|
||
<informaltable frame="all">
|
||
<tgroup cols="9">
|
||
<thead>
|
||
<row>
|
||
<entry>Формат</entry>
|
||
<entry>Разрешение</entry>
|
||
<entry>Вид. Кодек</entry>
|
||
<entry>Вид. Битпоток</entry>
|
||
<entry>Дискретизация</entry>
|
||
<entry>Ауд. Кодек</entry>
|
||
<entry>Ауд. Битпоток</entry>
|
||
<entry>FPS</entry>
|
||
<entry>Пропорции</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry>NTSC DVD</entry>
|
||
<entry>720x480, 704x480, 352x480, 352x240</entry>
|
||
<entry>MPEG-2</entry>
|
||
<entry>9800 кбит/с</entry>
|
||
<entry>48000 Гц</entry>
|
||
<entry>AC-3,PCM</entry>
|
||
<entry>1536 кбит/с (макс.)</entry>
|
||
<entry>30000/1001, 24000/1001</entry>
|
||
<entry>4:3, 16:9 (только для 720x480)</entry>
|
||
</row>
|
||
<row>
|
||
<entry>NTSC DVD</entry>
|
||
<entry>352x240<footnote id='fn-rare-resolutions'><para>
|
||
Эти разрешения редко используются для DVD, поскольку имеют довольно низкое
|
||
качество.</para></footnote></entry>
|
||
<entry>MPEG-1</entry>
|
||
<entry>1856 кбит/с</entry>
|
||
<entry>48000 Гц</entry>
|
||
<entry>AC-3,PCM</entry>
|
||
<entry>1536 кбит/с (макс.)</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 кбит/с</entry>
|
||
<entry>44100 Гц</entry>
|
||
<entry>MP2</entry>
|
||
<entry>384 кбит/с (макс.)</entry>
|
||
<entry>30000/1001</entry>
|
||
<entry>4:3</entry>
|
||
</row>
|
||
<row>
|
||
<entry>NTSC VCD</entry>
|
||
<entry>352x240</entry>
|
||
<entry>MPEG-1</entry>
|
||
<entry>1150 кбит/с</entry>
|
||
<entry>44100 Гц</entry>
|
||
<entry>MP2</entry>
|
||
<entry>224 кбит/с</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 кбит/с</entry>
|
||
<entry>48000 Гц</entry>
|
||
<entry>MP2,AC-3,PCM</entry>
|
||
<entry>1536 кбит/с (макс.)</entry>
|
||
<entry>25</entry>
|
||
<entry>4:3, 16:9 (только для 720x576)</entry>
|
||
</row>
|
||
<row>
|
||
<entry>PAL DVD</entry>
|
||
<entry>352x288<footnoteref linkend='fn-rare-resolutions'/></entry>
|
||
<entry>MPEG-1</entry>
|
||
<entry>1856 кбит/с</entry>
|
||
<entry>48000 Гц</entry>
|
||
<entry>MP2,AC-3,PCM</entry>
|
||
<entry>1536 кбит/с (макс.)</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 кбит/с</entry>
|
||
<entry>44100 Гц</entry>
|
||
<entry>MP2</entry>
|
||
<entry>384 кбит/с (макс.)</entry>
|
||
<entry>25</entry>
|
||
<entry>4:3</entry>
|
||
</row>
|
||
<row>
|
||
<entry>PAL VCD</entry>
|
||
<entry>352x288</entry>
|
||
<entry>MPEG-1</entry>
|
||
<entry>1152 кбит/с</entry>
|
||
<entry>44100 Гц</entry>
|
||
<entry>MP2</entry>
|
||
<entry>224 кбит/с</entry>
|
||
<entry>25</entry>
|
||
<entry>4:3</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
|
||
<para>
|
||
Если Ваш фильм имеет пропорции 2.35:1 (большинство современных фильмов с обилием движения),
|
||
для создания DVD или VCD придется добавить черные полосы или обрезать фильм до
|
||
16:9. Добавляя черные полосы, пытайтесь выровнять их размеры на границу в 16 пикселов,
|
||
чтобы минимизировать влияние на производительность кодирования.
|
||
К счастью, DVD имеет достаточно избыточный битпоток, чтобы не сильно
|
||
беспокоиться об эффективности кодирования, но SVCD и VCD весьма ограничены в
|
||
битпотоке и требуют определенных усилий для достижения приемлемого качества.
|
||
</para>
|
||
</sect3>
|
||
|
||
|
||
<sect3 id="menc-feat-vcd-dvd-constraints-gop">
|
||
<title>Ограничения на размер GOP</title>
|
||
|
||
<para>
|
||
DVD, VCD, и SVCD также ограничивают Вас относительно низкими размерами
|
||
GOP (Group of Pictures, Группа Изображений).
|
||
Для материала с 30 fps максимальный допустимый размер GOP равен 18.
|
||
Для 25 или 24 fps, максимум равен 15.
|
||
Размер GOP устанавливается опцией <option>keyint</option>.
|
||
</para>
|
||
</sect3>
|
||
|
||
|
||
<sect3 id="menc-feat-vcd-dvd-constraints-bitrate">
|
||
<title>Ограничения на битпоток</title>
|
||
|
||
<para>
|
||
VCD видео должно быть CBR с 1152 кбит/с.
|
||
Это сильное ограничение усугубляется, к тому же, чрезвычайно низким размером vbv
|
||
буфера, равным 327 килобит.
|
||
SVCD допускает различные значения видео битпотока вплоть до 2500 кбит/с и не
|
||
так сильно стесняющий размер vbv буфера, равный 917 килобит.
|
||
У DVD видео битпоток может свободно меняться вплоть до 9800 kbps (хотя обычный
|
||
поток равен примерно половине этого значения), а размер vbv буфера равен 1835
|
||
килобит.
|
||
</para>
|
||
</sect3>
|
||
</sect2>
|
||
|
||
<!-- ********** -->
|
||
|
||
<sect2 id="menc-feat-vcd-dvd-output">
|
||
<title>Опции вывода</title>
|
||
|
||
<para>
|
||
У <application>MEncoder</application> есть опции, управляющие выходным форматом.
|
||
Используя их, можно дать указание создать файл корректного типа.
|
||
</para>
|
||
|
||
<para>
|
||
Для VCD и SVCD опции называются xvcd и xsvcd, потому что они являются
|
||
расширенными форматами. Они не полностью совместимы, в основном, потому что не
|
||
содержат смещений развёртки. Если нужно создать образ SVCD, следует передать
|
||
выходной файл программе
|
||
<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 (с временными метками на каждом кадре, если возможно):
|
||
<screen>-of mpeg -mpegopts format=dvd:tsaf</screen>
|
||
</para>
|
||
|
||
<para>
|
||
DVD с NTSC Pullup:
|
||
<screen>-of mpeg -mpegopts format=dvd:tsaf:telecine -ofps 24000/1001</screen>
|
||
Это делает возможным кодирование 24000/1001 fps построчного содержимого с
|
||
частотой 30000/1001 fps, с одновременным сохранением совместимости с DVD.
|
||
</para>
|
||
|
||
|
||
<sect3 id="menc-feat-vcd-dvd-output-aspect">
|
||
<title>Пропорции</title>
|
||
<para>
|
||
Аргумент aspect в <option>-lavcopts</option> используется для кодирования
|
||
коэффициента пропорций файла.
|
||
Коэффициент пропорций используется в процессе воспроизведения для восстановления
|
||
правильного размера видео.
|
||
</para>
|
||
|
||
<para>
|
||
16:9 or "Широкоэкранный"
|
||
<screen>-lavcopts aspect=16/9</screen>
|
||
</para>
|
||
|
||
<para>
|
||
4:3 or "Полноэкранный"
|
||
<screen>-lavcopts aspect=4/3</screen>
|
||
</para>
|
||
|
||
<para>
|
||
2.35:1 or "Кинематографический" NTSC
|
||
<screen>-vf scale=720:368,expand=720:480 -lavcopts aspect=16/9</screen>
|
||
Для вычисления правильного размера масштабирования используйте расширенную
|
||
ширину NTSC 854/2.35 = 368
|
||
</para>
|
||
|
||
<para>
|
||
2.35:1 or "Кинематографический" PAL
|
||
<screen>-vf scale=720:432,expand=720:576 -lavcopts aspect=16/9</screen>
|
||
Для вычисления правильного размера масштабирования используйте расширинную
|
||
ширину PAL 1024/2.35 = 432
|
||
</para>
|
||
</sect3>
|
||
|
||
|
||
<sect3 id="menc-feat-vcd-dvd-a-v-sync">
|
||
<title>Сохранение A/V синхронизации</title>
|
||
|
||
<para>
|
||
Для того, чтобы сохранять аудио/видео синхронизацию на протяжении всего
|
||
кодирования, <application>MEncoder</application> должен выбрасывать или
|
||
дублировать кадры. Это довольно неплохо работает при мультиплексировании в AVI
|
||
файл, но с другими мультиплексорами, такими как MPEG, почти гарантировано
|
||
приведет к нарушению A/V синхронизации. Для избежания подобных проблем,
|
||
необходимо добавить видео фильтр <option>harddup</option> в конец цепочки
|
||
фильтров. Дополнительную техническую информацию о <option>harddup</option> можно
|
||
найти в разделе
|
||
<link linkend="menc-feat-dvd-mpeg4-muxing-filter-issues">Улучшение
|
||
мультиплексирования и надежности A/V синхронизации</link> или в man руководстве.
|
||
</para>
|
||
</sect3>
|
||
|
||
|
||
<sect3 id="menc-feat-vcd-dvd-output-srate">
|
||
<title>Преобразование частоты дискретизации</title>
|
||
|
||
<para>
|
||
Если частота дискретизации в оригинальном файле не совпадает с требуемой в
|
||
целевом формате, необходимо преобразование. Его можно осуществить, совместно
|
||
используя опцию <option>-srate</option> и аудио фильтр<option>-af lavcresample</option>.
|
||
</para>
|
||
|
||
<para>
|
||
DVD:
|
||
<screen>-srate 48000 -af lavcresample=48000</screen>
|
||
</para>
|
||
|
||
<para>
|
||
VCD и SVCD:
|
||
<screen>-srate 44100 -af lavcresample=44100</screen>
|
||
</para>
|
||
</sect3>
|
||
</sect2>
|
||
|
||
<!-- ********** -->
|
||
|
||
<sect2 id="menc-feat-vcd-dvd-lavc">
|
||
<title>Использование libavcodec для VCD/SVCD/DVD кодирования</title>
|
||
|
||
<sect3 id="menc-feat-vcd-dvd-lavc-intro">
|
||
<title>Введение</title>
|
||
|
||
<para>
|
||
Используя соответствующие опции, можно применять
|
||
<systemitem class="library">libavcodec</systemitem> для создания VCD/SVCD/DVD
|
||
совместимого видео.
|
||
</para>
|
||
</sect3>
|
||
|
||
|
||
<sect3 id="menc-feat-vcd-dvd-lavc-options">
|
||
<title>lavcopts</title>
|
||
|
||
<para>
|
||
Это список полей в <option>-lavcopts</option>, которые может потребоваться
|
||
изменить, чтобы создать совместимый фильм для VCD, SVCD или DVD:
|
||
</para>
|
||
|
||
<itemizedlist>
|
||
<listitem><para>
|
||
<emphasis role="bold">acodec</emphasis>:
|
||
<option>mp2</option> для VCD, SVCD, или PAL DVD;
|
||
<option>ac3</option> наиболее часто используется для DVD.
|
||
Для DVD также может использоваться PCM, но это, по большей части, бесполезная
|
||
трата свободного места. Имейте в виду, что MP3 аудио не совместимо ни с одним
|
||
из этих форматов, но, как бы то ни было, часто проигрыватели не испытывают
|
||
никаких проблем с его воспроизведением.
|
||
</para></listitem>
|
||
<listitem><para>
|
||
<emphasis role="bold">abitrate</emphasis>:
|
||
224 для VCD; вплоть до 384 для SVCD; вплоть до 1536 для DVD, но
|
||
распространенным является диапазон значений от 192 кбит/с для стерео до 384
|
||
кбит/с для 5.1 звука.
|
||
</para></listitem>
|
||
<listitem><para>
|
||
<emphasis role="bold">vcodec</emphasis>:
|
||
<option>mpeg1video</option> для VCD;
|
||
<option>mpeg2video</option> для SVCD;
|
||
<option>mpeg2video</option> обычно используется для DVD, но Вы также можете
|
||
использовать
|
||
<option>mpeg1video</option> для CIF разрешений.
|
||
</para></listitem>
|
||
<listitem><para>
|
||
<emphasis role="bold">keyint</emphasis>:
|
||
Используется для установки размера GOP.
|
||
18 для 30fps материала или 15 для 25/24 fps материала.
|
||
Коммерческие изготовители, похоже, предпочитают значение интервала ключевых
|
||
кадров, равное 12. Можно значительно увеличить это значение и все еще
|
||
сохранять совместимость с большинством проигрывателей.
|
||
<option>keyint</option> равное 25 не должно вызывать никаких проблем.
|
||
</para></listitem>
|
||
<listitem><para>
|
||
<emphasis role="bold">vrc_buf_size</emphasis>:
|
||
327 для VCD, 917 для SVCD и 1835 ддя DVD.
|
||
</para></listitem>
|
||
<listitem><para>
|
||
<emphasis role="bold">vrc_minrate</emphasis>:
|
||
1152 для VCD. Может не указываться для SVCD и DVD.
|
||
</para></listitem>
|
||
<listitem><para>
|
||
<emphasis role="bold">vrc_maxrate</emphasis>:
|
||
1152 для VCD; 2500 для SVCD; 9800 для DVD.
|
||
Для SVCD и DVD Вы, возможно, пожелаете использовать меньшие значения в
|
||
зависимости от Ваших личных требований и предпочтений.
|
||
</para></listitem>
|
||
<listitem><para>
|
||
<emphasis role="bold">vbitrate</emphasis>:
|
||
1152 для VCD;
|
||
вплоть до 2500 для SVCD;
|
||
вплоть до 9800 для DVD.
|
||
Для двух последний форматов, vbitrate следует установить на основании личных
|
||
предпочтений.
|
||
Например, если Вы настаиваете на размещении 20 или около того часов видео на
|
||
DVD, можете использовать vbitrate=400.
|
||
Качество получившегося видео, возможно, будет довольно плохим.
|
||
Если Вы пытаетесь выжать максимально возможное качество на DVD, используйте
|
||
vbitrate=9800, но имейте в виду, что это ограничит Вас менее чем одним часом
|
||
видео на однослойном DVD.
|
||
</para></listitem>
|
||
<listitem><para>
|
||
<emphasis role="bold">vstrict</emphasis>:
|
||
<option>vstrict</option>=0 следует использовать для создания DVD.
|
||
Без этой опции <application>MEncoder</application> создает поток, который не
|
||
может быть корректно декодирован некоторыми аппаратными DVD проигрывателями.
|
||
</para></listitem>
|
||
</itemizedlist>
|
||
</sect3>
|
||
|
||
|
||
<sect3 id="menc-feat-vcd-dvd-lavc-examples">
|
||
<title>Примеры</title>
|
||
|
||
<para>
|
||
Это обычный минимальный набор <option>-lavcopts</option> для кодирования видео:
|
||
</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>Расширенные опции</title>
|
||
|
||
<para>
|
||
Для достижения более высокого качества кодирования, Вы также можете
|
||
добавить опции lavcopts, улучшающие качество, такие как
|
||
<option>trell</option>, <option>mbd=2</option> и другие.
|
||
Обратите внимание, что <option>qpel</option> и <option>v4mv</option>,
|
||
часто полезные с MPEG-4, не применимы к MPEG-1 или MPEG-2.
|
||
Также, если Вы хотите выполнить очень высококачественное кодирование
|
||
DVD, может быть полезным добавление <option>dc=10</option> в lavcopts.
|
||
Это может помочь подавить появление блоков в однородно окрашенных
|
||
областях. Подводя итог, вот пример настроек lavcopts для
|
||
высококачественного 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>Кодирование звука</title>
|
||
|
||
<para>
|
||
VCD и SVCD поддерживают звук MPEG-1 layer II, используя одну из
|
||
<systemitem class="library">toolame</systemitem>,
|
||
<systemitem class="library">twolame</systemitem>,
|
||
или MP2 <systemitem class="library">libavcodec</systemitem> кодировщик.
|
||
libavcodec MP2 не так хорош, как остальные две библиотеки, однако, он должен
|
||
быть всегда доступен для использования.
|
||
VCD поддерживает только звук с постоянным битпотоком (CBR), в то время как SVCD
|
||
также поддерживает и переменный (VBR). Будьте осторожны, используя VBR,
|
||
поскольку некоторые плохие аппаратные проигрыватели могут не очень хорошо его
|
||
поддерживать.
|
||
</para>
|
||
|
||
<para>
|
||
Для DVD звука используется AC-3 кодек из <systemitem class="library">libavcodec</systemitem>.
|
||
</para>
|
||
|
||
|
||
<sect3 id="menc-feat-vcd-dvd-audio-toolame">
|
||
<title>toolame</title>
|
||
|
||
<para>
|
||
Для VCD и SVCD:
|
||
<screen>-oac toolame -toolameopts br=224</screen>
|
||
</para>
|
||
</sect3>
|
||
|
||
|
||
<sect3 id="menc-feat-vcd-dvd-audio-twolame">
|
||
<title>twolame</title>
|
||
|
||
<para>
|
||
Для VCD и SVCD:
|
||
<screen>-oac twolame -twolameopts br=224</screen>
|
||
</para>
|
||
</sect3>
|
||
|
||
|
||
<sect3 id="menc-feat-vcd-dvd-audio-lavc">
|
||
<title>libavcodec</title>
|
||
|
||
<para>
|
||
Для 2 канального DVD звука:
|
||
<screen>-oac lavc -lavcopts acodec=ac3:abitrate=192</screen>
|
||
</para>
|
||
|
||
<para>
|
||
Для DVD с 5.1 звуком:
|
||
<screen>-channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384</screen>
|
||
</para>
|
||
|
||
<para>
|
||
Для VCD и SVCD:
|
||
<screen>-oac lavc -lavcopts acodec=mp2:abitrate=224</screen>
|
||
</para>
|
||
</sect3>
|
||
</sect2>
|
||
|
||
<!-- ********** -->
|
||
|
||
<sect2 id="menc-feat-vcd-dvd-all">
|
||
<title>Собирая все вместе</title>
|
||
|
||
<para>
|
||
Этот раздел демонстрирует некоторые полные команды для создания VCD/SVCD/DVD
|
||
совместимого видео.
|
||
</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>фильм.mpg</replaceable> <replaceable>фильм.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>фильм.mpg</replaceable> <replaceable>фильм.avi</replaceable>
|
||
</screen>
|
||
</para>
|
||
</sect3>
|
||
|
||
|
||
<sect3 id="menc-feat-vcd-dvd-all-pal-ac3-copy">
|
||
<title>PAL AVI, содержащий AC-3 звук, в DVD</title>
|
||
|
||
<para>
|
||
Если исходный материал уже содержит AC-3 звук, используйте -oac copy вместо
|
||
перекодирования.
|
||
<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>фильм.mpg</replaceable> <replaceable>фильм.avi</replaceable>
|
||
</screen>
|
||
</para>
|
||
</sect3>
|
||
|
||
|
||
<sect3 id="menc-feat-vcd-dvd-all-ntsc-ac3-copy">
|
||
<title>NTSC AVI, содержащий AC-3 звук, в DVD</title>
|
||
|
||
<para>
|
||
Если исходный материал уже содержит AC-3 звук и является 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>фильм.mpg</replaceable> <replaceable>фильм.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:aspect=16/9 -ofps 25 \
|
||
-o <replaceable>фильм.mpg</replaceable> <replaceable>фильм.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:aspect=16/9 -ofps 30000/1001 \
|
||
-o <replaceable>фильм.mpg</replaceable> <replaceable>фильм.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:aspect=16/9 -ofps 25 \
|
||
-o <replaceable>фильм.mpg</replaceable> <replaceable>фильм.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:aspect=16/9 -ofps 30000/1001 \
|
||
-o <replaceable>фильм.mpg</replaceable> <replaceable>фильм.avi</replaceable>
|
||
</screen>
|
||
</para>
|
||
</sect3>
|
||
</sect2>
|
||
</sect1>
|
||
</chapter>
|