1
0
mirror of https://github.com/mpv-player/mpv synced 2025-01-02 21:12:23 +00:00

Translation of menc-feat-enc-libavcodec sect1 in encoding-guide.xml

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21688 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
voroshil 2006-12-19 17:58:59 +00:00
parent 18904be4df
commit a650f2a9d7

View File

@ -2550,25 +2550,26 @@ duration/location of each type.
<sect1 id="menc-feat-enc-libavcodec">
<title>Encoding with the <systemitem class="library">libavcodec</systemitem>
codec family</title>
<title>Кодирование семейством кодеков <systemitem class="library">libavcodec</systemitem>
</title>
<para>
<link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>
provides simple encoding to a lot of interesting video and audio formats.
You can encode to the following codecs (more or less up to date):
предоставляет возможность простого кодирования в множество интересных видео и
аудио форматов. Вы можете кодировать следующими кодеками (более или менее
свежий список):
</para>
<!-- ********** -->
<sect2 id="menc-feat-enc-libavcodec-video-codecs">
<title><systemitem class="library">libavcodec</systemitem>'s video codecs</title>
<title>Видео кодеки <systemitem class="library">libavcodec</systemitem></title>
<para>
<informaltable frame="all">
<tgroup cols="2">
<thead>
<row><entry>Video codec name</entry><entry>Description</entry></row>
<row><entry>Название видео кодека</entry><entry>Описание</entry></row>
</thead>
<tbody>
<row>
@ -2577,7 +2578,7 @@ You can encode to the following codecs (more or less up to date):
</row>
<row>
<entry>ljpeg</entry>
<entry>lossless JPEG</entry>
<entry>JPEG без потери качества</entry>
</row>
<row>
<entry>h261</entry>
@ -2593,23 +2594,24 @@ You can encode to the following codecs (more or less up to date):
</row>
<row>
<entry>mpeg4</entry>
<entry>ISO standard MPEG-4 (DivX, Xvid compatible)</entry>
<entry>ISO стандарт MPEG-4 (DivX, Xvid совместимый)</entry>
</row>
<row>
<entry>msmpeg4</entry>
<entry>pre-standard MPEG-4 variant by MS, v3 (AKA DivX3)</entry>
<entry>вариант пре-стандарта MPEG-4 от MS, v3 (он же DivX3)</entry>
</row>
<row>
<entry>msmpeg4v2</entry>
<entry>pre-standard MPEG-4 by MS, v2 (used in old ASF files)</entry>
<entry>вариант пре-стандарта MPEG-4 от MS, v2 (используемый в старых ASF
файлах)</entry>
</row>
<row>
<entry>wmv1</entry>
<entry>Windows Media Video, version 1 (AKA WMV7)</entry>
<entry>Windows Media Video, версия 1 (он же WMV7)</entry>
</row>
<row>
<entry>wmv2</entry>
<entry>Windows Media Video, version 2 (AKA WMV8)</entry>
<entry>Windows Media Video, версия 2 (он же WMV8)</entry>
</row>
<row>
<entry>rv10</entry>
@ -2621,35 +2623,35 @@ You can encode to the following codecs (more or less up to date):
</row>
<row>
<entry>mpeg1video</entry>
<entry>MPEG-1 video</entry>
<entry>MPEG-1 видео</entry>
</row>
<row>
<entry>mpeg2video</entry>
<entry>MPEG-2 video</entry>
<entry>MPEG-2 видео</entry>
</row>
<row>
<entry>huffyuv</entry>
<entry>lossless compression</entry>
<entry>сжатие без потерь</entry>
</row>
<row>
<entry>asv1</entry>
<entry>ASUS Video v1</entry>
<entry>ASUS Видео v1</entry>
</row>
<row>
<entry>asv2</entry>
<entry>ASUS Video v2</entry>
<entry>ASUS Видео v2</entry>
</row>
<row>
<entry>ffv1</entry>
<entry>FFmpeg's lossless video codec</entry>
<entry>видео кодек без потерь из FFmpeg</entry>
</row>
<row>
<entry>svq1</entry>
<entry>Sorenson video 1</entry>
<entry>Sorenson видео 1</entry>
</row>
<row>
<entry>flv</entry>
<entry>Sorenson H.263 used in Flash Video</entry>
<entry>Sorenson H.263 используемый в Flash Видео</entry>
</row>
<row>
<entry>dvvideo</entry>
@ -2657,19 +2659,19 @@ You can encode to the following codecs (more or less up to date):
</row>
<row>
<entry>snow</entry>
<entry>FFmpeg's experimental wavelet-based codec</entry>
<entry>экспериментальный кодек FFmpeg, основанный на вейвлетах</entry>
</row>
</tbody>
</tgroup>
</informaltable>
The first column contains the codec names that should be passed after the
<literal>vcodec</literal> config, like:
Первый столбец содержит названия кодеков, которые следует указывать после
<literal>vcodec</literal> опции, например:
<option>-lavcopts vcodec=msmpeg4</option>
</para>
<informalexample><para>
An example with MJPEG compression:
Пример с MJPEG сжатием:
<screen>
mencoder dvd://2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy
</screen>
@ -2679,12 +2681,12 @@ mencoder dvd://2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy
<!-- ********** -->
<sect2 id="menc-feat-enc-libavcodec-audio-codecs">
<title><systemitem class="library">libavcodec</systemitem>'s audio codecs</title>
<title>Аудио кодеки <systemitem class="library">libavcodec</systemitem></title>
<para>
<informaltable frame="all">
<tgroup cols="2">
<thead>
<row><entry>Audio codec name</entry><entry>Description</entry></row>
<row><entry>Название аудио кодека</entry><entry>Описание</entry></row>
</thead>
<tbody>
<row>
@ -2693,174 +2695,179 @@ mencoder dvd://2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy
</row>
<row>
<entry>ac3</entry>
<entry>AC3, AKA Dolby Digital</entry>
<entry>AC3, он же Dolby Digital</entry>
</row>
<row>
<entry>adpcm_ima_wav</entry>
<entry>IMA adaptive PCM (4 bits per sample, 4:1 compression)</entry>
<entry>IMA адаптивный PCM (4 бита на сэмпл, сжатие 4:1)</entry>
</row>
<row>
<entry>sonic</entry>
<entry>experimental lossy/lossless codec</entry>
<entry>экспериментальный кодек с сжатием с/без потерь</entry>
</row>
</tbody>
</tgroup>
</informaltable>
The first column contains the codec names that should be passed after the
<literal>acodec</literal> option, like: <option>-lavcopts acodec=ac3</option>
Первый столбец содержит названия кодеков, которые следует указывать после
<literal>acodec</literal> опции, например: <option>-lavcopts acodec=ac3</option>
</para>
<informalexample><para>
An example with AC3 compression:
Пример с AC3 сжатием:
<screen>
mencoder dvd://2 -o title2.avi -oac lavc -lavcopts acodec=ac3 -ovc copy
</screen>
</para></informalexample>
<para>
Contrary to <systemitem class="library">libavcodec</systemitem>'s video
codecs, its audio codecs do not make a wise usage of the bits they are
given as they lack some minimal psychoacoustic model (if at all)
which most other codec implementations feature.
However, note that all these audio codecs are very fast and work
out-of-the-box everywhere <application>MEncoder</application> has been
compiled with <systemitem class="library">libavcodec</systemitem> (which
is the case most of time), and do not depend on external libraries.
В отличие от видео кодеков <systemitem class="library">libavcodec</systemitem>,
ее аудио кодеки не очень разумно используют отданные им биты, в силу
неудачной реализации некоторой минимальной психоакустической модели (если она
вообще есть), которая является характерной чертой большинства остальных реализаций кодеков.
Однако заметьте, что все эти аудио кодеки очень быстры и работают прямо из
коробки везде, где <application>MEncoder</application> скомпилирован с
<systemitem class="library">libavcodec</systemitem> (а почти всегда так оно и
есть), и не зависят от внешних библиотек.
</para>
</sect2>
<!-- ********** -->
<sect2 id="menc-feat-dvd-mpeg4-lavc-encoding-options">
<title>Encoding options of libavcodec</title>
<title>Опции кодирования libavcodec</title>
<para>
Ideally, you would probably want to be able to just tell the encoder to switch
into "high quality" mode and move on.
That would probably be nice, but unfortunately hard to implement as different
encoding options yield different quality results depending on the source material.
That is because compression depends on the visual properties of the video
in question.
For example, anime and live action have very different properties and
thus require different options to obtain optimum encoding.
The good news is that some options should never be left out, like
<option>mbd=2</option>, <option>trell</option>, and <option>v4mv</option>.
See below for a detailed description of common encoding options.
В идеале, вы, наверное, хотели бы иметь возможность просто сказать кодировщику
переключиться на "высокое качество" и начать кодирование.
Это было бы замечательно, но, к сожалению, трудно реализуемо, поскольку
различные опции кодирования, в зависимости от исходного материала, дают в результате
различное качество.
Так происходит потому, что сжатие зависит от визуальных свойств видео.
Например, аниме и живая съемка имеют сильно отличающиеся свойства и,
поэтому, требуют разные опции для получения оптимального результата.
Хорошая новость состоит в том, что некоторые опции, такие как
<option>mbd=2</option>, <option>trell</option>, и <option>v4mv</option> могут
быть опущены.
Детальное описание основных опций кодирования смотрите ниже.
</para>
<itemizedlist>
<title>Options to adjust:</title>
<title>Опции для настройки:</title>
<listitem><para>
<emphasis role="bold">vmax_b_frames</emphasis>: 1 or 2 is good, depending on
the movie.
Note that if you need to have your encode be decodable by DivX5, you
need to activate closed GOP support, using
<systemitem class="library">libavcodec</systemitem>'s <option>cgop</option>
option, but you need to deactivate scene detection, which
is not a good idea as it will hurt encode efficiency a bit.
<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>: helps in high-motion scenes.
On some videos, vmax_b_frames may hurt quality, but vmax_b_frames=2 along
with vb_strategy=1 helps.
<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>: motion search range. Bigger is better
and slower.
Negative values are a completely different scale.
Good values are -1 for a fast encode, or 2-4 for slower.
<emphasis role="bold">dia</emphasis>: диапазон поиска движения. Большие
значения лучше и медленнее.
Отрицательные значения - это совершенно другая шкала.
Хорошими значениями являются -1 для быстрого кодирования или 2-4 - для
медленного.
</para></listitem>
<listitem><para>
<emphasis role="bold">predia</emphasis>: motion search pre-pass.
Not as important as dia. Good values are 1 (default) to 4. Requires preme=2
to really be useful.
<emphasis role="bold">predia</emphasis>: предпроход поиска движения.
Не так важен, как dia. Хорошими являются значения от 1 (по-умолчанию) до 4.
Требует preme=2, чтобы быть действительно полезным.
</para></listitem>
<listitem><para>
<emphasis role="bold">cmp, subcmp, precmp</emphasis>: Comparison function for
motion estimation.
Experiment with values of 0 (default), 2 (hadamard), 3 (dct), and 6 (rate
distortion).
0 is fastest, and sufficient for precmp.
For cmp and subcmp, 2 is good for anime, and 3 is good for live action.
6 may or may not be slightly better, but is slow.
<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>: Number of motion predictors to
take from the previous frame.
1-3 or so help at little speed cost.
Higher values are slow for no extra gain.
<emphasis role="bold">last_pred</emphasis>: Количество предсказателей
движения, берущихся из предыдущего кадра.
1-3 или около того помогут вам ценой небольшой потери в скорости.
Большие значения медленны и не дают дополнительного улучшения.
</para></listitem>
<listitem><para>
<emphasis role="bold">cbp, mv0</emphasis>: Controls the selection of macroblocks.
Small speed cost for small quality gain.
<emphasis role="bold">cbp, mv0</emphasis>: Контролирует выбор макроблоков.
Незначительное снижение скорости с небольшим приростом в качестве.
</para></listitem>
<listitem><para>
<emphasis role="bold">qprd</emphasis>: adaptive quantization based on the
macroblock's complexity.
May help or hurt depending on the video and other options.
This can cause artifacts unless you set vqmax to some reasonably small value
(6 is good, maybe as low as 4); vqmin=1 should also help.
<emphasis role="bold">qprd</emphasis>: адаптивное квантование, основанное на
сложности макроблока.
Может сделать лучше или хуже в зависимости от видео и других опций.
Она также может привести к появлению артефактов, если вы не установите vqmax в
некоторое разумно малое значение
(хорошо - 6, может быть даже 4); vqmin=1 также может помочь.
</para></listitem>
<listitem><para>
<emphasis role="bold">qns</emphasis>: very slow, especially when combined
with qprd.
This option will make the encoder minimize noise due to compression
artifacts instead of making the encoded video strictly match the source.
Do not use this unless you have already tweaked everything else as far as it
will go and the results still are not good enough.
<emphasis role="bold">qns</emphasis>: очень медленно, особенно в комбинации с qprd.
Эта опция укажет кодировщику минимизировать шум от артефактов сжатия вместо
создания закодированного видео, полностью идентичного исходному.
Не используйте ее, если только не перепробовали настроить все, что было
возможно, а результат все таки недостаточно хорош.
</para></listitem>
<listitem><para>
<emphasis role="bold">vqcomp</emphasis>: Tweak ratecontrol.
What values are good depends on the movie.
You can safely leave this alone if you want.
Reducing vqcomp puts more bits on low-complexity scenes, increasing it puts
them on high-complexity scenes (default: 0.5, range: 0-1. recommended range:
0.5-0.7).
<emphasis role="bold">vqcomp</emphasis>: Настраивает управление битпотоком.
Какие значения являются хорошими зависит от фильма.
Если хотите, можете без опаски оставить значение по-умолчанию.
Уменьшение vqcomp отдает больше бит в сцены с низкой сложностью, увеличение
его передает биты в очень сложные сцены (по-умолчанию: 0.5, диапазон: 0-1.
рекомендуемый диапазон: 0.5-0.7).
</para></listitem>
<listitem><para>
<emphasis role="bold">vlelim, vcelim</emphasis>: Sets the single coefficient
elimination threshold for luminance and chroma planes.
These are encoded separately in all MPEG-like algorithms.
The idea behind these options is to use some good heuristics to determine
when the change in a block is less than the threshold you specify, and in
such a case, to just encode the block as "no change".
This saves bits and perhaps speeds up encoding. vlelim=-4 and vcelim=9
seem to be good for live movies, but seem not to help with anime;
when encoding animation, you should probably leave them unchanged.
<emphasis role="bold">vlelim, vcelim</emphasis>: Устанавливает порог
отбрасывания одиночного коэффициента для яркостной и цветностной плоскостей.
Они кодируются независимо во всех MPEG-похожих алгоритмах.
Идея этих опций заключается в использованию некоторой хорошей эвристики для
определения момента, когда изменения в блоке ниже указанного вами порога, и что его
стоит кодировать как "блок без изменений".
Это сохраняет быти и, возможно, ускоряет кодирование.
vlelim=-4 и vcelim=9 выглядят неплохими для живой съемки, но, скорее всего, не
помогут для аниме; при кодировании анимации вам, возможно, следует оставить
эту опцию неизменной.
</para></listitem>
<listitem><para>
<emphasis role="bold">qpel</emphasis>: Quarter pixel motion estimation.
MPEG-4 uses half pixel precision for its motion search by default,
therefore this option comes with an overhead as more information will be
stored in the encoded file.
The compression gain/loss depends on the movie, but it is usually not very
effective on anime.
qpel always incurs a significant cost in CPU decode time (+25% in
practice).
<emphasis role="bold">qpel</emphasis>: Четверьтпиксельная оценка движения.
По-умолчанию, MPEG-4 использует полупиксельную точность для оценки движения,
следовательно, эта опция вносит дополнительные накладные рахсоды, поскольку
сохраняет больше информации в закодированном файле.
Улучшение/ухудшение степени сжатия зависит от фильма, но обычно эта опция не
очень эффективна для аниме.
qpel всегда вносит значительный вклад в CPU время декодирования (+25% на
практике).
</para></listitem>
<listitem><para>
<emphasis role="bold">psnr</emphasis>: does not affect the actual encoding,
but writes a log file giving the type/size/quality of each frame, and
prints a summary of PSNR (Peak Signal to Noise Ratio) at the end.
<emphasis role="bold">psnr</emphasis>: не влияет на сам процесс кодирования,
но выводит в файл тип/размер/качество каждого кадра, а также итоговый
PSNR (Peak Signal to Noise Ratio, пиковое отношения сигнала к шуму) в конце
прцесса.
</para></listitem>
</itemizedlist>
<itemizedlist>
<title>Options not recommended to play with:</title>
<title>Опции, с которыми играть не стоит:</title>
<listitem><para>
<emphasis role="bold">vme</emphasis>: The default is best.
<emphasis role="bold">vme</emphasis>: Значение по-умолчанию является лучшим.
</para></listitem>
<listitem><para>
<emphasis role="bold">lumi_mask, dark_mask</emphasis>: Psychovisual adaptive
quantization.
You do not want to play with those options if you care about quality.
Reasonable values may be effective in your case, but be warned this is very
subjective.
<emphasis role="bold">lumi_mask, dark_mask</emphasis>: Психовизуальное
адаптивное квантование.
Не стоит играть с этими опциями, если заботитесь о качестве.
Разумные значения могут быть эффективными в вашем случае, но имейте в виду,
что это весьма субъективно.
</para></listitem>
<listitem><para>
<emphasis role="bold">scplx_mask</emphasis>: Tries to prevent blocky
artifacts, but postprocessing is better.
<emphasis role="bold">scplx_mask</emphasis>: Пытается предотвратить появление
квадратиков, но постобработка делает это лучше.
</para></listitem>
</itemizedlist>
</sect2>
@ -2868,23 +2875,21 @@ See below for a detailed description of common encoding options.
<!-- ********** -->
<sect2 id="menc-feat-mpeg4-lavc-example-settings">
<title>Encoding setting examples</title>
<title>Примеры настроек кодирования</title>
<para>
The following settings are examples of different encoding
option combinations that affect the speed vs quality tradeoff
at the same target bitrate.
Следующие настройки - это примеры различных комбинаций опций кодирования,
которые влияют на соотношение скорость-качество при той же величине целевого
биптотока.
</para>
<para>
All the encoding settings were tested on a 720x448 @30000/1001 fps
video sample, the target bitrate was 900kbps, and the machine was an
AMD-64 3400+ at 2400 MHz in 64 bits mode.
Each encoding setting features the measured encoding speed (in
frames per second) and the PSNR loss (in dB) compared to the "very
high quality" setting.
Please understand that depending on your source, your machine type
and development advancements, you may get very different results.
Все настройки кодирования проверялись на тестовом видео 720x448 @30000/1001 fps
с целевым битпотоком 900кбит/сек, на машине AMD-64 3400+ с 2400 МГц и 64 битном режиме.
Для каждой настройки кодирования указаны измеренная скорость кодирования (в
кадрах в секунду) и потеря PSNR (в дБ) по сравнению с настройкой "очень высокое
качество". Поймите, пожалуйста, что в зависимости от вашего материала, типа
машины, прогресса разработки вы можете получить сильно отличающиеся результаты.
</para>
<para>
@ -2892,33 +2897,33 @@ and development advancements, you may get very different results.
<tgroup cols="4">
<thead>
<row>
<entry>Description</entry>
<entry>Encoding options</entry>
<entry>speed (in fps)</entry>
<entry>Relative PSNR loss (in dB)</entry>
<entry>Описание</entry>
<entry>Опции кодирования</entry>
<entry>скорость (в fps)</entry>
<entry>Относительная потеря PSNR (в дБ)</entry>
</row>
</thead>
<tbody>
<row>
<entry>Very high quality</entry>
<entry>Очень высокое качество</entry>
<entry><option>vcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2</option></entry>
<entry>6fps</entry>
<entry>0dB</entry>
</row>
<row>
<entry>High quality</entry>
<entry>Высокое качество</entry>
<entry><option>vcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo</option></entry>
<entry>15fps</entry>
<entry>-0.5dB</entry>
</row>
<row>
<entry>Fast</entry>
<entry>Быстрое</entry>
<entry><option>vcodec=mpeg4:mbd=2:trell:v4mv:turbo</option></entry>
<entry>42fps</entry>
<entry>-0.74dB</entry>
</row>
<row>
<entry>Realtime</entry>
<entry>Реального времени</entry>
<entry><option>vcodec=mpeg4:mbd=2:turbo</option></entry>
<entry>54fps</entry>
<entry>-1.21dB</entry>
@ -2932,24 +2937,25 @@ and development advancements, you may get very different results.
<!-- ********** -->
<sect2 id="custommatrices">
<title>Custom inter/intra matrices</title>
<title>Нестандартные inter/intra матрицы</title>
<para>
With this feature of
<link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>
you are able to set custom inter (I-frames/keyframes) and intra
(P-frames/predicted frames) matrices. It is supported by many of the codecs:
<systemitem>mpeg1video</systemitem> and <systemitem>mpeg2video</systemitem>
are reported as working.
С этой возможностью
<link linkend="ffmpeg"><systemitem
class="library">libavcodec</systemitem></link>,
вы можете установить нестандартные inter (I-кадры/ключевые) и intra
(P-кадры/предсказанные) матрицы. Это поддерживается многими кодеками:
В <systemitem>mpeg1video</systemitem> и <systemitem>mpeg2video</systemitem>
также заявлена поддержка.
</para>
<para>
A typical usage of this feature is to set the matrices preferred by the
<ulink url="http://www.kvcd.net/">KVCD</ulink> specifications.
Обычное использовани этой опции - установить матрицы, предпочитаемые
спецификациями <ulink url="http://www.kvcd.net/">KVCD</ulink>.
</para>
<para>
The <emphasis role="bold">KVCD "Notch" Quantization Matrix:</emphasis>
<emphasis role="bold">KVCD Матрица Квантования "Notch":</emphasis>
</para>
<para>
@ -2979,7 +2985,7 @@ Inter:
</para>
<para>
Usage:
Использование:
<screen>
mencoder <replaceable>input.avi</replaceable> -o <replaceable>output.avi</replaceable> -oac copy -ovc lavc \
-lavcopts inter_matrix=...:intra_matrix=...
@ -3002,86 +3008,87 @@ vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,\
<!-- ********** -->
<sect2 id="menc-feat-dvd-mpeg4-example">
<title>Example</title>
<title>Пример</title>
<para>
So, you have just bought your shiny new copy of Harry Potter and the Chamber
of Secrets (widescreen edition, of course), and you want to rip this DVD
so that you can add it to your Home Theatre PC. This is a region 1 DVD,
so it is NTSC. The example below will still apply to PAL, except you will
omit <option>-ofps 24000/1001</option> (because the output framerate is the
same as the input framerate), and of course the crop dimensions will be
different.
Итак, вы только что купили новенькую, блестящую копию фильма "Гарри Поттер и Тайная
Комната" (в широкоэкранном формате, конечно) и хотите сделать рип этого DVD так,
чтобы добавить его к Домашнему кинотеатру на PC. Это DVD первого региона,
поэтому NTSC. Пример ниже также применим и для PAL, за исключением того, что
надо будет опустить <option>-ofps 24000/1001</option> (поскольку частота кадров
на выходе такая же, как и на входе), и, конечно, границы обрезания будут
другими.
</para>
<para>
After running <option>mplayer dvd://1</option>, we follow the process
detailed in the section <link linkend="menc-feat-telecine">How to deal
with telecine and interlacing in NTSC DVDs</link> and discover that it is
24000/1001 fps progressive video, which means that we need not use an inverse
telecine filter, such as <option>pullup</option> or
<option>filmdint</option>.
После запуска <option>mplayer dvd://1</option> мы следуем процессу, детально
описанному в разделе <link linkend="menc-feat-telecine">Как работать с телесином
и черезстрочностью в NTSC DVD</link>, и выясняем, что это 24000/1001 fps
прогрессивное видео, а значит использовать фильтры обратного телесина,
такие как <option>pullup</option> или <option>filmdint</option> не нужно.
</para>
<para>
Next, we want to determine the appropriate crop rectangle, so we use the
cropdetect filter:
Далее, мы хотим определить верные границы обрезания, поэтому используем фильтр
cropdetect:
<screen>mplayer dvd://1 -vf cropdetect</screen>
Make sure you seek to a fully filled frame (such as a bright scene), and
you will see in <application>MPlayer</application>'s console output:
Убедитесь, что переместились к полностью заполненному кадру (например,
к светлой сцене), вы должны увидеть в консоли <application>MPlayer</application>:
<screen>crop area: X: 0..719 Y: 57..419 (-vf crop=720:362:0:58)</screen>
We then play the movie back with this filter to test its correctness:
Затем снова воспроизводим фильм с этим фильтром для проверки его корректности:
<screen>mplayer dvd://1 -vf crop=720:362:0:58</screen>
And we see that it looks perfectly fine. Next, we ensure the width and
height are a multiple of 16. The width is fine, however the height is
not. Since we did not fail 7th grade math, we know that the nearest
multiple of 16 lower than 362 is 352.
И убеждаемся, что все выглядит прекрасно. Далее, проверяем, что ширина и высота
делятся на 16. С шириной все в порядке, а с высотой - нет.
Поскольку мы не заваливали математику в 7-ом классе, то знаем, что ближайшее
целое, меньшее 362 и кратное 16, равно 352.
</para>
<para>
We could just use <option>crop=720:352:0:58</option>, but it would be nice
to take a little off the top and a little off the bottom so that we
retain the center. We have shrunk the height by 10 pixels, but we do not
want to increase the y-offset by 5-pixels since that is an odd number and
will adversely affect quality. Instead, we will increase the y-offset by
4 pixels:
Мы могли бы просто использовать <option>crop=720:352:0:58</option>, но будет
лучше отрезать понемногу от верха и низа, чтобы центр остался на месте.
Мы уменьшили высоту на 10 пикселов, но не хотим увеличивать смещение по y на 5,
поскольку это нечетное число и отрицательно скажется на качестве.
Вместо этого, мы увеличим y на 4:
<screen>mplayer dvd://1 -vf crop=720:352:0:62</screen>
Another reason to shave pixels from both the top and the bottom is that we
ensure we have eliminated any half-black pixels if they exist. Note that if
your video is telecined, make sure the <option>pullup</option> filter (or
whichever inverse telecine filter you decide to use) appears in the filter
chain before you crop. If it is interlaced, deinterlace before cropping.
(If you choose to preserve the interlaced video, then make sure your
vertical crop offset is a multiple of 4.)
Другая причина, по которой мы урезаем пикселы сверху и снизу, заключаемся в том,
что мы хотим убедиться, что удалены все наполовину черные пикселы, если они есть.
Если ваше видео телесиненное, убедитесь, что фильтр <option>pullup</option> (или
любой другой фильтр обратного телесина, который вы решили использовать)
находится в цепочке до фильтра crop.
Если оно черезстрочное, то перед обрезкой проведите деинтерлейсинг.
(Если решили сохранить черезстрочность видео, убедитесь, что вертикальный сдвиг
обрезания кратен 4.)
</para>
<para>
If you are really concerned about losing those 10 pixels, you might
prefer instead to scale the dimensions down to the nearest multiple of 16.
The filter chain would look like:
Если вас действительно заботит потеря этих 10 пикселов, вы можете
вместо этого отмасштабировать фильм, уменьшив размерности до ближайших
кратных 16 значений.
Цепочка фильтров будет выглядеть примерно так:
<screen>-vf crop=720:362:0:58,scale=720:352</screen>
Scaling the video down like this will mean that some small amount of
detail is lost, though it probably will not be perceptible. Scaling up will
result in lower quality (unless you increase the bitrate). Cropping
discards those pixels altogether. It is a tradeoff that you will want to
consider for each circumstance. For example, if the DVD video was made
for television, you might want to avoid vertical scaling, since the line
sampling corresponds to the way the content was originally recorded.
Подобное уменьшение изображения будет означать потерю небольшого количества
деталей, хотя это, возможно, окажется незаметным. Масштабирование изображения в
сторону увеличения даст худшее качество (если вы не увеличиваете битпоток).
Обрезка же полностью выбросит те пикселы. Это компромисс, идти на который или нет,
придется решать в каждом частном случае. Например, если DVD видео было создано
для телевидения, вы можете захотеть избежать вертикального масштабирования,
поскольки частота строчной развертки [line sampling] соответствует тому, как содержимое
изначально записывалось.
</para>
<para>
On inspection, we see that our movie has a fair bit of action and high
amounts of detail, so we pick 2400Kbit for our bitrate.
При проверке видим, что наш фильм имеет немного движения и большое количество
деталей, так что выбираем для битпотока значение 2400Кбит/сек.
</para>
<para>
We are now ready to do the two pass encode. Pass one:
Теперь мы готовы произвести двухпроходное кодирование. Проход первый:
<screen>
mencoder dvd://1 -ofps 24000/1001 -oac copy -o <replaceable>Harry_Potter_2.avi</replaceable> -ovc lavc \
-lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=1 \
-vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2
</screen>
And pass two is the same, except that we specify <option>vpass=2</option>:
И второй проход с теми же параметрами, за исключением <option>vpass=2</option>:
<screen>
mencoder dvd://1 -ofps 24000/1001 -oac copy -o <replaceable>Harry_Potter_2.avi</replaceable> -ovc lavc \
-lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=2 \
@ -3090,38 +3097,36 @@ mencoder dvd://1 -ofps 24000/1001 -oac copy -o <replaceable>Harry_Potter_2.avi</
</para>
<para>
The options <option>v4mv:mbd=2:trell</option> will greatly increase the
quality at the expense of encoding time. There is little reason to leave
these options out when the primary goal is quality. The options
<option>cmp=3:subcmp=3:mbcmp=3</option> select a comparison function that
yields higher quality than the defaults. You might try experimenting with
this parameter (refer to the man page for the possible values) as
different functions can have a large impact on quality depending on the
source material. For example, if you find
<systemitem class="library">libavcodec</systemitem> produces too much
blocky artifacting, you could try selecting the experimental NSSE as
comparison function via <option>*cmp=10</option>.
Опции <option>v4mv:mbd=2:trell</option> значительно улучшат качество ценой
времени кодирования. Нет никаких оснований отключать эти
опции, когда главным критерием является качество. Опции
<option>cmp=3:subcmp=3:mbcmp=3</option> выбирают функцию сравнения, дающую
лучшее качество, чем стандартная. Вы можете поэкспериментировать с этим параметром
(возможные значения смотрите на man странице), поскольку разные функции могут
давать разный прирост в качестве в зависимости от исходного материала.
Например, если вы замечаете, что <systemitem class="library">libavcodec</systemitem>
производит слишком много блочных артефактов (квадратиков), то можете попытаться
выбрать экспериментальный NSSE в качестве функции сравнения при помощи опциеи <option>*cmp=10</option>.
</para>
<para>
For this movie, the resulting AVI will be 138 minutes long and nearly
3GB. And because you said that file size does not matter, this is a
perfectly acceptable size. However, if you had wanted it smaller, you
could try a lower bitrate. Increasing bitrates have diminishing
returns, so while we might clearly see an improvement from 1800Kbit to
2000Kbit, it might not be so noticeable above 2000Kbit. Feel
free to experiment until you are happy.
Для этого фильма полученный AVI будет 138 минут длинной и рамером около 3Гб.
И, поскольку вы сказали, что размер файла значения не имеет, это вполне
приемлемый результат. Однако, если все-таки хотите получить меньший размер файла,
можете попробовать уменьшить битпоток. Увеличение битпотока имеет снижающийся эффект,
поэтому, хотя мы можем ясно видеть улучшение от 1800Кбит/сек до 20000Кбит/сек, оно
может быть не столь заметно выше 20000Кбит/сек.
</para>
<para>
Because we passed the source video through a denoise filter, you may want
to add some of it back during playback. This, along with the
<option>spp</option> post-processing filter, drastically improves the
perception of quality and helps eliminate blocky artifacts in the video.
With <application>MPlayer</application>'s <option>autoq</option> option,
you can vary the amount of post-processing done by the spp filter
depending on available CPU. Also, at this point, you may want to apply
gamma and/or color correction to best suit your display. For example:
Так как мы пропустили исходное видео через фильтр удаления шума, то, возможно,
захочется вернуть какую-то его часть во время воспроизведения.
Это, совместпно с фильтром постобработки <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>