Гордиев узел

Вы никогда не задумывались над вопросом, откуда берется огромное количество видеофильмов в формате DivX и прочих интерпретациях MPEG4? Ведь "кина" в DivX никто не выпускает. Конечно, легче всего предположить, что "где-то там" некие просветленные гуру перерабатывают груды видео в гигабайты AVI. На самом деле ничего сложного в кодировании видео в DivX нет. Рассмотрим этот процесс на примере перекодирования видео с DVD-диска. Сразу предупрежу, что, в принципе, копирование видео с DVD незаконно, однако в рамках "fair use" вы имеет право сделать резервную копию видео. Из этого и будем исходить. Впрочем, сторонники строгого соблюдения законов об авторском праве могут дальше не читать. Вся нижеприведенная информация публикуется исключительно в образовательных целях.

Итак, для работы нам понадобится компьютер с DVD-приводом, диск с фильмом на DVD и софт под названием GordianKnot (последняя версия 0.27, берется с сайта gknot.doom9.org). Почему именно GordianKnot? Фактически, эта программа представляет собой графическую оболочку, под которой скрывается целое семейство программ (а именно SmartRipper, vStrip, DVD2AVI, AviSynth, Nandub, VirtualDub, VobSub и несколько кодеков). Называется такая штука Rip-pack - то есть "все в одном" для копирования DVD. Причем, чем хорош GordianKnot - так это достаточно детальной и грамотной документацией. Достаточно перейти на закладку Help, чтобы получить подробные инструкции: что, как и почему делать. К тому же GordianKnot позволяет использовать все возможности кодека Divx 5.0, который, по моему мнению, является лучшим на сегодняшний день кодеком на основе MPEG4.

Однако, перейдем к деталям. Вставляем диск в привод и запускаем GordianKnot. На первой закладке (Ripping) мы видим три кнопки с названиями программ - SmartRipper, vStrip и DVD2AVI. Первые две служат для копирования содержимого DVD-диска на винчестер. SmartRipper практически полностью автоматизирован. vStrip больше ориентирован на ручное управление и предназначен для дисков, с которыми не может справиться SmartRipper (что бывает весьма редко). Итак, запускаем SmartRipper и выбираем в нем основной видеопоток фильма (обычно самый длинный). В принципе, можно копировать не весь фильм целиком, а только отдельные эпизоды. В этом случае надо выбрать определенные Chapters в одноименном окошке. Убедитесь, что на закладке Stream Processing выбраны именно эти видео- и аудио- (на нужном языке) потоки, а в разделе Settings стоит галочка напротив Copy IFO-file. Далее указываем, куда именно копировать видео, жмем кнопку Start и некоторое время ждем (в зависимости от скорости DVD-привода и длины фильма, ожидание может продлиться до 40 минут). В результате работы SmartRipper у вас на винчестере появится несколько файлов вида vts_1_01.vob и так далее. Места на винчестере понадобится много - объем диска DVD 4.7 гигабайт, и почти все эти данные будут скопированы на винчестер. Так что перед запуском GordianKnot убедитесь, что на винчестере у вас есть хотя бы гигабайт 6-7 (а лучше и все 10).

Итак, теперь фильм скопирован на винчестер и готов к дальнейшей работе. Жмем кнопку DVD2AVI на той же закладке и загружаем в появившемся окне программы первый из записанных SmartRipper .vob-файлов. Теперь можно посмотреть превью фильма уже с винчестера. В DVD2AVI надо установить разделение видео- и аудиопотоков и параметры исходного видео (PAL/NTSC). Инструкции как это сделать написаны прямо в окне GordianKnot рядом с кнопкой DVD2AVI. Теперь надо сохранить DVD2AVI-проект в файл. В результате у вас в директории с копией DVD появятся еще два файла - [название фильма].d2v и [название фильма].ac3. Они содержат данные о видео- и аудиопотоках.

Теперь надо дать название нашему проекту. Нажмите в правом нижнем углу кнопку Reset и введите название, после чего нажмите ввод. Теперь GordianKnot будет запоминать все установки проекта. Далее, нажимаем кнопку Open, расположенную в нижнем левом углу под надписью DVD2AVI, и открываем созданный .d2v проект. Перед нами появится окно с фильмом. Теперь надо перейти на закладку Resolution и обрезать лишние черные поля (раздел Crop/Pixel) по краям кадра. Если включить в просмотровом окне опцию View/Resized, то все изменения сразу будут отражаться на картинке. Аналогично, надо выбрать в разделе Input Pixel Aspect Ratio правильное соотношение сторон кадра (в данном случае фильм широкоэкранный с отношением сторон 16:9). Наконец, в разделе Output Resolution назначается размер кадра фильма, который мы хотим записать. Это задача достаточно творческая, поскольку чем больше разрешение, тем выше будет качество фильма. Но одновременно с этим будет увеличиваться объем, необходимый для записи фильма.

 

Вернемся на предыдущую закладку Bitrate. Здесь нам надо выбрать размер конечного видеофайла (1, 2 или 3 компакт-диска) и установить, сколько места оставлять под звуковую дорожку. Для этого определяем тип звука (mp3, VBR mp3, AC3) и битрейт, с которым он будет кодироваться (опыт подсказывает, что 128 kbps для VBR-mp3 вполне достаточно). Здесь же надо выбрать кодек, которым будет производиться кодирование видео - очевидным образом, DivX 5. Еще один момент, который позволит более экономно использовать место, отведенное под фильм. В окне просмотра проекта d2v находится кнопка "Set Credits Start". Она позволяет пометить место, с которого начинаются завершающие титры фильма. Титры будут кодироваться с намного меньшим битрейтом, чем само видео, а значит для видео останется больше места и общее качество фильма возрастет. Поскольку размер фильма уже задан, то качество будет определяться только разрешением кадра.

Поэтому еще раз вернемся на закладку Resolution и к тому же обратим внимание на калькулятор, который находится в нижней части окна GordianKnot (под надписью "Bits/(Pixel*Frame)"). Циферка, которая там выводится (назовем ее BPF), определяет, сколько бит будет кодировать один пиксел картинки, и фактически является главной характеристикой качества конечного фильма. Чем она больше, тем лучше (и тем больше) получится видео. Опыт показывает, что при кодировании DivX 5 BPF порядка 0.20 дает очень хорошее качество. В принципе, при использовании B-frames неплохое качество картинки будет даже при BPF около 0.12. Так что в среднем ориентируйтесь на BPF порядка 0.15-0.18. Хотя, конечно, все зависит от кодируемого видео - разные фильмы сжимаются по-разному.

После того, как вы все установили, можно начинать кодировать. В окне просмотра нажимаем кнопку Save&Encode и получаем следующее окошко с параметрами. Здесь можно установить фильтрацию шума на исходном видео и тип алгоритма интерполяции, которым кадр будет преобразовываться из исходного разрешения в конечное (рекомендуется нейтральная бикубическая, хотя это медленнее, чем билинейная). Кроме того, если вы собрались кодировать титры отдельно, то в пункте Trim установите значение Both. Закончив с установками, жмем кнопку Save&Encode, после чего сразу попадаем на последнюю закладку - Encode.

Выбираем закладку DivX 5, устанавливаем два прохода (Both Passes) и отмечаем пункт "Recalculate Bitrate if needed". Здесь же можно включить дополнительные возможности кодека DivX 5.0.5 Pro (о них чуть позже). Также, здесь можно задать качество, с которым будут кодироваться титры (если вы таки кодируете их отдельно), - 20-ти, которое ставится по умолчанию, вполне достаточно. Далее, переходим на закладку Audio1 и выбираем "MP3 custom parameters". В разделе Azid назначаем из списка "-L -3db -s surround -c normal", в Lame - "alt-preset 128" (задает кодирование звука в MP3 с битрейтом 128 kbps) и ставим галочки около "Recalculate Bitrate" и "Use BeSweet", а также около "Finaly Mux" (чтобы замикшировать аудио с видео). Если вы собираетесь использовать AC3-звук, то вместо вышеописанных операций выберите пункт "Just mux". На этом подготовка закончена, добавляем задачу в очередь (с закладки DivX5) и запускаем на выполнение. Все, теперь можно оторваться от компьютера и заняться чем-нибудь полезным - за работу принялся VirtualDub, и кодирование займет как минимум несколько часов (на моем Duron 600 кодирование полуторачасового фильма заняло 9 часов). В результате всех этих операций вы получите копию DVD-фильма в формате DivX. Причем эта копия "влезает" на один компакт-диск и имеет вполне пристойное качество. Кстати, на один диск в достаточно неплохом качестве можно "впихнуть" порядка 2 часов видео. Если фильм больше, то имеет смысл увеличить размер конечного файла до двух дисков (в этом случае можно увеличить битрейт кодирования звука до 160-180 kbps).


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

GordianKnot самостоятельно устанавливает все значения, связанные с битрейтом DivX. Единственное, до чего можно добраться - это дополнительные возможности кодека DivX Pro (для этого, естественно, у вас должна быть установлена именно Pro-версия кодека). Этих возможностей четыре - B-frames, GMC, Quarter-pel и Psychovisual Enсhancement. Посмотрим, что они дают.

B-frames - при кодировании может использоваться не только информация из предыдущих кадров, но также и из последующих. На практике это значит, что качество картинки улучшится в тех местах, где объект сдвигается и под ним появляется другой объект. Quarter-PEL - каждый блок позиционируется с точностью до четверти пиксела, что позволяет несколько улучшить качество картинки. GMC (Global Motion Compensation) - позволяет увеличить степень сжатия (либо улучшить качество) в сценах, где кадр движется как целое (наезды и панорамирование). Psychovisual Enсhancement, как заявлено разработчиками, позволяет увеличить степень сжатия за счет использования неких физиологических особенностей зрения. По идее, при этом должны удаляться некие мелкие детали, которые глаз замечать практически не должен.

Теперь о том, как это все работает на практике. Включение функции B-frames, Q-Pel и GMC уменьшает конечно видео примерно на 10% и при этом дает лучшее качество картинки (однако скорость кодирования заметно падает). К тому же на закодированном с этими возможностями видео резко падает скорость перемотки. Можно предположить, что эффект этот вызван использованием B-frames, поскольку теперь приходится раскодировать кадры не только от предыдущего ключевого, но и от последующего. Но в целом, B-frames, Q-Pel и GMC можно рекомендовать к использованию. Правда в первой версии DivX 5 Q-Pel в некоторых случаях вызывала довольно странные артефакты, но к версии DivX 5.0.5 все эти ошибки уже исправили.

Psychovisual Enсhancement - это отдельная тема для разговора. В принципе, использование данной возможности позволяет еще больше увеличить степень сжатия (где-то на 5%). Но картинка начинает выглядеть неестественно. Это, конечно, субъективное мнение, но лично я не рекомендую использовать Psychovisual Enсhancement. Впрочем, вы всегда можете поэкспериментировать со своим видео. А чтобы не ждать слишком долго, вырежьте с DVD только один небольшой кусочек (скажем, один Chapter) и потренируйтесь на нем.

Константин АФАНАСЬЕВ

Версия для печатиВерсия для печати

Номер: 

26 за 2003 год

Рубрика: 

Multimedia
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!
 

Комментарии

Аватар пользователя login incorect
Описаный процесс кодирования DVD в DivX чрезвычайно увлекателен и богат специальными знаниями, только непонятно, зачем это все нужно.

Да, кто-то когда-то должен однажды перегнать DVD в DivX, стобы он мог быть растиражирован пиратами. А обычному человеку...

Много ли продается DVD, которых еще нет в DivX?

Аватар пользователя Monster
Таки да, продаются, а также берутся у знакомых, которые их покупали в забугории, или в той же забунгории берутся в прокате. Да и большинство DivX которые продаются так отстойно покодированы, что увы.

Можно конечно качать DivX, но много ли народу могут себе это позволить

Аватар пользователя Analizator
А зачем перекодировать в Divx ?

DVD привод от TEAC стоит 39 у.е.

Пиратский DVD диск стоит 3.5 у.е.

Получаете полноценное видео с Dolby звуком. А Divx - отстой для пионеров.

Аватар пользователя Сергей В.
А у меня почему-то при использовании этой проги кодируется только аудио дорожка к фильму, а Virtual DUB после этого сам не запускается и файл.AVI в папке не появляется, только звук.MP3 Помогите, пож-та, научиться перегонять DVD в Div'x. Заранее Спасибо!!!
Аватар пользователя Vadimka
И у меня такая же картина -видимо автор что-то напутал: программа ругается: ERROR - кол-во фрэймов не совпадает!!!