Автор: Алексей Шашков Date: 04/07/2001 |
Прежде всего нам понадобится программа, которая будет работать как 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.
Но для начала немного теории, объясняющей принцип работы SBC. Как вы знаете (если нет, то ознакомьтесь с первой частью DVD-Rip, там этот вопрос освещается более подробно), качество видео зависит от Bitrate, то есть количества данных выделяемых на каждый кадр. И подобрать оптимальный битрейт для различных сцен весьма не тривиальная задача. Программисты бьются над этой проблемой, о чём свидетельствует выход на рынок нескольких видов Mpeg4 подобных кодеков, но никто не смог разработать алгоритм, при котором оптимальный битрейт подбирался бы с одного прохода. Как следствие, ни один из кодеков, существующих сейчас на рынке не может дать качество сравнимое с получаемым при использовании MM4 энкодинга и старых кодеков, при наличии хоть какого то контроля над размером итогового файла. Не думаю, что это вообще возможно. Разные программы реализующие MM4 алгоритм решают проблему определения оптимального битрейта при нужном размере итогового файла по своему (в качестве примера можно взять FairUse, описанную в первой части), в Nandub это реализовано так. Видео кодится в два прохода, во время первого прохода видеопоток кодится с максимальным для Divx битрейтом 6000, для получения максимального качества, возможного для кодека. Однако, результат этой работы не сохраняется на диск (поэтому можно не беспокоиться по поводу свободного места), а анализируется по нескольким параметрам. Результат этого анализа записывается в файл статистики. Этот файл единственное, что сохраняется на жёсткий диск во время первого прохода. Из информации, которая хранится в этом файле, можно отметить следующее.
Прежде всего, это данные о коэффициенте сжатия каждого кадра. На эту информацию отводится 4 бита, таким образом имеется 16 возможных значения (именно столько комбинаций можно составить из четырёх нулей и единиц). Это значения зависит от соотношения размеров сжатого Divx кадра и исходного. Чем оно больше, тем лучше сжался исходник. Коэффициент 2x означает что кадр плохо поддаётся сжатию (кодек не может выдать вообще не сжатый файл, поэтому коэффициент 1x не используется), а 32x что кадр сжался на максимальную величину, доступную кодеку. Таким образом на качество кадра влияет два фактора - битрейт (когда его не хватает, появляются квадраты) и уровень сжатия (высокие уровни сжатия добавляют артефакты изображения, знакомые всем, кто видел слишком сильно сжатые Jpeg картинки). Кроме коэффициента сжатия в файл статистики записывается размер кадра, баланс яркости (соотношение яркого и тёмного), и кое-какую другую информацию. Данными, содержащимися в файле статистики Nandub руководствуется во время второго прохода, когда исходя из своих настроек кодирует исходный сигнал в Divx, и записывает результат на жёсткий диск. Вооружённые этим знанием, рассмотрим настройки Nandub подробнее.