MeGUI

Материал из OSZone.net wiki.

Перейти к: навигация, поиск

MeGUI - программа с открытым исходным кодом, представляет собой графическую оболочку для консольных программ сжатия аудио и видео.

Содержание

Общие сведения

MeGUI изначально разрабатывалась для того, чтобы быть посредником при кодировании DVD в один файл с помощью консольных программ. Сейчас MeGUI пригоден для многих задач по перекодированию, в том числе и для конвертирования аудио. На входе приложение поддерживает любой видео файл через AviSynth, на выходе можно получить видео закодированное с помощью snow, x264 или XviD, аудио формата ac-3, aac, mp2, mp3 или vorbis и упаковать это все в контейнер avi, mkv или mp4. В приложении можно создавать очередь задач, приостанавливать и продолжать кодирование, параллельно выполнять задачи из очереди на многоядерных процессорах, автоматически определять черезстрочное видео и порядок полей, автоматически скачивать обновления аудио- видеокодеков и остальных необходимых инструментов. Как и большинство программ с открытым исходным кодом, MeGUI распространяется через сайт sourceforge. Для работы приложения необходимо наличие .NET framework не ниже второй версии.

Настройки видеокодеков

Настройки Snow

Настройки x264

Закладка "Main"

Опция Описание Рекомендации
General
  Mode Режимы кодирования. Для получения наилучшего качества рекомендуется использовать двупроходное кодирование (automated 2pass).
Turbo Ускоренный режим первого прохода. Позволяет запустить первый проход с упрощенными настройками кодека, что сократит время кодирования при первом проходе примерно в три раза.
Bitrate Выбор скорости видеопотока. Самый оптимальный вариант - вычислить значение по формуле: ширина_кадра*высота_кадра*кадров_в_секунду*0,15/1024. Где 0,15 - количество бит на пиксель (можете варьировать это число в пределах от 0,05 до 0,2 по своему усмотрению). Если же вам надо получить определенный размер конечного файла, то воспользуйтесь встроенным калькулятором (Tools\Bitrate calculator).
Lossless Включает режим сжатия без потерь. Включите эту опцию, если в дальнейшем вы планируете редактировать видео в каких-нибудь видеоредакторах. Это позволит избежать потери качества из-за многочисленных повторных перекодирований. Когда видео будет готово, снимите эту галочку, чтобы закодировать видео с потерями качества (иначе размер файла будет очень большим).
Logfile Имя файла статистики. Файл статистики используется при многопроходном кодировании и служит для временного хранения собранной информации о характере видеопотока. Можете указать любое имя или же оставить как есть.
Misc
  Enable PSNR calculation Включить подсчет отношения сигнала к шуму по мощности. На качество выходного видео никак не влияет - включение данной опции немного замедлит кодирование, зато по окончанию, на закладке Log вы можете посмотреть подсчитанный коэффициент PSNR. Теоретически данный коэффициент может изменяться от 0 до бесконечности, однако на практике его значения чаще лежат в интервале 30-50 децибел (чем выше значение, тем ближе качество сжатого видео к оригиналу). Рекомендуется выключить.
Enable SSIM calculation Используется для сравнения качества видео (подобно psnr), но используя другую метрику качества видео. На качество выходного видео никак не влияет - включение данной опции немного замедлит кодирование, зато по окончанию, на закладке Log вы можете посмотреть подсчитанный коэффициент SSIM. Качество исходного видео принимается за единицу, чем ближе коэффициент SSIM к единице - тем ближе качество сжатого видео к оригиналу. Рекомендуется выключить.
Threads Выбор количества вычислительных потоков. Актуально для многоядерных процессоров и многопроцессорных систем. Установите значение 0, для автоматического определения. Кодирование в несколько потоков значительно увеличивает скорость кодирования, при незначительном ухудшении качества (на столько незначительном, что невооруженным глазом разница станет заметной лишь при кодировании более чем в 30 потоков).
Deblocking
  Enable deblocking Включить подавление блоков. При кодировании изображение разбивается на блоки размерами 8*8 пикселей и каждый такой блок кодируется отдельно. При недостаточном битрейте эти блоки становятся заметными. Включение данной опции поможет решить проблему. Рекомендуется использовать даже при высоких битрейтах.
Deblocking strength Сила подавления блоков. Рекомендуется выбрать значение от -2 до 2. Большее значение увеличивает силу подавления блоков, но картинка становится немного размытой (используйте при низких битрейтах или при кодировании мультипликации). Меньшее значение уменьшает силу, зато картинка остается достаточно четкой (используйте при высоких битрейтах). Если не знаете, что выбрать, то оставьте 0 - подходит для большинства случаев.
Deblocking threshold Точность определения блоков. Рекомендуется выбрать значение от -2 до 2. При больших значениях, кодек может распознать некоторые детали за блок и применить к ним фильтр подавления блоков. При меньших значениях, деталей сохранится больше, но некоторые блоки могут быть приняты за деталь (используйте большие значения при кодировании мультипликации - в ней четкие контуры, поэтому кодек не ошибется). Желательно чтобы этот параметр отличался не больше, чем на единицу от предыдущего. Если не знаете, что выбрать, то оставьте 0 - подходит для большинства случаев.
AVC profiles
  Baseline profile
Main profile
High profile
Выбор профиля. Профиль определяет какие возможности стандарта H.264 могут использоваться. Например, в профиле "baseline" не поддерживается CABAC, т.к. этот профиль предназначен для устройств с ограниченными вычислительными ресурсами (смартфоны, коммуникаторы, КПК и т.д.). Профиль "high" задействует большинство возможностей стандарта H.264, например, CABAC, B-кадры и т.д. Сравнительную таблицу профилей можно посмотреть здесь. Рекомендуемое значение "baseline" - для устройств с ограниченными ресурсами и "high" - во всех остальных случаях.
AVC level
  Level 1-5
Unrestricted/Autoguess
Выбор уровня профиля. Уровень профиля определяет максимальное разрешение кадра, которое можно использовать, максимальный битрейт, частоту кадров и д.р. Например, для HD видео используется уровень 4.1. Подробнее здесь. Рекомендуемое значение "Unrestricted/Autoguess" - автоматическое определение.

Закладка "RC and ME"

Опция Описание Рекомендации
Rate control
  VBV buffer size Максимальный размер видео буфера. Используйте эту опцию только если у вас аппаратный декодер H264, который требует этого. Рекомендуемое значение 0 (автоматическое определение), также можно оставить поле пустым - это равносильно нулю.
VBV maximum bitrate Максимальный битрейт в видео буфере. При наличии аппаратного декодера H264, устанавливает максимально допустимый битрейт видео в буфере. Рекомендуемое значение 0 (автоматическое определение).
VBV initial buffer Стартовый размер видео буфера. Видео не начнет проигрываться, пока видео буфер не будет заполнен на указанную часть. Строго рекомендуемое значение 0,9.
Bitrate variance Колебание битрейта. Задается в процентах с точностью до одной десятой, имеет смысл только при однопроходном кодировании. Указывает на то, как сильно может отклоняться битрейт от указанного среднего значения в большую или меньшую сторону. При меньших значениях можно более точно предсказать размер конечного файла, но способность кодека к адаптации сложных сцен снижается. При больших значениях размер конечного файла менее предсказуем, зато на сложные сцены будет выделено больше бит, чем на простые. Установка в 0% дает постоянный битрейт, 100% - постоянное качество. Обратите внимание, что установка в 100% - хорошая альтернатива двупроходному кодированию в тех случаях когда оно не применимо или когда размер конечного файла не важен.
Quantizer compression Выбор квантователя для сжатия. Задается числом от 0 до 1 с точностью до одной десятой. Указывает на то, как сильно может отклоняться квантователь от рекомендуемого значения. Считается, что в высокодинамичных сценах можно пожертвовать качеством не смотря на сложность картинки т.к. во время быстрого движения мелкие детали плохо различимы. Установка меньшего значения будет применять более высокие квантователи (с худшим качеством) к высокодинамичным сценам и более низкие (с хорошим качеством) - к малодинамичным. Установка большего значения - наоборот. Рекомендуемое значение 0,6.
Temp. blur of est. frame complexity Уменьшение колебаний квантователя. Применяет гауссово размытие заданного радиуса к кривой квантователя. Это означает, что каждый квантователь назначенный определенному кадру будет размыт с квантователем назначенным соседнему кадру, что позволит избежать резких скачков качества между соседними кадрами. Рекомендуемое значение - 20.
Temp. blur of quant after CC Уменьшение колебаний квантователя (после). Повторно применяет гауссово размытие заданного радиуса к кривой квантователя для более плавного перехода между квантователями. Не очень важная настройка, оставьте значение по умолчанию - 0,5.
Misc
  Keyframe interval Максимальный интервал между ключевыми кадрами. Чтобы иметь возможность быстрой прокрутки итогового видео, в нем, примерно на каждые 10 секунд должен приходиться хотя бы один ключевой кадр. Дело в том, что когда вы пытаетесь перейти к определенному месту в видеопотоке, сначала ищется ближайший предшествующий ключевой кадр, затем от него достраиваются P- и B- кадры, и, наконец, на экран выводится запрошенный вами кадр. Если предшествующий кадр будет достаточно далеко, то вы можете ощущать задержки, вызванные долгой достройкой кадров. Рекомендуемое значение - 250 кадров (это примерно 10 секунд).
Min. GOP size Минимальный интервал между ключевыми кадрами. Для кодирования ключевых кадров требуется больше всего информации, поэтому разумным решением будет не выставлять их слишком часто (не больше одного на секунду). Рекомендуемое значение - 25 кадров (это примерно одна секунда). Однако, если видео содержит слишком много меняющихся и динамичных сцен (например, клип какой-нибудь метал-группы), то интервал желательно уменьшить.
Noise reduction Подавление шума. Рекомендуется не включать. Лучше использовать более продвинутые подавители шума для avisynth. Например, FFT3DFilter или его аналог FFT3DGPU.
Encode interlaced Кодирование чересстрочного материала. Рекомендется включить, если кодируете чересстрочный материал. В этом случае каждый полукадр будет закодирован по отдельности и ваше видео останется чересстрочным. Если вы не включите эту опцию кодируя чересстрочное видео, то оно станет прогрессивным (два полукадра будут закодированы как один кадр) с характерным "эффектом расчески" на границах движущихся объектов. На кодирование этой расчески потребуется много информации, которая могла быть использована для кодирования более важных вещей.
M.E.
  Chroma M.E. Цветовая оценка движения. Рекомендуется включить для того, чтобы движение объектов искалось не только в канале luma, но и в каналах U-chroma и V-chroma. Отключение даст незначительную прибавку к скорости и незначительную потерю качества.
M.E. range Диапазон поиска движения. Указывает радиус поиска движения объекта в пикселях. Большие значения улучшают качество ценой потери скорости кодирования. Для алгоритмов "diamond" и "hexagon" допустимыми значениями являются числа от 4 до 16 (рекомендуется 16). Для остальных алгоритмов - от 4 до 64 (рекомендуется 32).
Scene change sensitivity Чувствительность к смене сцены. Задается в процентах. Если картинка изменилась на указанное количество процентов или больше, то кодек считает, что произошла смена сцены и вставляет ключевой кадр. Рекомендуемое значение 40%.
M.E. algorithm Алгоритм поиска движения. "Diamond" - простейший поиск, начиная с одного пикселя одного кадра, начинают просматриваться соседние пиксели на соседнем кадре, на один пиксель выше, правее, ниже и левее. Выбирается наиболее вероятно сдвинувшийся пиксель и процесс повторяется до тех пор, пока не будет найден лучший пиксель или пока не будет достигнут предел диапазона поиска движения. "Hexagon" - похож на предыдущий, но оцениваются 6 соседних пикселей. Немного медленней, но более эффективный, чем предыдущий алгоритм. Рекомендуется к использованию. "Multi hex" - лучше предыдущего, способен найти сложные векторы движения, ценой потери скорости кодирования. В отличие от предыдущих алгоритмов, в этом, и во всех последующих, опция "диапазон поиска движения" задает не количество итераций, а радиус в пределах которого будет искаться пиксель. "Exhaustive" - не намного лучше, но намного медленнее, работает методом перебора в диапазоне поиска движения: строит все возможные вектора движения и выбирает наилучший. "SATD Eshaustive" - похож на предыдущий, чуть-чуть лучше и чуть-чуть медленне. Два последних алгоритма не рекомендуются из-за огромной потери скорости кодирования при незначительном улучшении качества.
Subpixel refinement Точность векторов движения. Устанавливает один из девяти уровней сложности оценки субпиксельной точности векторов движения. Чем выше уровень, тем в больших случаях могут быть построены векторы движения повышенной точности. Первые пять уровней указывают в каких случаях следует использовать четвертьпиксельную точность. Для четвертьпиксельной точности требуется больше информации для кодирования. Отчасти увеличение информации компенсируется тем, что с повышенной точностью может быть построено больше векторов (а значит сжатие будет лучше), отчасти - компенсируется дополнительной оптимизацией доступной на следующих уровнях. Рекомендуется использовать "6 - RD on I/P frames". Практика показывает, что увеличение значения может приводить к худшему результату. Если это произошло, попробуйте увеличить диапазон поиска движения.
Quant options
  CABAC Контекстно-адаптивное двоичное арифметическое кодирование (КАДАК). КАДАК - главное достоинство всех AVC-кодеков, он обеспечивает значительно лучшее сжатие, чем алгоритмы использующиеся в других кодеках, но требует больше вычислительных ресурсов как для кодирования, так и для декодирования. Рекомендуется включить.
Number of reference frames Количество кадров на которые могут ссылаться P- и B-кадры. Чем больше - тем эффективней могут быть закодированы P/B-кадры, но для кодирования потребуется больше времени. Максимальное значение 16, однако уже после 5 прирост качества ощущается все меньше и меньше, а прирост времени кодирования все больше и больше. Рекомендуемое значение - 4.
Mixed reference frames Смешанные P/B-кадры. Все блоки из одного P- или B-кадра могут ссылаться только на один кадр. Однако включение данной опции позволит каждому блоку ссылаться на разные кадры независимо друг от друга, что увеличит эффективность кодирования. Рекомендуется включить.
Trellis В каких случаях использовать Trellis квантование. Улучшенный алгоритм квантования, лучше сохраняет детали и четкость фотореалистичного изображения, не рекомендуется для кодирования мультипликации. Допустимые значения: 0 - никогда, 1 - на макроблоках, 2 - всегда. Чем выше значение, тем выше эффективность кодирования, но меньше скорость. Рекомендуемое значение 1 - хороший компромисс между скоростью и эффективностью.
PSY-RD strength Сила RD-оптимизации. Устанавливает силу RD-оптимизации. Прежде, чем использовать эту опцию, убедитесь, что вы включили эту оптимизацию (Subpixel refinement должен быть больше либо равен шести). Рекомендуемое значение 1.
PSY-trellis strength Сила Trellis квантования. Экспериментальная опция, не рекомендуются значения отличные от нуля.
No Dct decimation Не использовать прореживание блоков. Изображение разбивается на блоки, каждый из которых подвергается дискретно-косинусному преобразованию. Если полученный блок в P-кадре не сильно отличается от аналогичного блока в ключевом кадре, то такой блок отбрасывается, т.е. используется прореживание P-кадров. В большинстве случаев в отброшенных блоках находятся помехи и артефакты сжатия, но, в принципе, в них могут находится и мелкие детали. Съэкономленные на прореживании биты идут на улучшение остального видео в целом. Галочка с данной опции должна быть всегда снята при кодировании мультипликации и в большинстве случаев при кодировании фотореалистичного видео, кроме случаев когда вы кодируете видео высокого качества с очень высоким битрейтом.
No fast P-skip Отключить быстрый пропуск P-кадров. Рекомендуется включить, это снизит скорость, но на монотонных участках изображения, которых очень много в мультфильмах, не будут видны блоки.

Закладка "Advanced"

Опция Описание Рекомендации
Quantizers
  Min/Max/Delta Мин/Макс/Шаг квантователя. Указывает наименьший возможный квантователь, наибольший и шаг изменения. Первый счетчик задает минимальный квантователь (рекомендуемое значение - 10). Чем меньше квантователь, тем лучше качество картинки (и хуже сжатие). Во многих кадрах картинка сжатая квантователями ниже 16 визуально воспринимается как сжатая без потерь. Учтите, что на ключевые кадры этот параметр тоже воздействует, а это значит, что сильно увеличив этот параметр, ключевой кадр будет выглядеть плохо, а на основе этого ключевого кадра могут быть построены еще около 250 P- и B-кадров. Второй счетчик задает максимальный квантователь (рекомендуемое значение - 51). Чем выше квантователь, тем лучше сжатие (и хуже качество). Третий счетчик задает шаг квантователя (рекомендуемое значение - 4). Этот параметр указывает на сколько могут различаться квантователи в соседних кадрах. Не рекомендуется устанавливать сильно большие шаги т.к. это может привести к заметным скачкам качества между соседними кадрами.
Quantizers ratio Соотношение квантователей. Первый счетчик указывает соотношение квантователей между I-кадром и последующим за ним P-кадром. Рекомендуемое значение 1,4 - это означает, что если, например, ключевой кадр был закодирован квантователем десятого уровня, то следующий за ним P-кадр будет закодирован квантователем не менее, чем 10*1,4=14 уровня. Другими словами увеличение этой опции приводит к улучшению ключевых кадров, за счет ухудшения последующих P- и B- кадров, в результате вы получите прекрасный неподвижный фон (он будет взят из ключевого кадра) и ужасно выглядящие изменения (они кодируются в P- и B-кадрах). Если вы все же решите увеличить значение этой опции, то не забудьте увеличить и шаг квантователя, иначе ничего не изменится. Второй счетчик указывает соотношение квантователей между P-кадром и последующим за ним B-кадром. Рекомендуемое значение 1,3. Принцип работы тот же, что и описанный выше.
Deadzones Описание Рекомендации
Chroma QP offset Смещение квантователя цветности. Обычно x264 все три цветовых пространства одного кадра (luma, U-chroma, V-chroma) кодирует одним и тем же квантователем. Однако человеческий глаз более восприимчив к изменению яркости, чем к изменению цвета, поэтому компрессия может быть увеличена путем частичного удаления цветовых деталей. При положительных значениях кодек отдает предпочтение яркости, кодируя цветность большим квантователем (с худшим качеством); при отрицательных - цветности, кодируя яркость с худшим качеством. Рекомендуемое значение 0.
Credits quantizer Описание Рекомендации
Macroblock options
  All
None
Custom
Используемые типы блоков. При кодировании изображения кодек разбивает его на макроблоки размерами 16*16 пикселей. Каждый такой макроблок разбивается еще на 2, 4, 8 или 16 частей. Вы можете указать какие типы блоков должен использовать кодек для каждого типа кадров: i8*8, i4*4 - для ключевых кадров; p8*8 (включает также p16*8 и p8*16), p4*4 (включает также p8*4 и p4*8) - для однонаправленных кадров; b8*8 (включает также b16*8 и b8*16) - для двунаправленных кадров. Чем больше вариантов разбиения вы разрешите использовать кодеку, тем лучше будет закодирован материал, ценой потери скорости кодирования. Однако учтите, что включение p4*4 не рекомендуется т.к. это незначительно улучшает качество, но значительно увеличивает время кодирования.
Adaptive quantizers
  Mode Описание Рекомендации
Strength Описание Рекомендации
Quantizers matrices
  Flat(none) Описание Рекомендации
B-frames
  Number of B-frames Максимальное количество последовательных B-кадров. B-кадры - кадры в которых закодированы изменения не только от предыдущих кадров, но и от последующих. Имеют еще большую степень сжатия, чем P-кадры. Несмотря на низкое качество изображения в B-кадрах, их все же рекомендуется использовать т.к. съэкономленные биты идут на улучшение качества остальных кадров. Рекомендуемое значение 1.
Adaptive B-frames Адаптировать распределение B-кадров. При включении этой опции кодек будет более разумно распределять двунаправленные кадры, сокращая их последовательное количество в сценах, которые не сильно от этого выйграют. Имеет смысл только при первом проходе в многопроходном кодировании и только если в предыдущей опции вы выбрали значение больше единицы. "0-Off" - отключить. "1-Fast" - старый алгоритм, достаточно быстрый, рекомендуется. "2-Optimal" - новый алгоритм, значительно медленнее, что становится очевидным при увеличении максимального количества последовательных B-кадров, однако если это значение равно 16, то используйте этот режим, т.к. кодек имеет дополнительную оптимизацию по скорости при таком сочетании опций.
B-pyramid Позволить использовать B-кадры в качестве опорных. Если эта опция включена, то B-кадры могут кодировать изменения от предыдущих и последующих B-кадров. Эта опция доступна только если максимальное количество последовательных B-кадров больше единицы. Если это так, то рекомендуется включить эту опцию.
Weighted B-prediction Взвешенное B-предсказание. Позволяет использовать B-кадры там, где присутствует плавный переход от одного оттенка цвета к другому (градиент или затухание). Потери в скорости кодирования минимальны, поскольку не требуется делать дополнительные вычисления. Так же не сильно влияет на требования декодера к CPU. Рекомендуется включить.
B-frame mode Режим B-кадров. Способ определения векторов движения в B-кадрах. "Spatial" - сравнивает блоки в пределах одного кадра (рекомендуется при однопроходном кодировании), "Temporal" - в соседних. При многопроходном кодировании рекомендуется значение "Auto".
B-frame bias Вероятность использования B-кадров. Положительные значения увеличивают вероятность того, что кодек решит закодировать некоторый кадр как двунаправленный. Отрицательные - уменьшают. Рекомендуемое значение 0.
Custom command line
  Текстовое поле Поле для ввода консольных команд кодека. Не все настройки кодека x264 реализованы графически. Отсутствующие настройки можно задать в этом поле, подробнее о консольных командах кодека можно почитать на странице x264

Настройки XviD

Настройки аудиокодеков

См. также

Статьи на английском языке

MeWIKI - официальная вики по MeGUI
AviSynth - описание фрейм-сервера.
x264, XviD, Snow - описание видеокодеков.
AAC, MP3 , Vorbis - описание аудиоформатов.
MP4, MKV, AVI - описание медиа-контейнеров.

Статьи на русском языке

MeGUI - перекодирование DVD в MP4 (пошаговое руководство).
AviSynth - документация по фрейм-серверу.

Личные инструменты