Продукты Pinnacle

         

Bitrate Curve


С этой закладки вы можете контролировать как меняется битрейт в зависимости от сцены.

Stats file

: - здесь можете (и должны) указать stats файл, который сгенерился во время первого прохода.

Motion based curve modulation

: этот параметр определяет, насколько должен изменяться битрейт по сравнению с базовым, в зависимости от уровня движения. Если Вы решите воспользоваться этой функцией, то начинать эксперименты можно со значения 25, хотя конкретное значение зависит от используемого материала. Если окажется что в результате Вы никак не сможете уложиться в нужный размер, то отключите эту функцию (значение 0), и почитайте описание следующей закладки. Лично я обычно так и делаю.

Curve compression

. Определяет в какую сторону насколько должен меняться битрейт в зависимости от сцены.

Symmetric

: означает что битрейт меняется симметрично, насколько он может подняться на сценах с высоким уровнем движения, настолько же он может опуститься на сценах с низким уровнем движения. Обычно, это значение не приходится выставлять вручную, а достаточно нажать на кнопку Calc... и всё выставится автоматически в зависимости от значения Crosspoint, про которое я расскажу ниже. Значение должно быть 25-30% для полнометражного фильма на один CD, и 10-20% на 2 CD.

Asymmetric

: как несложно догадаться, если отметить этот пункт, то битрейт не будет меняться симметрично.



low

- определяет насколько будет меняться битрейт для медленных сцен (конкретное значение зависит от фильма, размера, разрешения и среднего битрейта. Эксперименты начните с 15%).

high

- определяет насколько будет меняться битрейт для быстрых сцен (конкретное значение зависит от фильма, размера, разрешения и среднего битрейта. Эксперименты начните с 25%).

Luminance correction

. Причина появления этого пункта в том, что кодеку сложно кодировать сцены с малым контрастом (то есть, когда вся сцена светлая, или вся тёмная). Поэтому во время генерации stats файла в него записывается значение "luma noise" (баланс яркости), который тем ниже, чем ниже контраст.




Enable

- после включения этой функции, сцены с низким значением "luma noise" будут получать дополнительный битрейт при кодировании, что положительно скажется на их качестве.



Threshold

: - предел. Определяет начиная с каких значений "luma noise" следует выделать дополнительный битрейт. Распределяется битрейт так: от нуля до половины значения threshold количество дополнительного битрейта плавно увеличивается до максимума, потом к полному threshold, плавно уменьшается до нуля. Рекомендуемое значение этого пункта - 10.



Gain (max)

: определяет максимальную величину на которую может быть поднят базовый битрейт в рамках luminance correction.



End credits

позволяет сэкономить битрейт на заключительных титрах. Функция полезная, потому что в титрах изображение постоянно меняется, keyframe в них ставятся очень часто, поэтому места они занимают немало.



End credits start at frame

: номер кадра начиная с которого идут титры. Побегайте слайдером по фильму в основном окне, что бы определить это значение. Не забудьте, только, удерживать Shift при быстрой промотке.



Bitrate

: значение, до которого надо сбросить битрейт на титрах. Не ставьте меньше 100-150, а то рискуете не прочитать кто же в фильме снимался.



Раздел Filters

. Определяет минимальное и максимальное значение битрейта, которых должен придерживаться кодек.



High-pass

- минимальное значение. Обычно ставят порядка 270, но если Nandub насчитает что для сцены нужен такой битрейт, то он будет скорректирован в соответствии со значением минимально допустимого, в закладке DivX.



Low-pass

- максимальное значение. Оптимальное значение для этого параметра напрямую зависит от разрешения, желаемого размера итогового файла и конкретного фильма. Обычно это 2500-3000 для фильмов на 1 CD, и вплоть до максимума (6000) для фильмов на 2 CD.



Bitrate redistribution

. Определяет как будет делиться битрейт.



Bias

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



Proportional

- чем лучше сжимается кадр, тем меньше бит ему достаётся и, соответственно, наоборот. Может привести к ухудшению качества в спокойных сценах.



Smother

. Сглаживает изменение битрейта, не даёт резким изменениям происходить очень часто. Рекомендуемое значение 3-5%.


Compression levels


На этой закладке определяются уровни сжатия в зависимости от уровня движения. Как я уже говорил, уровень сжатия это второй после битрейта фактор влияющий на качество картинки. Если коэффициент сжатия слишком высок, то к изображению добавляются артефакты сжатия, такие же какие можно наблюдать на слишком сильно сжатых Jpeg.

Доступных настроек немного

DRF - Detail Removal Factor

. Этой опцией настраивается уровень сжатия сразу для всего фильма. Многие этим и ограничиваются, выставляя его 2-8 для фильмов на 1 CD, и 2-5 для фильмов на 2 CD. Конечно же, много зависит от качества исходника, если он очень "шумный" и плохо поддаётся сжатию то, возможно, эти значения придётся увеличить, что бы выдержать требуемый размер файла.

Кроме этого есть пять граф, где можно настроить уровень сжатия в зависимости от уровня движения. Как я уже говорил, многие предпочитают выставить значения when motion over 300 для всех граф, и таким образом полностью отключить эту возможность. Если всё-таки решите воспользоваться ей, то оптимальные значения придётся подбирать самостоятельно, каждый раз, в зависимости от исходного материала. Общая рекомендация такова - чем выше уровень движения, тем более высокий уровень сжатия можно поставить. Ведь чем быстрее движется изображение, тем сложнее заметить артефакты сжатия. И, соответственно, наоборот.

Keyframes quality

: определяет уровень сжатия для ключевых кадров. Так как от качества ключевых кадров зависит очень много в качестве готового фильма, то хорошей идеей будет изменить это значения с 4, что стоит по умолчанию, до минимальных 2.

На этом заканчиваются настройки SBC. Но, радоваться ещё рано, перед тем как перейти к кодированию, есть ещё одно окно, которое требует вашего внимания. Находится оно в Options - Preferences... Из него на процесс кодирования влияют две закладки:



DivX


На ней доступны следующие разделы

Codec Setup

- этот раздел отвечает за базовые настройки кодека. Доступные настройки:

Divx

- выбрав этот пункт, для кодирования вы будете использовать Divx кодек установленный в системе. Крайне рекомендуется.

Mpeg4v2

- выбрав этот пункт, для кодирования будете использовать оригинальный кодек от Microsoft. Качество полученного фильма будет ниже, чем с Divx.

Bitrate

: битрейт в килобитах в секунду. Если вы воспользовались Bitrate calculator, то это значение уже должно стоять. Этот параметр непосредственно влияет на размер итогового файла, но имеет мало общего с конкретными значениями битрейта для каждого конкретного кадра, он просто берётся в качестве базового значения при работе. Поэтому не переоценивайте значение bitrate, если неправильно настроить всё остальное - потеряете всякий контроль над размером файла.

Keyframe interval

- значение в секундах, определяющее когда надо вставить keyframe, если он не вставлен SCD. Счётчик секунд сбрасывается каждый раз, когда SCD вставляет keyframe. 10 - вполне приемлемое значение для этой функции.

Minimum allowed bitrate:

минимально допустимый битрейт. Именно это значение определяет как будут выглядеть самые низкокачественные кадры в фильме. Проблема выбора стоит со всей остротой, чем это значение выше, тем лучше выглядят статичные и второстепенные сцены, но тем меньше места остаётся под динамичные сцены, где действительно нужен высокий битрейт. Таким образом, чем спокойнее фильм, тем больше можно его сделать, чем динамичнее, тем меньше. В любом случае, крайне не рекомендуется ставить меньше 300-350 для полнометражных фильмов на один CD.

Internal SDC

- определяет настройку SCD (Scene Change Detection). Keyframe вставляется если изменилось большее количество ключевых блоков, чем указано. Чем меньше это значение, тем чаще будут вставляться keyframe. Значение 96% подходит для подавляющего большинства случаев.

Space KFs

: значение в кадрах, которое по минимуму должно отделять соседние keyframe. 24 подходит в большинстве случаев.




Anti-shit =)

- второй раздел закладки Divx. Отвечает за поиск битых кадров и кадров с артефактами изображения. Принцип работы прост. Каждый сжатый кадр разжимается и сравнивается с исходным. В результате получается значение количества dB, в интервале от 0 до 95. Доступные настройки:



Shit

: значение, считающееся предельно допустимым. Кадр с коэффициентом ниже заданного считается испорченным и пережимается заново. Соответственно, если поставить слишком большое значение, Вы рискуете тем, что фильм никогда не закодится. Рекомендуемое значение этого параметра - 16. Если выставить 0, это отключит эту функцию, и несколько ускорит кодирование. Стоит попробовать с этого и начать, если ошибок кодека не будет, значит эта функция Вам не нужна.



Min quality

: минимальное качество кадра. Если значение ниже чем Min quality, но выше чем Shit, значит кадр будет перекоден как дельта-кадр, но уже с более низким уровнем сжатия. Если поставить слишком много, это приведёт примерно к тому же, что и при выставлении слишком высокого минимального битрейта. Рекомендуемые значения 28-30. Если Вы уверены в настройках остальных параметров SBC, можете выставить значение 0, и отключить эту функцию, несколько ускорив процесс кодирования.



Motion modulation

: определяет как модифицируются значения Shit и Min quality в зависимости от уровня движения (что это такое будет объяснено на следующей закладке). Высчитывается это по простой формуле: Shit=Shit-modulation*Shit*motion/300 (точно так и для Min quality). Соответственно, чем более динамичные сцены присутствуют в видеоматериале, тем выше должно быть это значение.


DVD Decrypter.


На мой скромный взгляд одна из самых удобных программок, которые делают то, что нам нужно. Программа имеет простой интерфейс, напоминающий DeCSS.

Несмотря на кажущуюся простоту, программа обладает весьма развитыми возможностями:

при запуске она самостоятельно авторизирует DVD диск;

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

программа быстро и правильно определяет ключи, и использует весьма продвинутые алгоритмы для декодирования.

Единственное нарекание к DVD Decrypter, что у меня возникло, он не умеет соединять несколько vob файлов в один. Впрочем, для пользователей W9x, с её ограничением на максимально возможный размер файла, это и к лучшему. Взять эту замечательную программку можно здесь

ftp://ftp.3dnews.ru/pub/www.3dnews.ru/soft/dvd-rip/dvddec.zip

- (378 кб)



у населения стремительно растёт, что


DVD Rip. Часть 1.

Вступление.

Число DVD приводов в компьютерах у населения стремительно растёт, что позволяет всё новым и новым личностям приобщиться к волшебному миру сверхчёткого изображения (пусть и на маленьком компьютерном мониторе) и потрясающего многоканального звука (хм, а вот с этим ещё сложнее чем с изображением, иногда всё это великолепие подаётся на пару маленьких пластмассовых колоночек). Истинные ценители могут морщить носы, но факт остаётся фактом компьютерное (или, как его ещё можно назвать, карманное) DVD сейчас распространено не меньше (а наверно даже и больше) чем "нормальное". Единственное, что несколько огорчает, так это относительно высокая цена DVD дисков. Положение несколько спасает прокат DVD дисков. Однако, посмотрев взятый на прокат диск, его приходиться возвращать обратно, тогда как интересный фильм иногда охота пересмотреть ещё раз. А ещё раз деньги за прокат платить жалко. Тут поневоле вспоминается тяжёлая жизнь любителей музыки несколько лет назад, когда люди бегали одалживали друг у друга компакты и кассеты, переписывали их по десять раз, и потом слушали эти хриплые, глухие записи и были счастливы. Но потом появился "народный" формат mp3, благодаря которому сейчас у практически каждого уважающего себя владельца PC имеется собственная коллекция музыки на жёстком диске или самолично записанных компактах. Никаких магнитофонов, кассет, потерь качества при перезаписи, и тому подобных печальных эффектов. Конечно же, с современными темпами развития компьютерной техники не могла не появиться подобная mp3 технология, применительно к видео. И она появилась.

Divx ;)

Кодек с таким странным названием появился совсем недавно, но он сразу же завоевал заслуженную популярность. Из себя он представляет немного измененный mpeg4 (поэтому его иногда так и называют), разработанный Microsoft. Благодаря Divx стало возможным размещать видеоинформацию вместе со звуком в довольно высоких разрешениях и с высоким качеством, и добиться приемлемых размеров файлов при этом. Для того что бы смотреть такие фильмы, достаточно просто установить в систему Divx кодек, скачать который можно



здесь


. Конечно, качество Divx фильмов гораздо ниже, чем у честного DVD, но, всё-таки, оно достаточно для того, что бы насладиться фильмом, и может быть выше того, что зачастую встречается на видеокассетах. Впрочем, как гласит известная пословица, лучше один раз увидеть, чем сто раз услышать, поэтому не буду больше расписывать преимущества и недостатки Divx, Вы увидите всё сами, если примените на практике ту информацию, что будет в этой статье. Потому что

статья как раз и посвящена вопросу, как сделать из DVD фильма Divx фильм

.

Прежде всего определимся с тем что нужно для того, что бы заняться перегонкой DVD видео в Divx. Главной составляющей, конечно же, является компьютер. Из абсолютно обязательных требований к компьютеру, является только возможность читать DVD диски. Но, кроме этого не будет лишним учесть:

Процесс перекодировки DVD в Divx достаточно длителен, и может продолжаться много часов. Причём всё это время компьютер интенсивно работает, потому что процесс этот весьма ресурсоёмок. Компьютер должен быть достаточно надёжен, и способен выдержать подобную нагрузку.

У вас должно быть достаточно свободного места на жёстком диске, что бы хранить промежуточные файлы. Для работы с одним фильмом надо порядка 5-10 гигабайт свободного места, и то, в некоторых случаях этого может не хватить. Поэтому, не будет лишним иметь гигабайт 5 про запас. Конечно, есть методы, при которых потребуется всего около 600-700 мегабайт свободного места, что бы записать сразу готовый фильм, но при их использовании не всегда достигаются хорошие результаты, поэтому лично я предпочитаю их не использовать.

Если вы работаете под Windows 9x или Windows ME, то необходимо помнить, что эти ОС не могут работать с файлами размером больше чем 2 гигабайта, поэтому не перестарайтесь. Счастливые пользователи Windows NT (например Windows 2000) избавлены от этого недостатка, и могут не беспокоиться.

Понадобиться соответствующее программное обеспечение. Всё необходимое будет перечислено и описано в статье. Большинство используемых программ написано с GNU лицензией, что означает, что вы можете свободно копировать и распространять, вам доступны их исходные коды и можете изменять их по своему усмотрению и т. д...



Как уже говорилось выше, процесс перекодировки DVD видео в Divx весьма ресурсоёмок, поэтому компьютер должен быть достаточно мощным, и иметь много оперативной памяти. Минимальных требований здесь нет, просто чем быстрее процессор, тем быстрее всё пройдёт. Неплохим выбором будет двухпроцессорная машина. Это не даст большого прироста производительности (по крайней мере с большинством современных декодирующих программ), зато позволит нормально работать с другими приложениями, не ощущая падения производительности, пока фильм кодится. Более того, на SMP машине можно даже играть в современные ресурсоёмкие игры, и при этом процесс кодирования не прервется, и игра будет нормально работать, что абсолтно невозможно на однопроцессорной машине.

Определившись с требованиями к системе рассмотрим, через что нам придётся пройти. Рипанье DVD можно разбить на три основных этапа.



Первое.

Декодирование и снятие защиты, с сбросом содержимого DVD диска на жёсткий диск. В некоторых случаях этот этап можно обойти, например когда содержимое диска не закодировано и не защищено (такие диски иногда встречаются, особенно часто в нашей, пятой зоне). Кроме этого, иногда можно не сбрасывать всё на HDD, а кодировать прямо с DVD диска. Этот метод наряду с несомненными преимуществами (экономия дискового пространства) имеет и существенные недостатки. Во первых он срабатывает далеко не во всех случаях, а во вторых, процесс кодирования фильма - дело весьма долгое, и может занимать от 10 до 15 часов, в зависимости от производительности компьютера, содержимого диска и используемого софта. DVD приводы, в отличии от HDD, не рассчитывались на столь долгий срок работы без перерыва, поэтому есть риск угробить привод таким обращением. Впрочем, этот риск не так велик, что бы полностью отбрасывать этот метод.



Второе.

После того как снята защита, необходимо закодировать фильм в Divx. Этот этап обязателен (ведь ради него всё и задумывалось). Существует несколько методов получения *.avi из DVD фильма, каждый из них имеет свои достоинства и недостатки, и более подробно наиболее, на мой взгляд, достойные методы будут описаны ниже.



Третье.

Финальная обработка полученных файлов. Этот этап определяется тем, какой метод был использован на втором этапе, и как там всё прошло. Обычно сюда входят сливание видео и аудио потоков в один файл, и/или исправление проблем с синхронизацией звука и изображения. Кроме этого, если планируется записывать полученный фильм на CD то, возможно, придётся резать файл. Впрочем, если вам повезёт, то этот этап может и не понадобиться.


часть 3. DivХ version 4.


DVD-Rip, часть 3. DivХ version 4.

Сразу же говорюсь. То что вы сейчас читаете не является полноценной и самостоятельной статьёй. Это дополнение к циклу статей по DVD-Rip (части

первая

и

вторая



), и если вы решите что некторые вопросы и определения освещены не полностью - обратитесь к этим статьям.

Новый кодек

DivX-4.0-Beta

появился совсем недавно, как дальнейшее развитие Project Mayo. Как можно заметить, после относительной неудачи с первой бетой, вышедшей под названием OpenDivx, разработчики вернулись к старому названию, теперь это снова просто DivX, только более новая версия. Оборотной стороной этого являются вновь закрытые исходники нового кодека. Посмотрим, удастся ли этой версии повторить успех своего предшественника.

С точки зрения обычного пользователя, то есть человека который только смотрит фильмы, и не подумывает о кодировании, скорее всего удастся. Один из важнейших факторов, способствующем этому, это полная обратная совместимость с версией 3.хх. То есть, новый кодек сможет проигрывать всё, что тяжким трудом накодили армии риперов к сегодняшнему дню. На этом приятные сюрпризы не заканчиваются. Кроме совместимости, в новом кодеке уделили самое пристальное внимание оптимизации кодека для ускорения его работы.

Кстати, совместимостью энкодера с DivX 3.11 и оптимизацией декодера под MMX/SSE занимался человек по имени Евгений Кузнецов, что не может не радовать :-)

В результате, мы получили кодек в котором попытались объединить всё лучшее, что было наработано за время развития Divx, и который, к тому же, и работает быстрее. По поводу включенных наработок я ещё поговорю ниже, а пока, с точки зрения обычного пользователя, нас интересует всего две вещи, совместимость и скорость.

Совместимость.

Мне удалось найти всего один фильм, который после установки нового кодека не захотел проигрываться ни одним из установленных у меня плееров, программы просто вылетали с ошибкой. Правда, закоден этот фильм коряво (не мной :-)), с нарушением всех мыслимых и немыслимых рекомендаций. К тому же, это всего один фильм из почти что полутора сотен, что я пробовал открыть с новым кодеком. Приятным дополнением является то, что с новым кодеком можно смотреть фильмы закоденные OpenDivx кодеком. Впрочем, это не более чем дополнение, так как хоть сколь-нибудь широкого распространения тот кодек не получил, прежде всего из за большего времени необходимого для кодирования с его помощью, при практически идентичном по сравнению с DivX 3.xx качеством.



Можно делать выводы, что хотя обратная совместимость и не является 100%, она очень и очень высока, и большинство пользователей, скорее всего, никогда не столкнуться с проблемами в этом плане. Но это касается совместимости с фильмами. С совместимостью с плеерами, к сожалению, картина не столь радужная, некоторые из них (например Sasami2k) не "видят" нового кодека, и после того как он подменяет собой старый кодек отказываются проигрывать Divx фильмы вообще. Впрочем, эта проблема временная, и с выходом новых версий плееров она, безусловно, будет решена. А пока что приходится довольствоваться старым добрым Windows Media Player’ом, у которого никаких проблем с пониманием нового кодека не возникает.

Скорость.

В новом кодеке обещано повышение скорости декодирования и кодирования. Я не проводил полномасштабных исследований скорости нового кодека (из за недостатка времени, да и тема статьи несколько иная), поэтому точных цифр здесь не будет. Я склонен верить тому, что кодек стал быстрее, на глаз это от 5 до 20%, в зависимости от используемого материала, при правильно настроенной системе. Кстати, вот ещё одна причина, по которой не имеет большого смысла приводить точные цифра загрузки процессора или выброшенных кадров, слишком сильно зависит всё от исходного материала, даже на одной и той же системе. А что говорить про разные! Но главное новшество даже не это, а то как кодек обрабатывает данные если мощности компьютера не хватает. Самое страшное, что могло произойти при проигрывании фильма на слабой системе, при использовании старого кодека, это

рассинхронизация звука и изображения

, которая только нарастала по мере проигрывания. Новый кодек, вроде бы, лишён этого недостатка, теперь если из за недостаточной мощности системы выкидываются кадры из изображения, выкидываются и участки звука. Конечно, сам факт выкидывания чего-либо не радует, но то что это не приводит к рассинхронизации не может не радовать. Из других приятных особенностей кодека, которые могут здорово повлиять на скорость проигрывания фильма, надо отметить наличие встроенного фильтра, который позволяет включаться overlay на неправильно закоденных фильмах (где размер по горизонтали не кратен 32). Раньше подобное можно было получить либо использованием специализированных плееров (например Sasami2k), или при использовании специальных фильтров для DivX кодека (например DivXG400). А ведь не использование overlay на не очень мощных системах приводит к тому, что кроме как в окне фильм посмотреть вообще нельзя.



Из других наиболее известных и полезных внешних фильтров можно вспомнить antifreezer, предназначенный, как легко догадаться из его названия, для борьбы с freeze frame’ами (это когда изображение останавливается, а звук продолжает идти дальше). К сожалению, у меня сейчас нет фильмов с такими багами, поэтому проверить наличие/отсутствие функций борьбы с ними в новом кодеке я не смог. Но, как мне кажется, такая известная и довольно широко распространённая проблема не могла пройти мимо внимания создателей DivX v4 кодека, и что-то по этому поводу было предпринято.

Ещё одной, очень важной и приятной особенностью нового кодека являются более широкие возможности по влиянию на скорость декодирования. В 3.х версиях кодека была возможность выставить CPU Utilization, то есть загрузку центрального процессора. Возможных значений было 4, и при увеличении уровня загрузки улучшалось качество картинки, но требовался более мощный процессор для просмотра. И, соответственно, наоборот, владельцы не очень мощных систем имели возможность пожертвовать качеством ради возможности проигрывания фильма без тормозов. Такая полезная возможность сохранилась и в новой версии кодека, причём количество возможных вариантов увеличилось с 4 до 7. Этот слайдер определяет какой обработке будет подвергнут кадр после распаковки. То есть, по сути дела, он управляет просто набором фильтров, которые будут применены к изображению. Поэтому в новой версии кодека это называется не CPU Utilization, а Postprocessing level, что более правильно по сути. Как уже говорилось, всего этих уровней 7.

Postprocessing level

0 – никакой обработки не производится, изображение выдаётся именно в том виде, в котором было сжато. Загрузка процессора минимальна.

1 – включается горизонтальный деблокинг. Особенности DivX кодека таковы, что при кодировании изображение разбивается на блоки размером 8*8 пикселей. В результате при просмотре на изображении становятся заметны границы этих блоков. Этот артефакт один из наиболее бросающихся в глаза при просмотре, поэтому фильтр который сглаживает края блоков по горизонтали включается самым первым.



2 – включается вертикальный деблокинг. Таким образом на втором уровне включается всё, что кодек может сделать для подавления blockiness эффекта. Один раз увидеть лучше, чем сто раз услышать, поэтому я приведу здесь картинки демонстрирующие работу этих фильтров, взятые из файла справки для Divx v4



Нет деблокинга.



Деблокинг

3-5 – на этих уровнях включаются различные уровни deranging фильтра основанные на изменении цвета. Он призван бороться с артефактами возникающими из за сжатия изображения.

6 – на этом уровне включается deranging фильтр основанный на изменении яркости. Для демонстрации работы deranging фильтров, я снова приведу пару картинок их файла справки для Divx v4.



Не используется deranging фильтр



Используется deranging фильтр.

6 – это последний уровень Postprocessing level, на нём изображение обрабатывается всеми фильтрами доступными кодеку и загрузка процессора максимальна. Зато, качество картинки на старых фильмах, закоденых со старым кодеком, может быть выше, из-за изменившихся фильтров в новом кодеке. Если и этого мало, и суперпроцессор позволяет, то некоторые плееры позволяют наложить на изображение ещё и дополнительные фильтры. В качестве примера такого плеера можно привести Sasami2k, но, как я уже говорил выше, текущая версия этого плеера не может нормально работать с новым DivX кодеком. Впрочем, как мне кажется, такая печальная ситуация не продлится долго.

На основании всего вышеизложенного можно сделать вывод. Разработчики DivX v4 справились со своей работой очень хорошо, и с точки зрения обычного пользователя, просматривающего фильмы, нет практически никаких противопоказаний (разве что несовместимость с некоторыми плеерами, но это явление временное, как хочется надеяться) к использованию этого кодека. Напротив, есть одни сплошные плюсы. Но это с точки зрения пользователя. А как с точки зрения риппера, который не удовлетворяется простым просмотром, а не прочь сделать что-нибудь своё, время от времени.

Encoding.

После установки Divx v4 кодека в системе, в любой из «традиционных» программ для кодирования видеоматериала в списке доступных кодеков появится Divx Codec 4.0 Beta. Выбрав этот кодек, откроется следующее окно:





Окно разбито на несколько разделов, первый из которых



General parameters.



В самом первом выплывающем списке этого раздела, доступном для редактирования скрывается самая продвинутая опция, появившаяся в кодеке. Это



Variable bitrate mode.

Доступны следующие значения



1-pass

- режим кодека, при котором качество итогового файла зависит от настроек кодека в разделе Constant bitrate parameters. Представляет из себя что то среднее между low motion и high motion кодеками в Divx 3.xx кодеке.



1-pass quality based

- режим кодека, наиболее похожий на low motion режим из Divx 3.хх кодека. Битрейт выдерживается максимально близко к заданному, вне зависимости от сцены.



2-pass first pass

- первая попытка реализовать mm4 энкодинг в рамках Divx кодека. Принцип этой реализации схож с реализованным

в пакете SBC

. Видео кодится в два прохода, в первый проход создаётся файл статистики, во второй уже кодится итоговый материал. Это первый проход, когда создаётся файл статистики.



2-pass second pass

- второй проход в рамках реализации mm4 алгоритма нового Divx кодека. В этот проход создаётся итоговый файл, руководствуясь данными из файла статистики, созданным во время первого прохода. Про качество материала полученного таким способом мы поговорим в конце статьи.

Следующим раскрывающим списком, который доступен в этом разделе, является



Performance/quality

Имеется четыре возможных значения

Slowest.

Slow.

Medium.

Fast.

Fastest.

Значения достаточно очевидны, предлагается выбрать что важнее, скорость кодирования или качество итогового материала. Учитывая, что кодировать надо всего один раз, а смотреть много, то оптимальный выбор, IMHO, очевиден...

Следующей идёт самая важная настройка из всех доступных. Это



Output video bitstream



. Это знакомый прочитавшим

DVD-Rip часть 1

битрейт. Задать его можно либо цифрой, в соответствующем окне, либо слайдером, расположенным немного ниже. Как и раньше, максимально доступным битрейтом является 6000.



Quality.



Maximum key frame interval



. Максимальное количество дельта кадров между ключевыми кадрами. В новый кодек изначально встроен механизм вставления ключевых кадров по изменению сцены. Эта цифра, как и следует ожидать, заставляет кодек вставить ключевой кадр если он не вставлен SCD механизмом. По умолчанию стоит 300, что соответствует 10-12 секундам, в зависимости от frame rate.



Default decoder postprocessing level

: Этот слайдер определяет какой уровень постпроцессорной обработки должен выставляться по умолчанию, при проигрывании полученного материала. Не вижу никакого смысла ставить меньше максимального, шестого. Если у кого будет не хватать мощности системы, уменьшит сам.



Max CPU usage

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



Deinterlace

. Если отмечен этот чекбокс, то кодек будет пытаться соединить два полукадра в чрезстрочном изображении и восстановить исходное, прогрессивное.

Следующий раздел.



Constant bitrate parameters.



Настройки в этом разделе управляют работой кодека в режиме 1-pass (не 1-pass quality based).

Maximum quantizer и Minimum quantizer Эти два значения определяют насколько кодек может отклоняться от базового значения битрейта. Чем меньше его значение, тем лучше качество, и тем больше размер. Чем больше – тем хуже качество и меньше размер. Если выставить их одинаковыми, то теряется всякий смысл в использовании этого режима, вы получите 1-pass quality based.

Ниже идут опции позволяющее хоть как-то контролировать изменения битрейта по ходу кодирования.



Rate control averaging period, frames

. Определяет как долго кодек «помнит» как менялся битрейт в процессе кодирования. Высокое значение этого параметра стоит ставить если в кодируемом материале есть длинные динамичные сцены.



Rate control reaction period, frames

. Определяет как быстро кодек меняет битрейт с изменением сцены.





Rate control up/down reaction

. Определяет как резко кодек может менять битрейт при изменении сцены.

Последний раздел.



Variable control parameters.





Log file

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



Frame dropping

: Позволяет задать количество кадров, которые будут выброшены. Кодек определяет кадры, по его мнению не содержащие полезной информации, и выбрасывает их. Сделано это для того, что бы можно было сделать файл маленького размера но с приемлемым качествам. Что до меня, то я с трудом представляю себе ситуацию, когда понадобилось бы так издеваться над материалом.

Практические наблюдения и выводы.

Но это всё была теория, что нас всех действительно интересует - а стоит ли использовать этот кодек для кодирования новых фильмов. И здесь выводы далеко не однозначные. Безусловно, новый кодек лучше старого при кодировании "в лоб", за счёт большей степени свободы при контроле за битрейтом. Поэтому если вы привыкли работать с программами вроде Flask, то это ваш выбор. Правда, у меня было несколько случаев беспричинного вылета Flask`а при использовании нового кодека, так что будьте внимательны. И учтите, что закоденный с новым кодеком материал не будет проигрываться старым кодеком, поэтому если вам захочется обменяться результатами своих трудов, побеспокойтесь о том, что бы человек имел новый кодек.

Но опытные кодеры знают, что наилучшие результаты достигаются при mm4 методе кодирования. Как уже упоминалось, в новом кодеке реализован механизм кодирования в два прохода, схожий с тем, что

используется в SBC


. Однако, несмотря на это, качество полученного с помощью этого метода материала не идёт ни в какое сравнение с тем, что можно получить при использовании FairUse, не говоря уже про SBC, с правильными настройками. То есть, всё гораздо хуже. Да и уровень контроля над процессом кодирования, который имеется в SBC гораздо выше того, что можно получить с новым кодеком. Если быть ещё более точным, то при двухпроходном кодировании новый кодек не даёт практически никакого контроля. Из других преимуществ нового кодека создатели отмечают возможность кодить в разрешениях до 1920*1280, но при максимальном битрейте в 6000, такая возможность представляет собой только теоретический интерес.

Таким образом, выводы, которые можно сделать после ознакомления с новым кодеком таковы. Новый кодек прекрасно подходит для просмотра фильмов. Единственное, что может как то замедлить победное шествие нового кодека в этом качестве, это проблемы с некоторыми плеерами. Но не думаю, что эта продлиться долго.

С точки зрения кодера, заинтересованного в качестве получаемого материала, всё не так радужно. Качество, получаемое с помощью таких программ как FairUse и Nandub, осталось недосягаемым. Хорошая новость состоит в том, что установка нового кодека в системе никак не влияет на работу этих замечательных программ. Так что можно смотреть с новым кодеком, а кодить со старым.


DVD Rip. Часть 2. Smart


DVD Rip. Часть 2. Smart Bitrate Control - новый шаг в сжатии цифрового видео

Вступление

Если ещё несколько лет назад на десяток пользователей PC приходился хорошо если один любитель просматривать видеодиски с фильмами или видеоклипами в формате Mpeg1, то сегодня фильмы в Divx или, реже, в DVD смотрит наверное каждый второй. Более того, многие не удовлетворяются просто просмотром, они хотят делать фильмы самостоятельно. Принимает это разные формы, от перегонки уже оцифрованных фильмов с одного формата в другой, до оцифровки видеофильмов самостоятельно, после чего всё равно встаёт вопрос про оптимальный формат в котором всё это хранить. Спрос рождает предложение и нет ничего удивительного в том, что на рынке появилось множество программ и устройств призванных помочь пытливому оцифровщику. Причём, возможности этих программ и железок, доступных сегодня почти что каждому, таковы, что несколько лет назад подобное стоило столько, что страшно даже подумать, и было по карману только узкому кругу профессионалов. Впрочем, пользователям РС к таким темпам прогресса не привыкать :-). Тема это огромная и страшно интересная, разговаривать про неё можно практически бесконечно. Но сейчас мы поговорим про одну из самых мощных программ для кодирования видео в один из самых удачных форматов Divx, известной как

Smart Bitrate Control

Так называется алгоритм реализующий MM4 (Multiple Mpeg4) энкодинг с помощью одного из дополнений к VirtualDub. Этот пакет отдельно можно взять

здесь


, а весь VirtualDub, со всеми необходимыми интегрированными пакетами

здесь


. Часто это название связывают только с DVD-Rip’ом, но это далеко не так (в отличии, например, от

FairUse


, так же реализующей алгоритм MM4). С его помощью можно оцифровывать любое видео, которое возможно загрузить в VirtualDub, или же оптимизировать (уменьшать размер с минимальными потерями качества) уже готовые видеофайлы, в том числе формата Divx. Впрочем, для DVD-Rip SBC тоже подходит наилучшим образом, поэтому на этом вопросе я остановлюсь поподробнее, тем более что методика применяемая для этого имеет гораздо более широкое применение.



DVD в Nandub.

Главная проблема, с которой придётся столкнуться при кодировании DVD фильма в Divx с помощью Nandub (так называется надстройка к

VirtualDub


реализующая SBC), это как загрузить видео из vob файла. Подобные проблемы (видео не загружается в Nandub непосредственно) могут возникнуть и в других случаях, принцип решения во всех случаях одинаков, меняется может только набор нужного программного обеспечения.

Прежде всего нам понадобится программа, которая будет работать как Frame Server. Как Вы уже знаете, Nandub не может работать напрямую с vob файлами, поэтому ему нужен "помощник", который такую возможность предоставит. Процесс такой помощи и называется Frame Serving.

Doom9


, любезно разрешивший мне воспользоваться в этой статье информацией имеющейся на его сайте, для этой цели рекомендует воспользоваться

Mpeg2Avi



. Поэтому и мы не будем велосипед изобретать, а воспользуемся советом. Загрузив уже рипнутые vob’ы (File - Open), запускаем фильм на проигрывание (F5), ждём несколько минут (если чего-то не работает, то просто сотрите файл DVD2AVI.ini), и наблюдаем за статусом



Из этого окна нам надо определить:

1. Aspect Ratio (пригодится когда будем рассчитывать разрешение фильма).

2. Тип фильма, PAL или NTSC.

3. требуется ли применение IVTC.

На первый вопрос ответ очевиден сразу, второй определяем по Frame Rate (если 25 то PAL, если 30 то NTSC). Ответ на третий вопрос зависит от второго. Если фильм в PAL, значит кадры идут один за другим, и ничего делать не надо. Если фильм в NTSC, то надо подождать несколько минут, и посмотреть какого значения достигнет поле Video Type. Если это Film 95% или выше, значит всё прекрасно, используется порядок кадров 01001 (более подробно про это написано в

PC-DVD FAQ

, в вопросе про виды развёртки), и всё что требуется, это отметить в меню Video - Field Operation значение Forced Film. Если же значение Video Type так и не достигнет 95% или выше, значит используется какой то другой порядок кадров, и с этим придётся что-то делать. Остаётся только выбрать звуковую дорожку в меню Audio - Track Number (советую выбрать None, и сделать звук потом, каким-либо другим методом. Почитать про эти методы можно



в первой части DVD-Rip

). После этого сохраняем проект (не avi!), File - Save Рroject.

Теперь можно решить проблему с IVTC ( порядок кадров, если она была, если нет, то можете пропустить этот пункт). Для этого воспользуемся программой под названием

TMPGEnc

. Запускаем её, и в качестве Video Source загружаем Dvd2Avi проект (*.d2v файл). Потом идём Settings - Advanced.



Первое что надо сделать, это выставить правильный Field Order. Для этого выставляем Еven field first (Field order A), двойной клик на Deinterlace, в открывшемся окне выбираете Method как Even-Odd field (field), и навигационными стрелками меняете кадры по одному. Если изображение не прыгает взад-вперёд, можно себя поздравить, нажать на Cancel и перейти к следующему пункту, если прыгает, то всё равно нажать на Cancel, поменять значение Field Order, и проделать всю операцию ещё раз.

После того, как Field Order выставлен правильно, кликаем два раза на Inverse telecine, и оказываемся вот в таком окне.







Самое простое, что здесь можно сделать, это нажать на кнопку Auto-Set, в открывшемся окне нажать на старт, и подождать сможет ли TMPGEnc сделать всё правильно (как правило, сможет). Определить это очень просто, надо побегать слайдером по фильму, и если нет "ёлочек" по краям движущихся объектов, значит всё в порядке. Если ёлочки есть, то можно попробовать кодить с 29.97 fps, или включить Deinterlace, в окне открывающимся при нажатии на Auto-Set.

Если неохота сидеть и ждать пока TMPGEnc разберётся в порядке кадров автоматически, можно попробовать задать их самому. Для этого надо нажать Control-P. Как я уже говорил, наиболее часто встречающийся порядок 01001. Если он не подойдёт, попробуйте сдвинуть цифры на одну, ещё одну, и так пока полный круг не пройдёте.

После того как всё нормально, закройте окно, и сохраните проект, File - Save Project.

Теперь нам надо из сохранённых проектов сделать что-нибудь, что Nandub сможет прочитать. Для этого служит

VFAPI

. После распаковки этого архива не забудьте запустить vifpset.bat из директории Codec, что бы зарегистрировать его в системе. Интерфейс программы элементарен, сначала кнопкой Add Job загружаете в неё проект полученный в Dvd2avi или TMPGEnc, потом нажимаете Convert, и получается Avi файл. Что бы загрузить проект сделанный TMPGEnc, воспользуйтесь



этим пакетом . Запустите полученный файл в плеере, и убедитесь что всё в порядке, то есть файл проигрывается. Играться он будет медленно, потому что этот avi не настоящий avi. Просто берётся поток который выдаётся frame server’om, декомпрессируется, и покадрово выдаётся "на гора" любой программе, что требует. В том числе и Nandub.

Nandub - основы

Полученный таким (или любым другим) методом файл загружается в NanDub. Первое, что необходимо сделать, это отрезать лишнее (чёрные полосы, или участки с артефактами изображения, что иногда встречается по краям оцифрованного с видеокассет материала) и изменить разрешение (если вы не хотите кодировать в оригинальном разрешении). Для этого придётся воспользоваться фильтром из богатого набора VirtualDub. Заходим в Video - Filters..., выбираем там Add. Из открывшегося списка выбираем Resize, и два раза кликаем на нём. В открывшемся окне вводим значения высоты и ширины (не забудьте, что бы ширина была кратна 32), исходя из своих представлений о том сколько должно быть и в соответствии с Aspect Ratio. Не забудьте выставить Filter Mode, что определяет алгоритм который будет использоваться при изменении размера. Если оставить всё как есть, то само изменение размера приведёт к куче артефактов изображения, на что потом наложатся артефакты сжатия и в итоге без слёз смотреть на полученный фильм будет сложно. Вариантов режимов, которые стоит рассматривать, всего два. Precise bilinear и Precise bicubic. Bicubic обладает более высоким качеством, но размер файлов получается несколько больше. И если учитывать, что после того как видеопоток будет сжат в Divx разница между Precise bilinear и Precise bicubic станет практически незаметна, то можно смело использовать режим Precise bllinear, особенно для фильмов на 1CD. Впрочем, если планируется делать на два диска, то можно подумать и о Precise bicubic. После того как вы выставите всё необходимое для этого фильтра, загорится кнопка Cropping..., нажав на которую получите возможность отрезать лишнее по краям. Там всё достаточно очевидно, и вряд ли нуждается в дополнительных комментариях. Поменяв размеры и отрезав всё лишнее, можно побегать слайдером в основном окне программы, что бы убедиться что результат вас удовлетворяет, и переходить к настройкам самого кодека.



Но для начала немного теории, объясняющей принцип работы SBC. Как вы знаете (если нет, то ознакомьтесь

с первой частью DVD-Rip

, там этот вопрос освещается более подробно), качество видео зависит от Bitrate, то есть количества данных выделяемых на каждый кадр. И подобрать оптимальный битрейт для различных сцен весьма не тривиальная задача. Программисты бьются над этой проблемой, о чём свидетельствует выход на рынок нескольких видов Mpeg4 подобных кодеков, но никто не смог разработать алгоритм, при котором оптимальный битрейт подбирался бы с одного прохода. Как следствие, ни один из кодеков, существующих сейчас на рынке не может дать качество сравнимое с получаемым при использовании MM4 энкодинга и старых кодеков, при наличии хоть какого то

контроля над размером итогового файла

. Не думаю, что это вообще возможно. Разные программы реализующие MM4 алгоритм решают проблему определения оптимального битрейта при нужном размере итогового файла по своему (в качестве примера можно взять FairUse, описанную в первой части), в Nandub это реализовано так. Видео кодится в два прохода, во время первого прохода видеопоток кодится с максимальным для Divx битрейтом 6000, для получения максимального качества, возможного для кодека. Однако, результат этой работы не сохраняется на диск (поэтому можно не беспокоиться по поводу свободного места), а анализируется по нескольким параметрам. Результат этого анализа записывается в файл статистики. Этот файл единственное, что сохраняется на жёсткий диск во время первого прохода. Из информации, которая хранится в этом файле, можно отметить следующее.

Прежде всего, это данные о коэффициенте сжатия каждого кадра. На эту информацию отводится 4 бита, таким образом имеется 16 возможных значения (именно столько комбинаций можно составить из четырёх нулей и единиц). Это значения зависит от соотношения размеров сжатого Divx кадра и исходного. Чем оно больше, тем лучше сжался исходник. Коэффициент 2x означает что кадр плохо поддаётся сжатию (кодек не может выдать вообще не сжатый файл, поэтому коэффициент 1x не используется), а 32x что кадр сжался на максимальную величину, доступную кодеку. Таким образом на качество кадра влияет два фактора - битрейт (когда его не хватает, появляются квадраты) и уровень сжатия (высокие уровни сжатия добавляют артефакты изображения, знакомые всем, кто видел слишком сильно сжатые Jpeg картинки). Кроме коэффициента сжатия в файл статистики записывается размер кадра, баланс яркости (соотношение яркого и тёмного), и кое-какую другую информацию. Данными, содержащимися в файле статистики Nandub руководствуется во время второго прохода, когда исходя из своих настроек кодирует исходный сигнал в Divx, и записывает результат на жёсткий диск. Вооружённые этим знанием, рассмотрим настройки Nandub подробнее.


FairUse.


В самом названии заложено, что не надо её использовать для нехороших целей, таких как обкрадывание бедных медиа издательских компаний, а только с целью расширения кругозора, или экономии ресурса DVD привода :-) Хотя, исходя из того, как выглядит логотип этой программы, про происхождение названия есть и другое мнение...

При старте FairUse выводится лицензионное соглашение с которым надо согласиться, что бы запустить её. Одним из пунктов в этом соглашении является запрет на обсуждение программы, её функций, и даже самого факта её существования. Поэтому я специально оговорюсь, я не буду ОБСУЖДАТЬ FairUse, я её просто опишу. А если мне захочется её обсудить, то я попрошу брата запустить её, и пускай он соглашается с лицензией. В общем, не подкопаетесь ;-).

Итак,

FairUse

(545 кб) это программа реализующая очень интересный алгоритм при декодировании, известный под названием MM4, то есть кодирование одного и того же фильма несколько раз с разными настройками кодеков, что бы в последствии выбрать лучшие части закодированные каждым из кодеков и соединить их вместе. Несмотря на реализацию столь продвинутого метода, работать с FairUse настолько просто, её интерфейс настолько продвинут, что первая мысль возникающая при ознакомлении с этой программой "Так не бывает!". Всё настолько просто, что описывая её можно было бы ограничиться всего лишь несколькими предложениями:

Выберете куда складывать промежуточные файлы, и какой привод у Вас DVD-ROM.

Выберете сам фильм, где предложат (обычно, он самый длинный).

Выберете размер файла, который хотите иметь, и желаемое разрешение.

Жмёте на кнопки Next, Auto, и тому подобные везде, где встретятся.

И всё. Можно наслаждаться результатом. Тем, кому хватает этого описания, бегом качать и кодить, кто хочет узнать немного больше, читаем дальше.

Итак, запустив FairUse, согласившись с лицензионным соглашением вы окажитесь в окне выбора файлов. Вариантов всего два, начать новый проект или продолжить работу над старым. При выборе нового проекта требуется указать имя проекта и место, куда будут складываться промежуточные файлы. Места требуется много, ведь FairUse сначала рипает содержимого DVD диска, а потом хранит там все промежуточные файлы, которые образуются при энкодинге фильма несколькими способами. Точный размер требуемого места определяется кодируемым фильмом а так же количеством и настройками используемых кодеров. Но, обычно, не стоит даже и приниматься если у вас меньше 6-7 свободных гигабайт на разделе.


К сожалению, в текущей версии FairUse нельзя раскидывать временные файлы по разным дискам. После того как выбрано необходимое у пользователя спросят, в каком из приводов находится диск с фильмом, который требуется закодировать (обычно правильно выбирается автоматически), и после этого окажитесь в меню, где предложат выбрать нужный видеофрагмент. Из дополнительной информации по видеофрагментам указывается длина ролика, аудиодорожки и субтитры, что более чем достаточно для того, что бы выбрать то, что нужно. После того как выбрано нужное, соответствующие файлы с DVD диска будет переписаны на жёсткий диск и расшифрованы.

Файлы записываются в собственном формате, и не могут быть проиграны стандартными плеерами. Кроме этого, FairUse не может открывать уже рипнутые на HDD файлы, текущая версия (0.25) работает только напрямую с DVD дисками. Итак, после того как нужные файлы находятся на жёстком диске, вы окажитесь вот в таком окне:



В этом окне можно выбрать диапазон кадров, которые надо декодировать, вручную или выставив слайдер на нужное значение, и нажав на соответствующий значок, а так же вырезать ненужное, чтобы не тратить битрейт понапрасну. Сделать это можно и вручную, но удобнее воспользоваться автоматической резкой. При нажатии на кнопку Auto Set, FairUse выбирает несколько произвольных кадров из выбранного отрезка (обычно 16 или 32), анализирует их, определяет лишние области. Обычно, он делает это правильно, и ничего подправлять не нужно. Выбрав нужное, нажимаем на кнопку Next, и оказываемся в следующем окне, где предложат выбрать режим, в котором FairUse будет работать с видео. Этих режимов два, Native, когда видеопоток будет кодироваться в том виде, в котором он записан на DVD диске, и Field align mode, используемый тогда, когда видео записано в чрезстрочном формате, и каждый кадр разбит на два полукадра (подобных дисков становится всё меньше и меньше). Лучшим выбором будет воспользоваться кнопкой Auto detect, тогда FairUse проанализирует несколько кадров, и подскажет, какой режим лучше использовать.



Выбрав нужный режим, окажитесь в следующем окне, где предложат выбрать размер файла, который желательно получить, и разрешение, в котором фильм должен быть записан. Про основные принципы, которыми следует руководствоваться выбирая эти значения я уже писал, эти рекомендации подходят и для FairUse. Единственное новое понятие, с которым придётся встретиться в этом окне, это Compression Ratio. Это значение означает отношение размера оригинального кадра и компрессированного кадра. Чем оно меньше, тем качество выше. Автор FairUse рекомендует использовать значения не более чем 120:1 для динамичных фильмов, и не более чес 150:1 для спокойных фильмов. У меня нет оснований не доверять ему. При выборе размера учитывается место занимаемое звуком, но текущая версия FairUse не работает со звуком вообще, так что полученный файл будет меньше, останется место для того, что бы добавить звук. FairUse по умолчанию показывает только оптимальные (с его точки зрения) разрешения, если хотите чего-либо другого, снимите галочку с чекбокса Show only preferred resolutions. Выбрав нужное разрешение и нажав на кнопку Next, окажитесь в окне, где предложат выбрать количество и настройки кодеков, которые будут использоваться при кодировании фильма. Это окно является одним из важнейших, и даёт возможность настроить именно ту функцию, которая делает FairUse настолько отличным от других программ энкодеров. В этом окне можно ещё раз уточнить, какой размер файла желательно получить. Здесь же показывается и средний битрейт, который получиться при кодировании выбранного отрезка в выбранный размер. В отличии от большинства других программ, здесь значение битрейта указывается не в кбитах в секунду, а в килобитах на кадр (фрейм).

Для того что бы получить более привычное значение, надо всего лишь умножить эту цифру на количество кадров в секунду (это значение показывалось в окне, где предлагалось выбрать режим работы с фильмом, Native или Field align mode).

Количество кодеков, которые могут быть использованы, 10. По умолчанию стоит 4. Вообще, можно нажать на кнопку Auto Add, и продолжить с тем, что предложит FairUse, обычно его выбор далеко не самый худший. Но можно добавить и самому. Для каждого из добавляемых кодеков можно выбрать его тип, Low-motion или High-motion, битрейт (в битах на кадр), минимальный и максимальный промежуток между ключевыми кадрами. Здесь стоит отметить, что кодеки которые используются при работе FairUse, это не тот Divx кодек, который используется большинством программ энкодеров и практически всеми плеерами. Автор FairUse переделал стандартный кодек, убрал несколько багов с него, и изменил механизм вставки ключевых кадров. Сделано это как с целью повышения качества получаемых фильмов, так и с целью уменьшения размера получаемых файлов. После того, как выбрано количество кодеков, которые будут использоваться, и все они настроены, остаётся только нажать кнопку Next, и начнётся процесс кодирования. Процесс этот весьма долгий, заметно дольше чем это заняло бы с другими программами энкодерами, потому что FairUse делает всё то же самое что и они, только несколько раз, столько, сколько кодеков используется. Приятный сюрприз ожидает владельцев SMP машин. Поддержка мультипроцессорных машин в FairUse сделана лучше всяких похвал, гораздо лучше чем во всех энкодерах, которые мне приходилось пробовать. Из-за этого, на SMP машине FairUse работает практически с той же скоростью, как на той же самой машине работает Flask!



После того как кодирование законченно, вы окажитесь в следующем окне, где предложат ещё раз выбрать итоговый размер файла. Выбрав размер, нажмёте на кнопку Recalculate, и увидите похожее окно:



В этом окне показывается статистика, сколько кадров из какого видеопотока используется, и очень интересная переменная, названная автором diff threshold. Эта цифра представляет собой некий коэффициент определяющий разницу между полученным изображением и исходным. По утверждению автора, всё что ниже 11000 означает практически идеальное качество, от 11000 до 12000 приемлемое. Выше 12000, качество не столь хорошо, как хотелось бы, и лучше увеличить размер файла, но получить лучшее качество. Изменив размер, снова нажмите кнопку Recalculate, и все значения изменятся. Таким образом можно подобрать оптимальный размер файла исходя из значения diff threshold. После этого останется вновь нажать на Next, и вы получите готовый файл с изображеним. Если качество полученного фильма вас не удовлетворяет, то всегда можно открыть проект заново (при старте FairUse выбрать опцию Open an existing project), и переделать его с другим размером файла, и с другим diff threshold.

Останется только наложить звук. Вытащить звуковую дорожку из фильма можно с помощью, например, ac3dec, описанного выше, или какого либо другого инструмента, про то как свести звук и видео вместе, будет описано ниже.

Прежде чем продолжить работу - определитесь, хотите ли вы иметь звук в AC3 формате в итоговом фильме (что будет расточительством, с точки зрения размера итогового файла), или в чём-либо более экономном. От этого зависят дальнейшие действия. Обычно, *.ac3 дорожку сначала переводят в *.wav формат, и потом уже с ним работают. Для этого можно воспользоваться уже знакомой нам утилиткой

ac3dec.zip

. Её возможности весьма широки, что можно было видеть из описания её настройки в mpeg2avi GUI, но для того что бы просто перевести AC3 в *.wav, достаточно всего одного ключа:

Ac3dec ИмяФайла.ac3 -out ИмяФайла.wav

Так или иначе, вы имеете несколько файлов с видео и звуком, всё что теперь требуется, это объединить их.



Страница 7 - Программа VirtualDub. Список файлов




FlasKMPEG


Одна из самых удобных, если не самая удобная программа для кодирования DVD. Существует версия с встроенным CSS декриптором, с помощью которой можно кодировать фильм непосредственно с DVD диска, минуя этап сброса на жёсткий диск. Взять всё это богатство можно здесь

ftp://ftp.3dnews.ru/pub/www.3dnews.ru/soft/dvd-rip/flask.zip

.

Но, как уже говорилось выше, DVD приводы не предназначены для непрерывной работы в течении 10-15 часов, и подобной практикой вы снижаете ресурс привода и, в особо запущенных случаях, это может привести даже к поломке привода. Так что решайте сами, каким методом пользоваться, но лично я советую всё-таки скинуть содержимое DVD диска на жёсткий диск и работать с него.

При первом запуске FlaskMPEG попросит выбрать язык интерфейса. Языков достаточно много, в том числе и весьма экзотические. Но русского нет. Однако, исходные коды flask'а доступны для свободного скачивания и модификации, в полном соответствии с GNU, а языковые файлы лежат свободно в директории Lang, там куда вы установили Flask поэтому если у кого есть желание добавить в него русский язык, он легко сможет это сделать. Со своей стороны гарантирую, что если кто-либо пришлёт мне этот файл, то он появится на 3DNews в кратчайшие сроки. Более того, я не думаю что будет проблемой договориться о включении этого перевода в "официальную" версию FlaskMPEG, так что дерзайте :-)

После того как язык выбран, запустится сама программа, и вы увидите вот такое окно:

Нажимаем на File, и выбираем Open DVD или Open File. Опция Open DVD не означает, что надо открывать именно DVD диск, она означает что Flask должен работать в DVD режиме. В этом режиме Flask открывает не *.vob, а *.ifo файл, и так же как и плеер руководствуется информацией содержащейся в этом файле для определения местонахождения звуковых дорожек, субтитров, длины фильма. Там всё достаточно очевидно, поэтому проблем возникнуть не должно. Естественно, для использования этого режима при чтении фильма с жёсткого диска необходимо позаботиться о том, что бы кроме *.vob файлов скопировать и *.ifo файл, относящийся к фильму. Если вы решите рипать фильм прямо с DVD диска, то обязательно авторизируйте диск перед запуском Flask. Если этого не сделать, то Flask обрушится с непонятной ошибкой.



Продукты Pinnacle


Назначение этой закладки - дать столько контроля над размером итогового файла, сколько это возможно, и при этом предотвращает выпадение кадров.

Раздел Global deviation compensation

. Определяет на сколько кодек должен заглядывать назад (а по моему и вперёд тоже), что бы определять а не слишком ли много битрейта используется. Ведь что бы добавить битрейта в одной сцене, надо убрать его в другой, иначе размер файла станет неконтролируемым.

Playback delay

- время в секундах, делает именно то, что написано парой строк выше. Значение 45, выставленное по умолчанию достаточно хорошо подходит для большинства случаев. Однако, если фильм имеет много длинных динамичных сцен, может понадобиться увеличить это значение. Максимальное работающее значение - 120 секунд.

Раздел Gauge

. Значения выставленные здесь определяют, сколько битов можно взять "про запас" на сценах что это позволяют, и сколько из этого "запаса" можно использовать на сценах которые в этом нуждаются.

Min

: значение до которого может опуститься использование битов. Если выставить слишком мало, получите выпавшие кадры, если слишком много, получите файл слишком большого размера. Рекомендуемые значения 30 для фильмов на 1СD и 40 на 2CD. Если всё равно не влазит, можете попробовать уменьшить значение.

Start

: Начальное значение. По умолчанию стоит 35, можно так и оставить.

Max: значение, до которого может подняться использование битов. Для фильмов на 1CD хороши 70-80, на 2CD можете поднять до 100. Как и в случае с минимальным значением, если не удаётся уложиться в нужный размер, можно попробовать уменьшить и это значение.

Раздел Hacks

. Здесь содержаться пара настроек воздействие которых на кодек иначе как хаком и не назовёшь.

KF boost

- добавляет указанное значение битов к "запасу" битрейта после каждого ключевого кадра. Может немного повысить качество фильма при увеличении размера. К использованию не рекомендуется, но если всё-таки решитесь, не ставьте это значение выше 5%

Freeze

- заставляет кодек верить что "запас" битов всегда полон. Имеет смысл использовать только во время первого прохода, когда генерится файл статистики. Когда кодится фильм, использование этой функции приведёт к неоправданно высокому размеру файла.



Этап первый.


Декодирование, снятие защиты, сброс содержимого DVD на жёсткий диск.

Как все уже знают (а кто не знает, тот

может почитать PC-DVD Faq

и узнать), DVD диски обладают несколькими степенями защиты, встроенными в сам формат. Самый простой способ выяснить есть защита или нет, это попробовать скопировать видео файл с диска, и проиграть его. Но для этого надо, как минимум, знать что копировать. Поэтому давайте рассмотрим, что вы увидите на типичном DVD видео диске. Вы можете увидеть директории с программным обеспечением, можете увидеть файлы отвечающие за автозапуск и инсталляцию дополнительных элементов для PC, можете увидеть директории содержащие целые сайты в *.html формате, да мало ли чего ещё. А можете ничего из этого и не увидеть :-). Содержимое разных дисков может быть различным, но одна из директорий есть на любом DVD видео диске. Называется эта директория

VIDEO_TS

. Это именно то, что нам и нужно. В этой директории можно увидеть файлы трёх разных типов. Это *.BUP *.IFO *.VOB. Первые два используются плеерами для того что бы разобраться, какой файл, когда и как проигрывать, а *.VOB и являются собственно видеофайлами. Фильмы обычно разбиваются на несколько файлов, и кроме фильмов в этой же директории находятся все ролики, которые входят в дополнительные возможности диска, так что файлов может быть довольно много. Все файлы, независимо от расширения, имеют очень похожие названия. Это VIDEO_TS.*, и VTS_01_0.* (цифры могут быть другими). Как уже говорилось, файлы с расширениями *.BUP и *.IFO содержат служебную информацию для плеера, а файл с расширением *.VOB непосредственно видео и аудио информацию. Файлы с именем VIDEO_TS.* содержат ролик идущий при старте диска, обычно это анимированный логотип компании производителя, и поэтому представляют для нас мало интереса. В файлах с именами VTS_01_0.* может быть всё, что угодно, поэтому остановимся на них поподробнее. Первая цифра в названии файла, _01_ означает порядковый номер ролика, записанный на диске. К примеру, VTS_01_0.VOB и VTS_02_0.VOB это два разных видеофайла, никак не связанных друг с другом. Последняя цифра означает номер части одного и того же видеофайла. Например VTS_03_0.VOB, VTS_03_1.VOB и VTS_03_2.VOB это три части одного и того же видеофайла, которые идут друг за другом. Большинство фильмов делятся на несколько частей, обычно размером по одному гигабайту, поэтому если видите несколько больших файлов относящихся к одному видеоряду, то с высокой долей уверенности можно утверждать, что это и есть фильм, записанный на диске. Изредка таких наборов два, обычно это широкоформатная и не широкоформатная версии фильма. Надо учитывать, что первый файл фильма, который идёт с номером 0, обычно содержит меню, которое появляется при старте диска в DVD плеере, и представляет собой либо просто набор статичных картинок, либо статичные картинки вперемешку с анимацией, используемой в меню.


Определившись, где что лежит можно выбрать какой-нибудь *.VOB, не очень большого размера, и для пробы попробовать его скопировать на жёсткий диск прямо в эксплорере. Скорее всего (но не обязательно) вы увидите очень интересное сообщение:



Это означает, что вы не авторизировали DVD диск. Для того что бы сделать это, достаточно просто запустить его на проигрывание в софтовом DVD плеере. Эту операцию придетмся проделывать каждый раз, когда перезагружаете компьютер, или вынимаете/вставляете диск. После того как диск авторизирован, файлы должны копироваться без проблем. Скопировав *.vob можно поставить ваш любимый софтверный DVD плеер в file mode, и попробовать проиграть с его помощью скопированный файл. Если всё играется нормально, то можете поздравить себя, диск не защищён, можно просто копировать все файлы с фильмом, и переходить ко второму этапу, кодированию *.vob в *.avi.

Но, скорее всего, вы увидите мешанину из цветных квадратов и сквозь помехи услышите лишь отрывки чего-то членораздельного. Это означает, что диск защищён, и с этой защитой придётся чего-то делать. Наиболее известной программой, используемой для снятия защиты, является печально известный DeCSS. Это маленькая программка с исключительно простым интерфейсом:



Я не буду ни описывать её подробнее, ни давать линков не неё по нескольким причинам. Во-первых, здесь нечего описывать, и так всё понятно. Во-вторых, эта программка является источником весьма серьёзных судебных разбирательств, и её статус ещё до конца не определён. Кроме этого, производители DVD дисков не сидели сложа руки, и большинство новых дисков уже не могут быть расшифрованы с помощью DeCSS.

Но не только производители DVD дисков хорошо поработали, кроме DeCSS существуют программы, которые делают то же самое, что DeCSS, но значительно лучше. И при этом являются абсолютно



ЛЕГАЛЬНЫМИ



. Причин этому несколько. Во-первых, основной юридической претензией к DeCSS является отсутствие у неё механизма поиска ключа. DeCSS просто хранит в себе список ключей, которые и используются для декодирования. В то время как софтверные DVD плееры и декодирующие программы "нового поколения", не хранят список ключей, а определяют его каждый раз заново, в зависимости от используемого привода и конкретного диска. Второй причиной (это уже сугубо моё личное мнение) является то, что несмотря на все усилия DeCSS так и не смогли толком запретить, поэтому никто не торопится ввязываться в судебные тяжбы по поводу нескольких десятков различных программок, которые плодятся как грибы. Процесс уже необратим, и что бы целиком закрыть ВСЕ лазейки для хитрых программеров, придется

ПОЛНОСТЬЮ запретить и сделать нелегальным DVD на PC в ЛЮБОМ виде



. И то, скорее всего, не поможет :-)

Как бы то ни было, но факт остаётся фактом, есть ряд легальных и законных программ, которые позволяют копировать содержимое DVD видео диска на HDD и при этом снять защиту. Я не буду рассматривать их все (тем более что всех я и не знаю), рассмотрю несколько, самых интересных и полезных, на мой взгляд.


Этап третий.


Итак, в результате всех вышеперечисленных действий, в зависимости от того, каким из способов вы воспользовались, у вас имеется либо готовый фильм, и ничего больше не надо делать, либо готовый фильм, в котором есть проблемы с синхронизацией. Либо просто набор файлов, отдельно видео, отдельно звуковая дорожка, может быть даже разбитые на несколько кусков.

Возможен вариант, когда вас не удволетворяет качество полученного изображения. Наиболее очевидным решением этой проблемы, является полная перекодировка всего фильма заново, изменив либо битрейт, либо разрешение, либо и то и другое сразу. Но, с другой стороны, не хочется сильно увеличивать размер файла. Ситуация кажется безвыходной. Но это не совсем так.

Обсуждая варианты кодеков я говорил, что бывает Low Motion и High Motion кодек. Различаются они тем, что при использовании Low Motion кодека битрейт постоянно остаётся неизменным, и его часто не хватает на быстро меняющихся сценах, зато спокойные сцены кодируются с великолепным качеством. High Motion кодек напротив, меняет битрейт при увеличении потока данных, поэтому динамичные сцены кодируются с более высоким битрейтом и качеством. Оборотной стороной процесса является то, что во время спокойных сцен битрейт падает сильнее, чем нам хотелось бы, и их качество получается существенно хуже. То что мы хотим сделать, это взять лучшее с одного и другого режима, то есть иметь стабильный битрейт в спокойных сценах, и более высокий в динамичных. В теперешней версии Divx нет возможности толком настраивать эти параметры, будем надёятся, что в будущем они появятся. Но, тем не менее, при определённом желании это можно поправить уже сейчас. Основная идея проста. Фильм кодируется два раза, один раз с использованием Low Motion режима, и ещё раз с использованием High Motion. После этого, с первого варианта вырезаются спокойный сцены, со второго динамичные, и то что получиться склеивается вместе. Всё что требуется, это изменить тип кодека в заголовке файла. Делается это любым HEX editor'ом, найдя стринг div4 или div3. Означают они Fast Motion кодек или Low Motion кодек соответственно, и всё что надо сделать, это убедиться в том, что во всех частях, которые планируется клеить, тип кодека называется одинаково. Саму склейку и резку можно, конечно же, делать с помощью VirtualDub, который будет описан ниже, но в силу его особенностей, про которые так же будет упомянуто ниже, он далеко не лучший выбор, когда приходится работать с большим количеством частей одного фильма, и лучше делать это чем-нибудь более продвинутым, и увы, не бесплатным.

Однако, резать фильм на куски вручную, выбирать различные участки и сводить их, занятие весьма утомительное, даже когда имеется всего лишь два файла, над которыми надо работать. А ведь очевидно, что если закодировать фильм с большим количеством кодеров и настроек, то можно добиться ещё меньшего размера файла, и ещё более высокого качества. Однако, объём работы, который придётся проделать для этого такой, что страшно даже приступать. Неужели нельзя этот процесс как-нибудь автоматизировать? Конечно можно, и соответствующее программное обеспечение уже написано. Одной из самых удобных, и в то же время одной из самых мощных программ, которые занимаются этим, является



Этап второй.


DivX ;) encoding.

Прежде чем приступать к обзору программ для кодирования в Divx, необходимо остановиться на нескольких моментах.

Кодирование - это наиболее долгий этап из всего, что придётся делать. В зависимости от мощности компьютера, кодируемого фильма, и используемого программного обеспечения, этот процесс может занять от 10 до 15, и даже больше часов. При всём при этом, программное обеспечение, которое используется для этого далеко не идеально, поэтому возможны самые досадные ошибки и непонятные глюки. Очень обидно обнаруживать, что после 10 часов работы компьютера полученный фильм никуда не годится. Поэтому, я НАСТОЯТЕЛЬНО рекомендую, перед тем как приступить к кодированию непосредственно фильма, выберите один из рекламных роликов, которые встречаются на многих дисках, в 2-3 минуты длиной, и попробуйте закодировать его. На это уйдёт 10-30 минут, и это позволит выловить большинство подводных камней, с которыми вам, возможно, придётся столкнуться. Кроме этого, это даст возможность относительно быстро опробовать несколько различных методов, и выбрать из них тот, что лучше всего вам подойдёт. И только после того, как начнут получаться идеальные *.avi файлы из коротких роликов, без артефактов изображения, с идеально синхронизированным звуком, можно будет приступать к кодированию самого фильма.

Если будут хоть малейшие проблемы с двухминутным роликом, то в двухчасовом фильме этих проблем будет в 60 раз больше, поэтому не отступайте до тех пор, пока не добъётесь действительно идеального качества.



Кодирование в Nandub


После того, как читатели получили общее представление о настройках Nandub, можно, наконец то, перейти к самому процессу кодирования. Первое с чем надо определиться это... А охота ли вам копаться в настройках самостоятельно, или доверяете кому-либо другому. Если второе, то можно с чистой совестью забыть всё, что было прочитано про настройки Nandub, и воспользоваться одним из готовых конфигурационных файлов. Взять их можно

здесь

. Загружается он через File - Load Processing settings... Преимущество этого метода в том, что он здорово облегчает жизнь гражданам с различной степенью лености, но очевидный минус, что если что-либо пойдёт не так как задумывалось, то без знания настроек Nandub’a поправить что-либо не удастся. Итак, как бы то ни было, вы загрузили фильм, изменили размер, отрезали всё лишнее, выставили все настройки. После этого у вас есть несколько выборов.

Первый

это File - Two passes... В этом случае вас спросят сначала куда сохранять файл статистики, потом куда сохранять сам фильм. Указываете и то и другое, и идёте спать. Nandub сам кодит сначала одни проход в 6000, потом второй, уже финальный. В результате Вы получаете два файла, файл статистики, и сам фильм. Если фильм закодился хорошо, файл статистики больше не нужен. Способ подходит если вы абсолютно уверены, что всё выставлено правильно.

Второй

- First pass... В этом случае у вас спросят только куда сохранить файл статистики. Фильм будет закоден один раз, и сохранится только файл статистики.

Третий

путь, предполагает что вы уже имеете файл статистики.

Откуда он взялся, то ли вам не понравилось качество фильма закоденного в два прохода, но файл статистики остался, то ли вы сделали его специально, за один проход - не имеет значения. Единственное обязательное условие - файл статистики должен делаться с этим же фильмом, в том же разрешении, и при тех же настройках фильтров. Но не кодека! То есть, если вы передумали делать фильм на один диск и решили сделать на два, если наоборот, вместо двух один, если поменяли уровень сжатия, да что угодно из раздела Video - SBC Options - SBC Settings..., то новый файл статистики не нужен. Но если вы решите поменять, например, разрешение, или наложить ещё один фильтр, то обязательно понадобиться и новый файл статистики.


В этом случае просто указываете на этот файл в Video - SBC Options - SBC Settings..., на закладке Bitrate Curve, и сохраняете фильм File - Save as AVI. На мой взгляд, этот способ наиболее предпочтителен. Во время кодирования можно полюбоваться вот такой статистикой в Status windows.



Сплошной ряд вертикальных синих полосок в этом окне показывает размер кадров, кодируемых с использованием Low motion кодека, если вы вопреки всем советам не отключили использование Fast motion, то при переключении на него полоски станут зелёными. Высокие вертикальные красные полосы означают ключевые кадры вставленные SCD при использовании алгоритма по умолчанию (основанного на уровне движения), а высокие жёлтые показывают ключевые кадры вставленные SCD при использовании альтернативного алгоритма (на основе смены контраста). Белая изломанная линия показывает кривую битрейта (Bitrate curve), а зелённая изломанная линия показывает уровень движения.

Из его несомненных плюсов SBC (который, на мой взгляд, перевешивает все возможные минусы), можно отметить возможность "прикинуть" настройки. Всё что для этого надо, это выбрать отрезок фильма (слайдером и кнопками Home и End, кто не понял, бегом читать

первую часть DVD-Rip

) минут на 5, и закодить его отдельно, что бы оценить качество настроек. Лучше всего таких отрывков проверить несколько, что бы быть полностью уверенным. Кроме этого, если уже имеется готовый звук, то его можно сразу же наложить, в процессе кодирования (меню Audio), что нет никакого смысла делать во время первого прохода. Но, в любом случае, выбор за читателем. Пробуйте, и всё получиться!

В самом конце хотелось бы ещё раз высказать благодарность

Doom9


за любезное разрешение использовать материалы с его сайта при подготовке статьи.

Часть 3. DivХ version 4.0 beta


MPEG2AVI.


Mpeg2Avi представляет собой программный пакет, делающий почти всё тоже самое что и Flask, плюс ещё кое что. Это сборник из нескольких утилит, большинство из которых предназначено для командной строки, и GUI.EXE, интерфейс для всех этих программок. Скачать их можно здесь -

ftp://ftp.3dnews.ru/pub/www.3dnews.ru/soft/dvd-rip/mpg2avi.zip

, source code здесь -

http://doom9.org/Software/Files/Encoders/mpeg2avipx3_009.zip

. Несмотря на наличие продвинутого интерфейса, работа с этим пакетом требует гораздо лучшего понимания что вы делаете, поэтому

думайте

, прежде чем изменить что-либо. Зато, mpeg2avi работает заметно быстрее чем flask, и файлы полученные с его помощью обычно меньше.

Это рабочее окно программы, и оно позволяет работать с несколькими утилитками из одного места. После запуска программы, вы окажитесь в разделе, где можно выставить настройки для утилитки под названием mpeg2avi, которая отвечает за декодирование видео с *.vob файла в другой формат. Прежде чем начать работу необходимо указать, где находятся исполняемые файлы утилит используемых GUI, где находятся файлы которые необходимо декодировать, и куда следует класть готовые файлы. Всё это делается нажатием на любую из кнопок, в разделе Locate Files. Вам предложат выбрать эти значения для всех разделов сразу, но это не обязательно, выбирайте только то, чем в самом деле собрались воспользоваться. Mpeg2avi не работает с *.ifo файлами, как flask, и не загружает автоматом все *.vob'ы относящиеся к первому. Более того, mpeg2avi не всегда может открыть *.vob не являющийся первой частью. Наилучшим выходом из этой ситуации является объединение всех *.vob'ов в один, что можно сделать некоторыми рипперами, например Smart Ripper или vStrip (для которого есть раздел в интерфейсе mpeg2avi GUI). Но, этот способ не подходит пользователям Windows9x и Windows ME, по причине которую я уже упоминал, эти ОС не могут работать с файлами размером больше 2 гигабайт. Используйте NT!

После этого необходимо настроить параметры кодека. Их несколько.




Fps

- количество кадров в секунду. Как вы уже знаете, в оригинале это 30 для NTSC и 25 для PAL. Не следует менять это значение для PAL, и можно выставить 23.976 для NTSC.



Postfilter quality



- качество постфильтра. Всего два значения, качество или скорость. Я не вижу причин, по которым надо жертвовать качеством в угоду скорости декодирования.



Reference Quality -

здесь можно выбрать iDCT (Inverse Discrete Cosine Transform) алгоритм. Используется для декодирования MPEG2 потока. Однозначных рекомендаций, какой из них лучше нет, можете провести свои эксперименты, и сделать свой выбор. Я, обычно, использую 32 bit MMX iDCT.



IVTC frame-offset



. Не совсем понятная для меня опция, я её не включаю.



Output

. Графический режим, в котором будет кодироваться получаемый файл. AVI - YV12 - 4:2:0 for DivX ;-) хороший выбор, для наших целей.

После того, как выбраны настройки самого кодека, можно переходить к следующему разделу. Здесь можно задать значения



Open VOB bitstream at LBA

. Ещё один не совсем понятный мне пункт, предположительно он должен помочь при работе с файлами очень большого размера, но я не уверен. Поэтому, я оставляю его нетронутым.



Frame Range

. Позволяет кодировать не весь *.vob целиком, а только часть его, определяемую начальным и конечным кадром.



Decode video +

. Настоятельно рекомендую отметить этот пункт и выставить здесь No Audio. Звук можно (и нужно) вытянуть другим инструментом, именно для этого и предназначенным, что будет и быстрее и удобнее. Если не отметить здесь этот пункт, то программа вытащит ВСЕ аудиодорожки из *.vob'а, и скинет их на жёсткий диск в *.ac3 формате. Дорожек этих будет столько, сколько их было в *.vob файле, то есть на каждый отдельный язык по дорожке, плюс, если есть, дорожка с комментариями режиссёра, или чем там ни было ещё. Обычно аудиодорожек не менее четырёх. Каждая из них займёт около гигабайта места на жёстком диске. Неразумно так использовать дисковое пространство, если нужна всего одна дорожка.



После этого останется только выбрать разрешение. Слева можно выбрать пропорции фильма. Фильм на DVD может быть записан в трёх основных пропорциях:

4:3 - формат стандартного монитора или простого телевизора. Обычно именно в нём записаны рекламные ролики, на которых я так упорно советую вам экспериментировать.

16:9 (1.85:1) – широкоэкранный формат. Его отличают несколько меньшие чёрные полосы сверху и снизу экрана.

16:9 (2.35:1) – полностью широкоэкранный формат. Если записанный в таком формате фильм смотреть на стандартном компьютерном мониторе, то около половины экрана заняты чёрным цветом.

Можно выбрать нужный формат из списка, но в этом случае фильм будет кодироваться именно в том разрешении, в каком он записан на DVD, а это не самая лучшая идея.

Наилучшим выбором будет вручную выставить необходимые размеры. Это делается в правой части окна. Можно просто отметить чекбокс Half.Res mode, и включить этот режим, и тогда резолюция будет просто уменьшена вдвое, с сохранением всех пропорций. Но и этот метод не самый лучший - разрешение полученного таким образом фильма будет слишком мало.

Наилучшим методом будет задать размер самостоятельно. Для этого необходимо указать несколько значений.



Downsizer X

– размер в пикселях по оси X.



Downsizer Y

– размер в пикселях по оси Y.



Output Cropping



– этот показатель зависит от толщины чёрных полос сверху и снизу, и указывает сколько надо "отрезать", чтобы не разбазаривать на них битрейт. То есть, размер по Y равны, размер по X несколько меньше. Проверить свои настройки можно нажав на кнопку Preview My Avi.

Полученные настройки можно сохранить в меню Profiles, находящемся наверху. Оттуда же можно их и загружать. Благодаря этой замечательной возможности, можно не настраивать размеры для своих фильмов самостоятельно, а воспользоваться уже готовыми, любезно предоставленными мне

Doom9


,

http://doom9.org/

Взять их можно здесь (

ftp://ftp.3dnews.ru/pub/www.3dnews.ru/soft/dvd-rip/profiles.zip



).

Учтите, только, что эти профили сделаны для NTSC фильмов, поэтому если ваш фильм записан в PAL, то не забудьте изменить fps на 25.

Итак, после того как всё настроено, можно нажать на кнопку Create My Avi, и немного расслабиться.

После того, как уже имеем видеоизображение, необходимо получить соответствующую ему аудиодорожку. Для этого в верхней строке необходимо выбрать AC3DEC, и откроется раздел являющийся надстройкой к ac3dec.exe, взять которую можно здесь (

ftp://ftp.3dnews.ru/pub/www.3dnews.ru/soft/dvd-rip/ac3dec.zip

), source code здесь (

http://doom9.org/Software/Sources/ac3decode_src.zip

).

Выглядит он так:



Ac3dec предназначен для перекодировки ac3 потока в обычный wav. В этом окне можно настроить следующие параметры:



Global Output Gain



- позволяет настроить громкость конечного *.wav



Global Output Inverse-Squaded Gain

- перевести это можно как настройка громкости оборотно-широкого сигнала, но что это значит я не совсем уверен.



Center Channels Gain

- громкость центральных каналов (два передних и голос).



Rear Channels Gain



- громкость задних каналов (левый задний и правый задний)



LFE Channel Gain



- громкость низкочастотного канала (басы).

Поставив соответствующие галочки, можно вообще выключить ненужные каналы, передние, задние, или басы.

В находящемся рядом разделе можно включить следующие опции:



Span Over Multiple VOB Automaticly

- позволяет автоматически декодировать дорожку на нескольких частях одного фильма. Учтите, что декодер MPEG, используемый в этом пакете не умеет перескакивать по нескольким частям.



Overwrite Output WAV File without Asking

- позволяет отключить запрос не перезапись файла с таким же именем.



Convert the 48000 Stream to 44100

- конвертирует 48КГц звук в 44КГц.



Limit the Length of the Decode to

- позволяет задать значение в секундах, когда следует прекратить кодирование.



Seek to Timecode of ac3 (00:00:00)

- позволяет перескочить в нужное место звуковой дорожки. Определяется по времени (часы, минуты, секунды)





Seek to VOB LBA Position (Sector)

- позволяет перескочить в нужное место звуковой дорожки. Определяется номером сектора.



Seek to File Megabyte Position

- позволяет перескочить в нужное место звуковой дорожки. Определяется размером в мегабайтах.



File Writing Buffer Size

- размер кеша используемого при записи.



Amount of Silence at the Start

- длина тишины в миллисекундах, которая должна предварять начало звуковой дорожки в полученном файле. Не злоупотребляйте этим параметром, он приводит к разсинхронизации звука и изображения.

В левом нижнем окне можно выбрать нужную звуковую дорожку, из доступных в *vob'е. Там же можно прослушать то что выбрали, нажав на кнопку Play Source. В процессе проигрывания можно менять звуковую дорожку (0-9), и манипулировать громкостью различных каналов (S,X,D,C,F, и F), что позволяет определить оптимальные значения громкости этих каналов. После того как определенны все необходимые параметры, остаётся только отметить чекбокс PCM WAV, и нажать на кнопку Create My WAV.

Осталось ещё два раздела.

Один -

VirtualDub

, который управляет программой VirtualDub. Однако, эта часть интерфейса сделана глючно, буквы залазят друг на друга, поэтому лучше воспользоваться самим VirtualDub, который и будет описан ниже.

Последний раздел -

vStrip

. Этот раздел предназначен для работы с *.VOB файлами, и один из вариантов GUI для vStrip упоминался в начале статьи. И тот вариант GUI удобнее того, что представлен в этом пакете, поэтому лучше использовать или этот отдельный GUI, или вообще какую либо из других утилиток, например Smart Ripper. Из интересных особенностей vStrip, необходимых для работы mpeg2avi, можно отметить только возможность объединения нескольких *.VOB'ов в один, и возможность сделать из нескольких *.VOB файлов один *.m2v файл с только одной звуковой дорожкой, что позволяет несколько уменьшить размер рипнутого DVD фильма без потери качества. Для того что бы работать с несколькими VOB'ами сразу используются *.lst файлы. *.lst файл – это простой текстовой файл примерно следующего содержания:

D:\DVD\VTS_01_1.VOB

D:\DVD\VTS_01_2.VOB

И представляет собой просто список VOB'ов которые должны быть задействованы. Со всеми остальными настройками, если решите воспользоваться этой программкой, попробуйте разобраться самостоятельно.



Страница 6 - Программа FairUse




Nandub - настройки


Львиная доля из богатства настроек SBC находится в меню Video - SBC Options. Но начинать работу с Nandub нужно с пункта BitRate Calculator... При его выборе откроется следующее окно:

В этом окне доступны следующие значения:

Bitrate:

значение высчитанного битрейта. Высчитывается и автоматически подставляется в настройки SBC. Если Вы решили воспользоваться калькулятором, то это окно трогать не стоит.

Final size:

Требуемый размер файла.

Количество частей

- количество файлов заданного размера (например, на сколько CD планируется разбить готовый материал).

Кроме этого, есть раздел Audio, в котором доступны следующие опции:

Kbps

: учитывает место требуемое под звук определённого битрейта.

Mb

: учитывает место требуемое под звук определённого размера.

Get data from audio source

- данные о месте требуемом под звук берутся из меню Audio.

Заполнив все необходимые поля остаётся нажать на кнопку Calculate, и требуемый битрейт будет высчитан исходя из выставленных значений и загруженного в Nandub видео.

Определившись с битрейтом, тем или иным способом, можно переходить к настройкам непосредственно SBC, пункт SBC Options... После выбора этого пункта откроется окно, разделённое на несколько закладок. От значений выставленных на этих закладках зависит качество и размер полученного файла. Первая закладка называется



Порезка


Ещё одним действием, которое часто требуется в нелёгком деле рипанья DVD фильмов, является необходимость разбить видеофайл не несколько меньших, или соединения нескольких видеофайлов в один.

Для того, что бы вырезать кусок фильма, требуется всего то загрузить его в VirtualDub, поставить слайдер на начало нужного отрезка (надеюсь, вы ещё не забыли, что передвигаться слайдером по фильму нужно только с удерживаемым Shift), и выбрать пункт Set selection start из меню Edit. Того же самого можно добиться просто нажав на Home. После этого, двигаете слайдер в конец нужного отрезка, и выбираете пункт Set selection end из того же меню. Того же самого можно добиться кнопкой End. После этого, выбранный участок обозначится синим цветом.

Останется только выбрать пункт Save segmented AVI... раздела File. Как обычно, не забудьте выставить Direct stream copy для видео и аудио.

Для того что бы соединить два видеофайла, загружаете первый файл в VirtualDub, выбираете пункт Append video segment раздела File, в открывшемся окне выбираете файл который хотите "приклеить" к концу уже загруженного файла, и тоже загружаете его в VirtualDub. После этого просто сохраняете полученное через пункт Save AVI. И, как я не устаю повторять (!!!), не забудьте выставить Direct stream copy, и для видео и для аудио. Если вы соединяете несколько фрагментов одного и того же фильма, и планируете налаживать звук после этого, то примите во внимание, что VirtualDub не всегда режет файлы с точностью до кадра, часто он добавляет или отнимает от 1 до 15 кадров, что может составлять до полусекунды в реальном времени.

Если вы просто соедините такие отрезки, и просто наложите звук на них, то с места стыка получите разсинхронизированные звук и видео, что исправить будет невозможно. Способов борьбы с этим явлением два. Во-первых, можно попробовать разрезать фильм в другом месте, обычно удаётся подобрать место разреза так, что бы в итоговом файле перескок составлял не более 1-2 кадров, что составляет всего 1/25 или 1/12 часть секунды в реальном времени, и разсинхронизацию на такое малое значение практически невозможно заметить. Либо можно разрезать или отредактировать*.wav файл в любом редакторе *.wav файлов и либо налаживать отредактированный *.wav на плохо склеенный фильм, либо сначала сделать две части со звуком, и соединить уже их.



Программа Flask


Для начала небольшая вводная лекция о

битрейте, разрешении, и качестве

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

Основные принципы которые необходимо понимать выбирая битрейт, просты. Чем меньше кадров в секунду имеет фильм, тем больший объём данных приходится на каждый конкретный кадр. Чем меньше разрешение фильма, тем более тщательной обработке подвергается каждый пиксель, и тем выше качество изображения. С количеством кадров в секунду особо не побалуешься, потому что могут возникнуть серьёзные проблемы с синхронизацией. Для PAL формата лучше вообще ничего не менять, и делать Divx фильм с "родным" количеством FPS, 25 кадров в секунду. Другое дело NTSC формат, в нём можно без всякого ущерба уменьшить количество FPS с оригинальных 30 до 23.976, что я и советую делать.

С изменением разрешения фильма имеется гораздо более широкий простор для деятельности, поэтому остановимся на этом вопросе подробнее. Когда битрейт установлен, то на каждый кадр приходится определённое количество информации, и увеличив или уменьшив размер кадра вы добъётесь только того, что на каждую отдельную точку будет приходиться больше или меньше данных. Чем данных больше, тем более тщательно обрабатывается точка, и тем выше качество картинки. Таким образом, если вдвое увеличить разрешение, то для получения такой же тщательности обработки каждого пикселя, битрейт придётся увеличить в четыре раза. Самое интересное, что при этом вы вовсе не обязательно добъётесь в двух или четырех кратного улучшения изображнеия. При масштабировании Divx не весь экран далеко не всегда можно с уверенностью отличить 640*480 от 480 *360. Поэтому очень часто фильмы записанные с более низким разрешением и более низким битрейтом, при просмотре в полноэкранном режиме выглядят гораздо лучше, чем те же фильмы в более высоком разрешением, и большим битрейтом. При этом, первый вариант, с низким разрешением и битрейтом ещё имеет и меньший размер файла. Вооружённые этими знаниями, вернёмся к нашим настройкам.


Итак, значение битрейт 910 kbit/sec, стоящее по умолчанию, даёт неплохое качество при приемлемых размерах файлов, и рассчитано на разрешение 512*384, или где-то близко к этому. Иногда встречаются фильмы, когда на такое разрешение ставят битрейт 1600-2100 kbit/sec. Кроме желания добиться оптимального качества, битрейт меняют тогда, когда хотят уложиться в определённый размер итогового файла (например, что бы уместить его на один CD). На самом деле нет способа, с помощью которого можно абсолютно точно вычислить размер конечного файла. Но примерно прикинуть можно. Всё что для этого надо, это перемножить битрейт на длину фильма в секундах. Не забудьте, только, поделить битрейт на 8, что бы получить значение не в БИТАХ в секунду, а в БАЙТАХ.

Выбрав видеокодек, надо выбрать звуковой кодек. Как показала моя практика, именно с реализацией звукового сопровождения бывает больше всего проблем. Несмотря на все усилия программистов работающих над Flask, он не лишён недостатков, и на разных компьютерах работает по разному, проявляя самые различные баги. Плюс существует немало модифицированных версий Flask, каждая работает по своему, и имеет свои уникальные баги. Наиболее часто эти баги проявляются именно в работе со звуком. Выбирая audiocodec наиболее логичным выбором было бы выбрать Divx ;) Audio, но выбор этот не лучший - качество звука не выдерживает никакой критики. Предпочтительней выбрать Mpeg Layer-3, более известный как MP3.

Сделав это, после кодировки можно получить сразу готовый фильм. Это в теории.

А на практике это не всегда так, и после многочасового кодирования можно получить файл, в котором звука либо не будет вообще, либо он будет записан неправильно. К тому же, возможна ситуация, когда этот файл не будет проигрываться стандартными плеерами. Причин этого печального явления я не знаю, возможно проблема не столько в Flask'e сколько во внешних аудиокодеках, используемых Flask'ом. Хотя, те же самые кодеки можно использовать в других программах, без таких проблем. Если среди читателей есть люди, которые считают себя крутыми программистами, и которым нечем заняться в свободное время, то они могут поковырять исходные коды Flask (



http://doom9.org/Software/Sources/FlasKMPEG_0594_Source.rar



), и попытаться его улучшить.

А пока, наилучшим выбором будет вообще не декодировать звук на этом этапе, и сбросить его на диск в том виде, в каком он записан на DVD диске. Про то, как это сделать будет написано ниже. Если же вы всё-таки хотите делать всё сразу, то ещё раз повторяю свой совет, перед тем как работать с самим фильмом, выберите какой-нибудь короткий ролик минуты на 2-3, и поэкспериментируйте на нём. Но учтите, что в силу каких то своих особенностей, flask может сглючить, если в него без перезагрузки загрузить несколько роликов подряд. Поэтому, после каждого эксперимента будет не лишним перезагрузить flask, а перед кодированием самого фильма желательно вообще перезагрузить компьютер.

Кроме выбора кодеков, в этом же окне можно выбрать несколько других опций. Пометив чекбокс Enable Watermark, получите возможность загрузить собственный логотип, который наложится поверх закодированного фильма, и которым Вы сможете помечать закодированные вами фильмы. Flask позволяет определить координаты, по которым логотип должен отображаться, и метод, по которому он будет налаживаться. Это Alpha, когда логотип становится полупрозрачным, Mask, когда прозрачными становятся только некоторые области, и Copy, когда логотип накладывается именно в том виде, в котором он нарисован.

Ещё одной опцией, выставляемой в этом окне, является возможность указать flask'у, что бы он разбивал полученный фильм на несколько частей заданной длины. К сожалению, длина задаётся не в килобайтах, а в секундах. Если кого это сильно огорчает, то исходники Flask'а можно скачать прямо от нас (

http://doom9.org/Software/Sources/FlasKMPEG_0594_Source.rar

) :-)

Закончив с окном Output Format Options, можно переходить к пункту

Global Project Options (Export Movie Settings)

, в котором, как видно из названия, находится всё самое интересное.

Первой закладкой в открывшемся окне является

Video

.



Это окно разбито на несколько разделов. В первом из них можно выбрать разрешение, которое должен иметь итоговый фильм. Каких либо однозначных рецептов какими должны быть эти цифры, как уже говорилось, нет. Подробнее про то, на что надо ориентироваться выбирая разрешение, читайте несколько выше, раздел о битрейте, разрешении и качестве. Здесь добавить можно только то, что чем выше разрешение, тем мощнее компьютер понадобиться для того, что бы проиграть фильм без тормозов. Единственным условием, которое надо соблюсти, это правильные пропорции. Набор стандартных разрешений, которые используются при кодировании большинства фильмов, таков:



1:2. 35 movies: 720x304, 640x272, 576x248, 512x216, 480x208, 400x168

1:1.85 movies: 720x392, 640x344, 576x312, 512x280, 480x256, 400x216

1:1.33 movies: 720x540, 640x480, 576x432, 512x384, 480x360, 400x300

Что бы не ошибиться ненароком, нажмите на кнопку Show Out Pad, и откроется окно со случайно выбранным из фильма кадром, на котором сможете поизменять размеры и посмотреть, что получится.

После того, как выбрано и проверенно желаемое разрешение, можно выбрать

iDTC (Inverse Discrete Cosine Transform)

опцию. Эта опция определяет алгоритм, который будет использоваться при декодировании mpeg потока идущего с DVD диска. По умолчанию здесь стоит MMX iDTC, что является лучшим выбором. Конечно, при том условии, что ваш процессор поддерживает MMX инструкции. С другой стороны, если он не поддерживает (а если вы сумели запустить Flask, то это значит что ваш CPU в лучшем случае iPPro 220 Mhz), то я бы вообще не советовал заниматься рипаньем DVD, и серьёзно подумать об апгрейде.

Следующей опцией, доступной для редактирования, является

fps

, количество кадров в секунду. Зависит оно от того, под какую систему рассчитан фильм, 25 кадров для PAL фильмов и 30 для NTSC. Обычно flask самостоятельно определяет это значение, и ничего изменять здесь не приходится. Как уже говорилось, можно уменьшить это значение до 23.976 для NTSC фильмов, что бы с бОльшей пользой использовать драгоценный битрейт, и не стоит менять это значение с 25 для PAL фильмов, иначе вполне вероятно, что придётся решать проблемы с синхронизацией.

Последним разделом в этом окне является раздел

Video Structure

. Большинство фильмов на DVD записано в прогрессивном виде и при их декодировании не требуется ничего менять в этой опции. Другое дело рекламные ролики, предназначенные для показа по телевизору, зачастую они записаны в чрезстрочном виде. Если ролик разбит по bob алгоритму, то для получения исходной картинки достаточно просто отметить чекбокс reconstruct progressive image. Если использован weave, то придётся воспользоваться опцией Deinterlace video. Значение Threshold придётся подбирать экспериментальным путём, в каждом конкретном случае, я, обычно, начинаю со значения 10.



Следующая закладка

Audio

.



Если хотите получить сразу готовый файл, отметьте пункт Decode audio, и надейтесь на то, что ничего не сглючит, и вы получите нормально закодированный фильм без проблем с синхронизацией :-)

Если есть желание несколько обезопасить себя то выбирайте пункт Direct stream copy, с помощью которого сохраните звуковую дорожку именно в том виде, в котором она записана на DVD. Я предпочитаю этот метод по нескольким причинам. Во-первых, аудио и видео можно соединить и потом, причём аудио при этом можно сжать каким угодно алгоритмом. Кодирование только одного аудио занимает в несколько раз меньше времени, чем кодирование видео, поэтому я предпочитаю потратить лишнее время на работу с аудиопотоком, но быть настолько уверенным, насколько это возможно, что самый долгий этап в рипаньи фильма, кодирование видео, пройдёт без малейших проблем. К тому же, если что-либо пойдёт не так, то не придётся переделывать всю работу, а только часть. И как я уже говорил выше, именно кодирование звука чаще всего приводит к проблемам. Второй причиной, по которой я пользуюсь этим методом, является возможность использовать в готовом фильме оригинальную, многоканальную *.ac3 дорожку. В этом случае, используя для просмотра Divx фильма плеер, который понимает этот *.ac3, и умеет разводить его по разным каналам (например PowerDVD), можно получить такой же качественный звук, как был на оригинальном DVD диске. Очевидным минусом этого метода является значительно больший размер файла.

Если вам не надо декодировать аудио вообще, отметьте пункт Don't process audio.

Кроме всего вышеперечисленного, необходимо отметить чекбокс

Same as input

в разделе Sampling frequency. Из-за какой то ошибки flask не всегда может правильно определить sampling rate, поэтому, если так случилось, снимите этот флажок, поменяйте значение на правильное (для DVD фильмов обычно это 48000), и поставьте его снова. В итоговом фильме, часто используется sampling rate 44100, для уменьшения размеров файла при практически незаметном падении качества, но flask и так не всегда работает так, как от него ожидают, поэтому не стоит предоставлять ему возможность сглючить ещё и в этом месте. Впрочем, если ваши эксперименты покажут, что flask работает нормально, то можете снять чекбокс Same as input, и попросить flask что бы он менял samping rate в готовом фильме на требуюемую.



Следующая закладка называется



Post Processing

.



Первой опцией, доступной здесь, является Resizing Quality Options, она определяет какой алгоритм будет использоваться для изменения размера картинки с оригинального, до того, что вы задали на закладке Video. Посоветовать, какой из них использовать достаточно сложно, каждый должен решить этот вопрос сам для себя, опытным путём. Лично я всегда использую HQ Bicubic Filtering.

Следующий раздел,

Letterbox, Cropping and Aspect Options

. В этом разделе вы можете обрезать "лишние" части изображения. Обычно это чёрные полосы сверху и снизу, которые обрезаются для того, что бы не тратить на них битрейт понапрасну.

Настройки этих режимов достаточно очевидны, стоит только нажать на кнопку Show output pad.

Crop. Уствновив флажок в этом чекбоксе Вам становятся доступны следующие операци.

Top offset – сдвиг изображения вверх (+) или вниз (-). Используется когда обрезана или затенена часть кадра.

Height – обрезает изображение по высоте, (+) отрезать, (-) добавить.

Left offset – сдвиг изображения влево (+) или вправо (-). Используется когда обрезана или затенена часть кадра.

Width – обрезает изображение по ширине, (+) отрезать, (-) добавить.

Letterbox. Установив флажок в этом чекбоксе Вам становятся доступны функции затенения части изображения.

Top – добавляет (+) или убирает (-) чёрную полосу затеняющую изображение сверху.

Botton – добавляет (+) или убирает (-) чёрную полосу затеняющую изображение снизу.

Left – добавляет (+) или убирает (-) чёрную полосу затеняющую изображение слева.

Right – добавляет (+) или убирает (-) чёрную полосу затеняющую изображение справа.

Осталось только посоветовать не пытаться отрезать чёрные полосы полностью. И, как обычно, не сильно удивляйтесь, что эти опции не будут толком работать :-)

Следующая закладка,

Files

.



На этой закладке можно выбрать куда следует записывать конечный фильм, и имя файла, а так же куда под каким именем следует записывать аудиопоток если, конечно, вы выбрали опцию записи аудиопотока в отдельный файл (Direct stream copy).



Изменения доступные здесь на столько очевидны, что вряд ли нуждаются в дополнительных комментариях.

Последней доступной закладкой является закладка

General

.



На этой закладке можно ограничить размер компилируемого файла по секундам или по кадрам, и если хотите закодить целый фильм, то нет никаких причин снимать галочку с чекбокса Compile whole file, стоящую по умолчанию. Чисто теоретически, flask может не закодить фильм до конца, даже если отмеченно Complie whole file, и тогда может помочь выставление количества кадров которые необходимо закодить вручную, но я с такой необходимостью ещё ни разу не сталкивался.

Следующим доступным для модификации пунктом является

Search size

, увеличение которого, по утверждению авторов программы, должно помочь, если возникают проблемы с пропавшими аудио или видео дорожками в полученном файле. Но если воспользоваться моими рекомендациями, и кодировать видео и звук отдельно, в отдельные файлы, то вряд ли вы испытаете такие проблемы. Если мой совет по какой то причине не подходит, то оптимальное значение этого параметра придётся подбирать самостоятельно, эксперементальным путём. Попробуйте начать с 7500.

Последний пункт позволяет указать компьютеру необходимость вылючиться после того как работа flask будет завершенна. Само собой, эта функция корректно работает только на машинах с ATX form factor'ом.

После того, как сделаны все необходимы настройки, наконец то можно переходить к меню Run. Через это меню можно запустить Player, представляющий из себя примитивный и жутко тормозной DVD плеер, встроенный в flask, который используется только для того, что бы определить место, с которого следует начать кодирование фильма, что используется только в том случае, когда Вы не хотите кодировать весь фильм целиком. Когда ВСЁ выбрано можно, наконец то, выбрать пункт

Start conversion

, и приступить к кодированию самого фильма. В этом месте не будет лишним ещё раз повторить мою рекомендацию, перед тем как кодировать фильм, перезагрузите компьютер, во избежание лишних проблем.



Итак, после запуска конверсии фильма, если всё было настроено правильно, откроется два новых окна. Одно из них будет выглядеть так:



В этом окне указываются основные параметры кодированного фильма. Всё очевидно если вы удосужились ознакомиться с предыдущем текстом статьи и

PC-DVD Faq

. Из доступных к изменению параметров, в этом окне имеется только чекбокс Display output, снятие которого может повысить скорость кодирования фильма (очень незначительно), возможность выставить приоритет, с повышением которого можно уменьшить вероятность того, что flask обрушится в процессе кодирования (не должно быть проблемой на нормальном железе. Хотя, здесь главное не перестараться, потому что возможна ситуация, когда система откажется выполнить какое либо из требование ОС, потому что приоритет flask'a выше, и обрушиться уже не flask, а ОС), и пара кнопок, которые позволят временно остановить процесс кодирования (Pause), и восстановить или отменить его (Cancel/Resume). Внизу этого окна идёт график, который показывает интенсивность видеопотока (только в том случае, если включен чекбокс Display output). Если обнаружите, что ломаный график превратился в прямую линию, несмотря на то, что процесс кодированья идёт, что видно во втором окне, то можете себя "поздравить", это означает что кончилось свободное место на том диске, куда пишется фильм, и всё придётся начинать сначала.

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



Процесс кодирования фильма занимает весьма много времени, как уже неоднократно говорилось, поэтому наберитесь терпения - придётся подождать часов 10-15. И всё это время лучше не трогать компьютер, а смотреть телевизор, потому как последствия этого для закодированного фильма могут быть самые печальные, в виде многочисленных артефактов кодирования и тому подобных вещей. А в худшем случае, компьютер просто повиснет. Есть только одно исключение из этого правила. SMP машина способна выдерживать такие нагрузки без ущерба для всех задач, которые на ней выполняются - почитать про то что это такое, и почему так происходит можно здесь - "

SMP на домашнем компьютере

" и здесь "

Тестирование SMP систем

" на 3DNews.

Нет ничего идеального, и наряду с несомненными достоинствами, flask обладает и серьёзными недостатками. Главным из которых является то, что по какой то непонятной причине размер *.avi файлов полученных с помощью flask иногда несколько больше, чем они должны быть, и несколько больше тех, что получаются с помощью других кодеров. Ещё одним существенным недостатком flask'а является то, что работает он несколько дольше, чем другие программы. Например mpeg2avi.



Страница 5 - Программа MPEG2AVI




Раздел Motion.


С этой закладки контролируется, как Nandub определяет уровень движения для каждого кадра, что непосредственно влияет на работу настрое в предыдущей закладке.

Раздел Motion curve parameters.

Span:

определяет сколько кадров вперёд и назад должен сравнивать Nandub при определении уровня движения для конкретного кадра. Оптимальное значение зависит от фильма, но 8 хорошее значение что бы начать.

Sensitivity:

определяет максимальное значение ключевых блоков в дельта кадре, которые должны быть изменены что бы уровень движения считался максимальным (300). Значение 10, которое обычно стоит здесь, максимальное, так что нет никакого смысла его увеличивать. Уменьшить его(и увеличить чувствительность) можно, если Nandub не даёт достаточно битрейта на быстрых сценах (бывает в фильмах где много дерутся руками, ногами, и подручными предметами).

Раздел Motion based DLL-switch

определяет когда надо переключаться с Low motion кодека на High motiоn. На самом деле, это один и тот же кодек, только битрейт и коэффициент сжатия у них по разному меняется. Nandub для того и задуман, что бы правильно битрейт и коэффициент сжатия менять, поэтому можно использовать только один Low motion кодек. Если вам покажется что LM не даёт достаточно битрейта, увеличьте значение Low-pass фильтра в предыдущей закладке.

Switch to FM DLL when motion is over

определяет, при каком уровне движения надо переключаться на Fast motion. Ставьте 300, и этого не произойдёт никогда.

Switch back to LM DLL when motion under

определяет на каком уровне движения надо переключаться обратно в Low motion. Если предыдущий пункт стоит в 300, то значение этого ни на что не влияет.

Раздел Motion-based crispness modulation.

Управляет настройкой кодека отвечающей за "резкость" в зависимости от уровня движения.

Crispness modulation

определяет на сколько кодек должен уменьшить значение Crispness при максимальном уровне движения (когда уровень движения минимален, это значение 100). Значение 30 достаточно хорошо для большинства случаев, но если у Вас плохой исходник (много шумов), то его надо увеличить.

Enable Bit Reservoir modulation

если не вдаваться в детали, эта опция позволяет Nandub’у отбирать битрейт из динамичных сцен и добавлять в нединамичные. Или не добавлять. Сделано это для того, что бы лучше контролировать размер финального файла. Обратным эффектом является ухудшение качества изображения. Если Вы не никак не можете уложить свой фильм в заданный размер (например на один CD), попробуйте включить эту опцию. При этом не забудьте выключить

Motion based curve modulation

в предыдущей закладке.



SBC


Это последняя закладка, и вообще последнее место, которому нам надо уделить внимание прежде чем Nandub будет полностью настроен, и можно приступать к кодированию. На этой закладке доступна только одна функция - значение

Crosspoint

. Эта цифра используется при расчете значения Curve compression, что упоминалось выше. До сих пор у народа не сформировалось окончательное мнение, каким именно должно быть это значение. Поэтому используйте 250-280 для фильмов на 1 CD и 350-460 для фильмов на 2 CD, как значения хорошо себя зарекомендовавшие на практике.

Кодирование в Nandub



Scene


Эта закладка управляет механизмом Scene Change Detection, и отвечает за то, как вставляются ключевые кадры. Основан он на смене параметра motion, и обычно советуется оставить значения по умолчанию, 206 и 64. Но, возможно вы захотите воспользоваться альтернативной методикой. Для этого надо отметить чекбокс Use Alternative и выставить Multiplier. Альтернативная методика работает на смене контраста, а не на уровня движения, что часто даёт лучшие результаты. Хорошее значения 35, но для тёмных фильмов можно выставить и меньше, 30-33.



Smart Ripper.


Последней из программ для расшифровки содержимого DVD диска, которую я хотел бы упомянуть, является Smart Ripper.

Оправдывая своё название, это действительно наиболее интеллектуальная из всех представленных здесь программ, обладающая наибольшим набором возможностей. С его помощью можно не просто скопировать весь фильм целиком, но выбрать отдельные эпизоды, которые следует скопировать/пропустить. С помощью SmartRipper можно объединять несколько *.vob'ов в один, и делить один *.vob на несколько. Программа умеет правильно открывать и закрывать порезанные файлы, что жизненно важно для некоторых декодеров. Из недостатков можно отметить то, что он не всегда может самомстоятельно авторизировать DVD диск, и приходится "помогать" с помощью плеера. Скачать эту программу можно

здесь

.

После того, как содержимое DVD диска расшифровано и лежит на жёстком диске, самое время приступать к собственно перегонке фильма в Divx.

Страница 3 - Программа FlasKMPEG



VirtualDub.


Так называется программа для обработки видеофайлов. Сам VirtualDub можно взять здесь (

ftp://ftp.3dnews.ru/pub/www.3dnews.ru/soft/dvd-rip/virtdub.zip

), source code здесь (

http://doom9.org/Software/Files/Editing/vdubmp3.rar

). Её возможности настолько широки, что я и не думаю о том, что бы описать её полностью, опишу только те возможности, которые необходимы для редактирования закодированных фильмов.

Запускаем VirtualDub, загружаем в него видеофайл. Меню File -> Open Video File. После этого загружаем звуковой файл, для чего выбираем меню Audio, там раздел Wav Audio, и в открывшемся окне выбираем нужный *.wav файл. Если воспользоваться вот этим пакетом (

ac3-pack.zip

), то можно работать сразу с *.ac3 файлами, которые загружаются в VirtualDub точно так же как и *.wav файлы. Загрузив всё необходимое вы должны увидеть что-либо вроде этого.

С помощью слайдера можно перемещаться по фильму, только не забудьте удерживать Shift при этом, тогда будете перемещаться по ключевым кадрам, что гораздо точнее и удобнее. Впрочем, для того что бы просто соединить звук и видео, вам не придётся бегать по фильму. Для этого выбираем меню Video, и отмечаем там пункт Direct stream copy. Этот пункт означает, что не будет производиться никаких манипуляций с видеопотоком, что нам и необходимо, ведь видео уже закодировано. Если не выставить этого пункта, то видео будет записано вообще не сжатым, и будет файл ОГРОМНОГО размера, где-то около гигабайта на МИНУТУ! Что бы этого избежать, надо выбирать какой либо из видов компрессии, но сжимать заново уже сжатый видеопоток далеко не лучшая идея, поэтому ещё раз повторяю, выставьте Direct stream ccopy, по умолчанию стоит Full processing mode, что нам не нужно.

После этого переходим в меню Audio. Здесь напротив, надо отметить раздел Full processing mode, в то время как по умолчанию стоит Direct stream copy. Если вы хотите получить фильм с *.ac3 дорожкой, то необходимо оставить Direct stream copy (всё равно VirtualDub не умеет сжимать сразу *.ac3 дорожку, только *.wav, так что никак обработать её не получится). Из настроек стоит изменить только значения Interleaving. В открывшемся окне, немного отличном от стандартного окна VirtualDub (это окно единственное изменение в интерфейсе которое добавляет ac3 пакет в VirtualDub) необходимо выставить значения 160 для Preload __ ms of audio before video starts и Interleave audio every __ ms. После этого останется только сохранить фильм, из меню File -> Save AVI.


Если вы решили пойти, более традиционным путём, то как уже говорилось, необходимо перевести audio в Full process mode и выбрать соответствующий вид компрессии, потому что в противном случае вы рискуете получить файл размером в много-много гигабайт. Выбираем раздел Compression, и выставляем то, что необходимо. Метод компрессии может быть выбран любым, и зависит от установленных в системе и известных VirtualDub'у кодеров. Как уже говорилось много выше, несмотря на то, что самым логичным выбором был бы DivX ;) Audio, этот выбор будет далеко не лучшим. Выбирайте MPEG Layer-3 (mp3). После того, как выбрано всё необходимое, остаётся только сохранить полученный файл. Меню File Save AVI..., или просто нажать F7. В результате получиться готовый файл, и если повезёт, то без проблем с синхронизацией.

Но что же делать, если всё-таки не повезло? И полученный файл не синхронизирован? Зависит от того, как именно разсинхронизирован фильм. Здесь возможны два основных варианта.

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

Начнём с более распространенного случая, когда звук постепенно убегает или отстаёт по ходу фильма. Метод лечения в этом случае прост, необходимо просто увеличить или уменьшить frame rate, то есть количество кадров в секунду. Для этого выбираем меню Video, и пункт Frame rate. В открывшемся окне отмечаем пункт Change to ____ frames per second из раздела Frame rate conversion. Если звук отстаёт, то надо уменьшить это значение, если убегает вперёд, то увеличить. Меняйте это значение на очень маленькие значения, 0.001 или 0.002, потому что в противном случае всё убежит в другую сторону. После того, как всё выставлено, надо только сохранить файл, меню File, Save AVI. Не забудьте выставить Direct stream copy и для видео и для аудио, в противном случае можно получить ОЧЕНЬ большой файл.

Если видео и аудио разсинхронизированы с самого начала, то надо просто задержать или подогнать аудиодорожку с самого начала. Для этого идём в меню Audio, раздел Interleaving.

Если видео убегает вперёд, то необходимо уменьшить значение Delay audio track by __ ms, из раздела Audio skew correction вплоть до отрицательных величин, если вперёд убегает звук то наоборот, увеличить это значение. Выбрав подходящее значение, остаётся только сохранить полученный фильм, File, Save AVI. Как и в прошлом случае, не забудьте выставить Direct stream copy и для видео и для аудио, иначе рискуете, что не найдётся нескольких сотен лишних гигабайт места на жёстком диске.


VobDec GUI.


Ещё одна утилита, используемая для расшифровки содержимого DVD дисков. Состоит из двух частей, собственно декриптора vStrip.exe, который представляет собой программу для командной строки, и GUI.exe, который представляет собой просто надстройку к утилитке. Для пользователей, привыкших к стандартному интерфейсу Windows, его интерфейс может показаться несколько необычным, однако он достаточно удобен и понятен.

VobDec отличается наиболее тщательным поиском ключа, из всех известных мне программ, поэтому он должен быть способен декодировать практически любой фильм. Впрочем, и многие другие программы, например уже упоминавшийся здесь DVD Decrypter, используют в алгоритмы VobDec в своей работе. Скачать Vobec можно здесь, а Gui для него здесь. После скачивания, разархивируйте их в разные директории, и запустите VobdecGUI. Он попросит указать директорию, укажите ему куда распокавали сам декриптор, и можете приступать к работе. Взять эту программу можно

здесь

, а если кому интересно взглянуть не её source code, то Вам понадобится вот этот архив -

http://doom9.org/Software/Files/Rippers/VobDec0.311.zip



В заключение хотелось бы сказать,


В заключение хотелось бы сказать, что процесс рипанья DVD во многом творческий, и нет рецептов, которые подойдут всем и всегда. Софт используемый для DVD-rip имеет множество багов, и не столько потому, что люди пишущие его плохо знают своё дело, сколько потому, что у энтузиастов которые этим занимаются нет всей необходимой документации (которая стоит около 50000$), и им приходится полагаться в основном на свою интуицию, и на сведенья полученные в результате reverse engineering. Поэтому не удивляетесь, если окажется что что-нибудь из описанного мной у вас не работает, или работает не так, как ожидалось. Пробуйте, экспериментируйте, набирайтесь опыта, помните эпиграф к этой статье, и всё получится.
Удачи!

Список необходимых файлов для RIP DVD
divx_311alpha.exe
570 кб
Divx кодек
.
Этот файл необходим для просмотра и кодировки Divx фильмов. Просто скачайте и запустите - кодек установится сам.
divx322b.zip
617 кб
Divx кодек
(новая версия)
Повышен порог изменения битрейта когда в Low Motion попадается динамичная сцена.
dvddec.zip
378 кб
DVD Decryptor

Программа для рипанья содержимого DVD дисков с очень простым интерфейсом.
vobdec.zip
535 кб
VobDec
Программа для рипанья содержимого DVD дисков.
Source code
smrip.zip
348 кб
SmartRipper

Программа для рипанья DVD с очень развитыми возможностями.
smart-ripper217.zip
353 кб
Smart Ripper

(новая версия)
Добавлена весьма важная функция - возможность рипанья одной аудиодорожки, что экономит место. Плюс возможность рипать с диска только звук без изображения что важно для FairUse.
flask.zip
1,4 мег
FlaskMPEG
Программа для декодирования DVD в Divx.
Source code
mpg2avi.zip
483 кб
Mpeg2Avi
Пакет программ для декодирования DVD в Divx.
Source code
profiles.zip
11 кб
Набор профилей для Mpeg2avi
fairuse-0.25-beta.zip
545 кб
FairUse
Программа реализующая алгоритм декодирования MM4.
ac3dec.zip
65 кб
Ac3Dec
Программа для работы с *.ac3 дорожками.
Source code
virtdub.zip
664 кб
VirtualDub
Программа для редактирования видеофайлов.
Source code
ac3-pack.zip
635 кб
Ac3 пакет для VirtualDub
Пакет программ позволяющий работать с *.ac3 файлами из VirtualDub.

Doom9 FlaskMpeg ripping pack
. Содержит всё необходимое для рипанья DVD с помощью FlaskMpeg.


Doom9 Mpeg2Avi ripping pack

. Содержит всё неоходимое для рипанья DVD с помощью Mpeg2Avi.

Часть 2. Smart Bitrate Control - новый шаг в сжатии цифрового видео