<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>10.7. Использование MEncoder для создания совместимых с QuickTime файлов</title><link rel="stylesheet" href="default.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="MPlayer - Медиа Проигрыватель"><link rel="up" href="encoding-guide.html" title="Глава 10. Кодирование с MEncoder"><link rel="prev" href="menc-feat-video-for-windows.html" title="10.6. Кодирование семейством кодеков Video For Windows"><link rel="next" href="menc-feat-vcd-dvd.html" title="10.8. Использование MEncoder для создания VCD/SVCD/DVD-совместимых файлов."><link rel="preface" href="howtoread.html" title="Как читать эту документацию"><link rel="chapter" href="intro.html" title="Глава 1. Введение"><link rel="chapter" href="install.html" title="Глава 2. Установка"><link rel="chapter" href="usage.html" title="Глава 3. Использование"><link rel="chapter" href="cd-dvd.html" title="Глава 4. Использование CD/DVD"><link rel="chapter" href="tv.html" title="Глава 5. TV"><link rel="chapter" href="radio.html" title="Глава 6. Радио"><link rel="chapter" href="video.html" title="Глава 7. Устройства вывода видео"><link rel="chapter" href="ports.html" title="Глава 8. Портинг"><link rel="chapter" href="mencoder.html" title="Глава 9. Основы использования MEncoder"><link rel="chapter" href="encoding-guide.html" title="Глава 10. Кодирование с MEncoder"><link rel="chapter" href="faq.html" title="Глава 11. Часто Задаваемые вопросы"><link rel="appendix" href="bugreports.html" title="Приложение A. Как сообщать об ошибках"><link rel="appendix" href="skin.html" title="Приложение B. Формат скинов MPlayer"><link rel="subsection" href="menc-feat-quicktime-7.html#menc-feat-quicktime-7-why-use-it" title="10.7.1. Зачем необходимо создавать совместимые с QuickTime файлы?"><link rel="subsection" href="menc-feat-quicktime-7.html#menc-feat-quicktime-7-constraints" title="10.7.2. Ограничения QuickTime 7"><link rel="subsection" href="menc-feat-quicktime-7.html#menc-feat-quicktime-7-crop" title="10.7.3. Обрезание"><link rel="subsection" href="menc-feat-quicktime-7.html#menc-feat-quicktime-7-scale" title="10.7.4. Масштабирование"><link rel="subsection" href="menc-feat-quicktime-7.html#menc-feat-quicktime-7-avsync" title="10.7.5. A/V синхронизация"><link rel="subsection" href="menc-feat-quicktime-7.html#menc-feat-quicktime-7-bitrate" title="10.7.6. Битпоток"><link rel="subsection" href="menc-feat-quicktime-7.html#menc-feat-quicktime-7-example" title="10.7.7. Пример кодирования"><link rel="subsection" href="menc-feat-quicktime-7.html#menc-feat-quicktime-7-remux" title="10.7.8. Ремультиплексирование в MP4"><link rel="subsection" href="menc-feat-quicktime-7.html#menc-feat-quicktime-7-metadata" title="10.7.9. Добавление тегов метаданных"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">10.7. Использование <span class="application">MEncoder</span> для создания совместимых с <span class="application">QuickTime</span> файлов</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="menc-feat-video-for-windows.html">Пред.</a> </td><th width="60%" align="center">Глава 10. Кодирование с <span class="application">MEncoder</span></th><td width="20%" align="right"> <a accesskey="n" href="menc-feat-vcd-dvd.html">След.</a></td></tr></table><hr></div><div class="sect1" title="10.7. Использование MEncoder для создания совместимых с QuickTime файлов"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="menc-feat-quicktime-7"></a>10.7. Использование <span class="application">MEncoder</span> для создания совместимых с <span class="application">QuickTime</span> файлов</h2></div></div></div><div class="sect2" title="10.7.1. Зачем необходимо создавать совместимые с QuickTime файлы?"><div class="titlepage"><div><div><h3 class="title"><a name="menc-feat-quicktime-7-why-use-it"></a>10.7.1. Зачем необходимо создавать совместимые с <span class="application">QuickTime</span> файлы?</h3></div></div></div><p> Есть несколько причин, по которым создание <span class="application">QuickTime</span>-совместимых файлов может быть желательно. </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> Вы хотите, чтобы любой компьютерно неграмотный человек мог смотреть результат Вашего кодирования на большинстве платформ (Windows, Mac OS X, Unices …). </p></li><li class="listitem"><p> <span class="application">QuickTime</span> позволяет воспользоваться преимуществами большего числа возможностей аппаратного и программного ускорения на Mac OS X, чем платформо-независимые плееры наподобие <span class="application">MPlayer</span> или <span class="application">VLC</span>. Это означает, что Ваше кодирование имеет шансы плавно воспроизводиться на старых машинах, оснащённых G4. </p></li><li class="listitem"><p> <span class="application">QuickTime</span> 7 поддерживает кодек нового поколения H.264, который даёт существенно лучшее качество изображения, чем предыдущие поколения кодеков (MPEG-2, MPEG-4 …). </p></li></ul></div></div><div class="sect2" title="10.7.2. Ограничения QuickTime 7"><div class="titlepage"><div><div><h3 class="title"><a name="menc-feat-quicktime-7-constraints"></a>10.7.2. Ограничения <span class="application">QuickTime</span> 7</h3></div></div></div><p> <span class="application">QuickTime</span> 7 поддерживает H.264 видео и AAC аудио, но не поддерживает их мультиплексирование в формат контейнера AVI. Однако, Вы можете использовать <span class="application">MEncoder</span> для кодирования видео и аудио, а потом использовать внешнюю программу, такую как <span class="application">mp4creator</span> (часть <a class="ulink" href="http://mpeg4ip.sourceforge.net/" target="_top">пакета MPEG4I</a>) для ремультиплексирования видео и аудио дорожек в контейнер MP4. </p><p> Поддержка H.264 в <span class="application">QuickTime</span> ограничена, так что Вам придётся отказаться от нескольких продвинутых возможностей. Если Вы кодируете видео с возможностями, не поддерживаемыми <span class="application">QuickTime</span> 7, плееры, основанные на <span class="application">QuickTime</span>, покажут Вам милый белый экран вместо ожидаемого Вами видео. </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> <span class="bold"><strong>B-кадры</strong></span>: <span class="application">QuickTime</span> 7 поддерживает максимум 1 B-кадр, т.е. <tt class="option">-x264encopts bframes=1</tt>. Это означает, что <tt class="option">b_pyramid</tt> и <tt class="option">weight_b</tt> не дадут эффекта, поскольку им необходимо, чтобы <tt class="option">bframes</tt> было больше 1. </p></li><li class="listitem"><p> <span class="bold"><strong>Макроблоки</strong></span>: <span class="application">QuickTime</span> 7 не поддерживает 8x8 DCT макроблоки. Эта опция (<tt class="option">8x8dct</tt>) выключена по умолчанию, так что просто удостоверьтесь, что явно её не задали. Это также означает, что опция <tt class="option">i8x8</tt> будет бесполезна, т.к. ей необходима <tt class="option">8x8dct</tt>. </p></li><li class="listitem"><p> <span class="bold"><strong>Коэффициент соотношения сторон</strong></span>: <span class="application">QuickTime</span> 7 не поддерживает информацию SAR (коэффициент пропорций пиксела, sample aspect ratio) в MPEG-4 файлах; он предполагает SAR=1. Прочтите <a class="link" href="menc-feat-quicktime-7.html#menc-feat-quicktime-7-scale" title="10.7.4. Масштабирование">раздел о масштабировании</a> для обхода проблемы. </p></li></ul></div></div><div class="sect2" title="10.7.3. Обрезание"><div class="titlepage"><div><div><h3 class="title"><a name="menc-feat-quicktime-7-crop"></a>10.7.3. Обрезание</h3></div></div></div><p> Предположим, что Вы хотите сделать рип свежекупленной копии "Хроник Нарнии" и Ваш регион DVD 1, что означает, что это NTSC. Пример ниже будет также применим к PAL, за исключением того, что Вам нужно будет опустить <tt class="option">-ofps 24000/1001</tt> и использовать слегка отличающиеся размеры для <tt class="option">crop</tt> и <tt class="option">scale</tt>. </p><p> После запуска <tt class="option">mplayer dvd://1</tt>, Вы следуете процессу, описанному в разделе <a class="link" href="menc-feat-telecine.html" title="10.2. Как работать с телесином и чересстрочной развёрткой на NTSC DVD">Как работать с телесином и чересстрочной развёрткой на NTSC DVD</a> и обнаруживаете, что это 24000/1001 fps видео с построчной развёрткой. Это несколько упрощает обработку, поскольку Вам не нужно использовать фильтр обратного телесина, такой как <tt class="option">pullup</tt>, или фильтр деинтерлейса, такой как <tt class="option">yadif</tt>. </p><p> Затем Вам необходимо усечь чёрные полосы сверху и снизу видео, как описано в <a class="link" href="menc-feat-enc-libavcodec.html#menc-feat-dvd-mpeg4-example-crop">этом</a> разделе. </p></div><div class="sect2" title="10.7.4. Масштабирование"><div class="titlepage"><div><div><h3 class="title"><a name="menc-feat-quicktime-7-scale"></a>10.7.4. Масштабирование</h3></div></div></div><p> Следующий шаг действительно душераздирающий. <span class="application">QuickTime</span> 7 не поддерживает MPEG-4 видео с коэффициентом соотношения сторон пиксела, отличным от 1. Так что Вам придётся масштабировать видео либо в сторону увеличения (что впустую потратит много места на диске), либо в строну уменьшения (что приведёт к потере некоторых деталей источника) для квадратизации пикселов. Какой бы способ Вы не выбрали, это будет крайне неэффективным, но не может быть опущено, если Вы хотите, чтоб Ваше видео воспроизводилось с помощью <span class="application">QuickTime</span> 7. <span class="application">MEncoder</span> может применить необходимое увеличивающее или уменьшающее масштабирование, если ему указать <tt class="option">-vf scale=-10:-1</tt> или <tt class="option">-vf scale=-1:-10</tt> соответственно. Это отмасштабирует Ваше видео до корректной ширины для усечённой высоты, округлённой до ближайшего множителя 16 для оптимального сжатия. Помните, что если производите обрезание, то нужно сперва обрезать, а лишь затем масштабировать: </p><pre class="screen">-vf crop=720:352:0:62,scale=-10:-1</pre><p> </p></div><div class="sect2" title="10.7.5. A/V синхронизация"><div class="titlepage"><div><div><h3 class="title"><a name="menc-feat-quicktime-7-avsync"></a>10.7.5. A/V синхронизация</h3></div></div></div><p> Поскольку Вы будете мультиплексировать в другой контейнер, Вы должны всегда использовать опцию <tt class="option">harddup</tt>, чтобы убедиться, что дублирующиеся кадры будут действительно дублироваться в полученном видео. Без этой опции <span class="application">MEncoder</span> будет просто располагать маркер в видеопотоке о том, что кадр был повторен, и будет полагаться на то, что клиентское программное обеспечение покажет кадр дважды. К сожалению, это "мягкое дублирование" не переживает ремультиплексирование, в результате чего аудио будет постепенно терять синхронизацию с видео. </p><p> В итоге, цепочка фильтров выглядит следующим образом: </p><pre class="screen">-vf crop=720:352:0:62,scale=-10:-1,harddup</pre><p> </p></div><div class="sect2" title="10.7.6. Битпоток"><div class="titlepage"><div><div><h3 class="title"><a name="menc-feat-quicktime-7-bitrate"></a>10.7.6. Битпоток</h3></div></div></div><p> Как обычно, выбор битпотока зависит от технических свойств исходного материала, как объясняется <a class="link" href="menc-feat-dvd-mpeg4.html#menc-feat-dvd-mpeg4-resolution-bitrate" title="10.1.5. Выбор разрешения и битпотока">здесь</a>, как, впрочем, и от личного вкуса. Этот фильм обладает небольшим количеством движения и большим количеством деталей, но H.264 видео хорошо выглядит на существенно меньших битпотоках, чем XviD или другие MPEG-4 кодеки. После длительного экспериментирования, автор данного руководства решил кодировать фильм на 900 кбит/сек, и считает, что он выглядит очень хорошо. Вы можете уменьшить битпоток, если Вам нужно сохранить больше места, или увеличить, если Вам нужно улучшить качество. </p></div><div class="sect2" title="10.7.7. Пример кодирования"><div class="titlepage"><div><div><h3 class="title"><a name="menc-feat-quicktime-7-example"></a>10.7.7. Пример кодирования</h3></div></div></div><p> Теперь Вы готовы к кодированию видео. Поскольку Вы заботитесь о качестве, Вы , разумеется, будете делать двупроходное кодирование. Для некоторого сокращения времени кодирования, Вы можете указать опцию <tt class="option">turbo</tt> при первом проходе; это уменьшит <tt class="option">subq</tt> и <tt class="option">frameref</tt> до 1. Чтобы сохранить немного места на диске, Вы можете использовать параметр <tt class="option">ss</tt> для отрезания первых нескольких секунд видео. (Я обнаружил, что, в частности, у данного фильма есть 32 секунды титров и логотипов.) <tt class="option">bframes</tt> может быть 0 или 1. остальные опции описаны в разделе <a class="link" href="menc-feat-x264.html#menc-feat-x264-encoding-options-speedvquality" title="10.5.1.2. Опции, затрагивающие, в основном, скорость и качество">Кодирование кодеком <code class="systemitem">x264</code></a> и на man странице. </p><pre class="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</pre><p> Если у Вас многопроцессорная машина, не упустите шанс значительно ускорить кодирование задействованием <a class="link" href="menc-feat-x264.html#menc-feat-x264-encoding-options-speedquality-threads"> многопоточного режима <code class="systemitem">x264</code></a>, добавив <tt class="option">threads=auto</tt> в <tt class="option">x264encopts</tt> в командной строке. </p><p> Второй проход выполняется аналогично, за исключением того, что Вам нужно указать выходной файл и установить <tt class="option">pass=2</tt>. </p><pre class="screen">mencoder dvd://1 <span class="bold"><strong>-o нарния.avi</strong></span> -ss 32 -ovc x264 \ -x264encopts <span class="bold"><strong>pass=2</strong></span>: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</pre><p> </p><p> Получившееся AVI должно хорошо воспроизводиться в <span class="application">MPlayer</span>, но, конечно же, <span class="application">QuickTime</span> не сможет его воспроизвести, т.к. не поддерживает H.264, мультиплексированный в AVI. Так что следующий шаг — ремультиплексирование видео в контейнер MP4. </p></div><div class="sect2" title="10.7.8. Ремультиплексирование в MP4"><div class="titlepage"><div><div><h3 class="title"><a name="menc-feat-quicktime-7-remux"></a>10.7.8. Ремультиплексирование в MP4</h3></div></div></div><p> Существует несколько способов ремультиплексирования AVI файлов в MP4. Вы можете использовать <span class="application">mp4creator</span>, являющийся частью <a class="ulink" href="http://mpeg4ip.sourceforge.net/" target="_top">пакета MPEG4IP</a>. </p><p> Сперва демультиплексируйте AVI в отдельные аудио и видео потоки с помощью <span class="application">MPlayer</span>. </p><pre class="screen">mplayer нарния.avi -dumpaudio -dumpfile нарния.aac mplayer нарния.avi -dumpvideo -dumpfile нарния.h264</pre><p> Имена файлов важны; для <span class="application">mp4creator</span> необходимо, чтобы AAC аудио потоки назывались <code class="systemitem">.aac</code> и H.264 видео потоки назывались <code class="systemitem">.h264</code>. </p><p> Теперь используйте <span class="application">mp4creator</span> для создания нового MP4 файла из аудио и видео потоков. </p><pre class="screen">mp4creator -create=нарния.aac нарния.mp4 mp4creator -create=нарния.h264 -rate=23.976 нарния.mp4</pre><p> В отличии от этапа кодирования, Вам нужно указать частоту кадров как десятичную (например, 23.976), а не целую (например, 24000/1001) дробь. </p><p> Теперь файл <code class="systemitem">нарния.mp4</code> должен проигрываться с помощью любого <span class="application">QuickTime</span> 7 приложения, например, <span class="application">QuickTime Player</span> или <span class="application">iTunes</span>. Если Вы планируете просмотр видео в вэб-браузере с помощью плагина <span class="application">QuickTime</span>, Вам также необходимо модифицировать фильм таким образом, чтобы плагин <span class="application">QuickTime</span> мог начать его воспроизведение ещё во время загрузки. <span class="application">mp4creator</span> может создать эти вспомогательные дорожки (т.н. hint tracks): </p><pre class="screen">mp4creator -hint=1 нарния.mp4 mp4creator -hint=2 нарния.mp4 mp4creator -optimize нарния.mp4</pre><p> Вы можете проверить полученный результат, чтобы убедиться, что вспомогательные дорожки были успешно созданы. </p><pre class="screen">mp4creator -list нарния.mp4</pre><p> Вы должны увидеть список дорожек: 1 аудио, 1 видео и 2 вспомогательных. </p><pre class="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 </pre><p> </p></div><div class="sect2" title="10.7.9. Добавление тегов метаданных"><div class="titlepage"><div><div><h3 class="title"><a name="menc-feat-quicktime-7-metadata"></a>10.7.9. Добавление тегов метаданных</h3></div></div></div><p> Если Вы хотите добавить в видео теги, которые отображаются в iTunes, Вы можете использовать <a class="ulink" href="http://atomicparsley.sourceforge.net/" target="_top">AtomicParsley</a>. </p><pre class="screen">AtomicParsley нарния.mp4 --metaEnema --title "The Chronicles of Narnia" --year 2005 --stik Movie --freefree --overWrite</pre><p> Опция <tt class="option">--metaEnema</tt> удаляет любые существующие метаданные (<span class="application">mp4creator</span> вставляет своё название в тег "утилита кодирования") и <tt class="option">--freefree</tt> высвобождает место, оставшееся от удалённых метаданных. Опция <tt class="option">--stik</tt> устанавливает тип видео (например, Movie или TV Show), который используется iTunes для группировки родственных видеофайлов. Опция <tt class="option">--overWrite</tt> перезаписывает исходный файл; без неё <span class="application">AtomicParsley</span> создаст новый файл с автоматическим именем в том же каталоге и оставит исходный файл нетронутым. </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="menc-feat-video-for-windows.html">Пред.</a> </td><td width="20%" align="center"><a accesskey="u" href="encoding-guide.html">Уровень выше</a></td><td width="40%" align="right"> <a accesskey="n" href="menc-feat-vcd-dvd.html">След.</a></td></tr><tr><td width="40%" align="left" valign="top">10.6. Кодирование семейством кодеков <code class="systemitem">Video For Windows</code> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Начало</a></td><td width="40%" align="right" valign="top"> 10.8. Использование <span class="application">MEncoder</span> для создания VCD/SVCD/DVD-совместимых файлов.</td></tr></table></div></body></html>