Осуществление "DVD Rip" с помощью программы FairUse

(по мотивам данных статьи с www.3dnews.ru)

версию для печати (zip-архив 120,5кб).

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

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

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

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

FairUse

с www.3dnews.ru
FairUse_0.30_Beta.zip с моей странички.
FairUse Wizard версии 0.38 с моей странички. Подробнее о ней можно прочитать чуть ниже.

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

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

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

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

К сожалению, в текущей версии FairUse имеется ряд недостатков:
- можно работать только с DVD дисками;
- нельзя раскидывать временные файлы по разным дискам;

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

После того как выбрано нужное, соответствующие файлы с DVD диска будет переписаны на жёсткий диск и расшифрованы.

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

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

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

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

В этом окне можно ещё раз уточнить, какой размер файла желательно получить. Здесь же показывается и средний битрейт, который получиться при кодировании выбранного отрезка в выбранный размер. В отличии от большинства других программ, здесь значение битрейта указывается не в кбитах в секунду, а в килобитах на кадр (фрейм). Для того что бы получить более привычное значение, надо всего лишь умножить эту цифру на количество кадров в секунду (это значение показывалось в окне, где предлагалось выбрать режим работы с фильмом, Native - 29,970или IVTC mode - 23,976). Количество кодеков, которые могут быть использованы, 10. По умолчанию стоит 4. Вообще, можно нажать на кнопку Auto Add, и продолжить с тем, что предложит FairUse, обычно его выбор далеко не самый худший.
Но можно добавить и самому. Для каждого из добавляемых кодеков можно выбрать его тип, Low-motion или High-motion, битрейт (в битах на кадр), минимальный и максимальный промежуток между ключевыми кадрами. Здесь стоит отметить, что кодеки которые используются при работе FairUse, это не тот Divx кодек, который используется большинством программ энкодеров и практически всеми плеерами. Автор FairUse переделал стандартный кодек, убрал несколько багов с него, и изменил механизм вставки ключевых кадров. Сделано это как с целью повышения качества получаемых фильмов, так и с целью уменьшения размера получаемых файлов.
На этой же странице в нижнем окне выбираются звуковые дорожки, которые будут извлечены из vob-файла. Можно добавить интересующие дорожки, которые будут сохранены в директории проекта в формате ac3.

После того, как выбрано количество кодеков, которые будут использоваться, и все они настроены, остаётся только нажать кнопку Next, и начнётся процесс кодирования. Процесс этот весьма долгий, заметно дольше чем это заняло бы с другими программами энкодерами, потому что FairUse делает всё то же самое что и они, только несколько раз, столько, сколько кодеков используется. Приятный сюрприз ожидает владельцев SMP машин. Поддержка мультипроцессорных машин в FairUse сделана лучше всяких похвал, гораздо лучше чем во всех энкодерах, которые мне приходилось пробовать. Из-за этого, на SMP машине FairUse работает практически с той же скоростью, как на той же самой машине работает Flask!
Также выбирается режим кодирования для аудиодорожки. На выходе получается ac3-файл.

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

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

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

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

P.S. Появилась новая версия программы FairUse Wizard 0.38 - . Внешне последовательность действия для создания avi-файла такая же. Нюансы:
- Появились кодеки DivX и XviD. Последний, на мой взгляд, более качественно при меньшем объеме делает компрессию. Однако, если у Вас на компьютере стоит старый кодек XviD, то при просмотре изображение будет дрожать. Если такое происходит, то просто обновите кодек на своем компьютере - .
- Программа может накладывать звуковую дорожку, причем в следующих форматах: AC3, MP3, OGG. Сама же конвертирует звук с заданным битрейдом.

В кратце теперь все делаем так:
- Высвобождаем на жестком диске порядка 10 Гб свободного места.
- Создаем проект, выбирая с DVD файл с фильмом, который будем конвертировать или выбираем существующий проект, если вам надо перекодировать фильм с новыми пареметрами звука или видео.
- Выбираем разрешение будущего avi-файла.
- Задаем размер будущего avi-файла (в этом размере будет также присутствовать звук).
- Выбираем кодек - DivX или Xvid. Исходя из заданных размеров будущего файла вам будет показан размер битрейда, с которым будет кодироваться видео. Заранее скажу, что при битрейде менее 800кбит/с для DivX - качество будет неудобоваримым.
- Выбираем звуковую дорожку и ее формат.
- Отдыхаем пару (а то и более) часов.
- Оцениваем получившийся результат. Если он не удовлетворяет вас, то выбираем уже существующий проект и повторяем эти шаги.

 

  Назад Карта сайта На главную страницу Напишите мне  
 
Hosted by uCoz