Когда-то просмотр высококачественных DVD-фильмов был уделом избранных, ведь для этого требовались домашние кинотеатры ценою во многие тысячи долларов. Однако прогресс идет вперед, и сейчас DVD-ROM для компьютера подешевели практически до стоимости CD-ROM, да и диски упали в цене. Но вот самое интересное — во всех крупных (и даже не очень) городах налажен их прокат. А что делать, если очередной DVD-фильм вам чрезвычайно понравился и вы хотите сохранить его на «винчестере» для домашнего просмотра, однако не хватает дискового пространства?

Прежде чем ответить на этот вопрос, необходимо в двух словах напомнить, что такое видео на компьютере. Экранное изображение делится на 576 строк, а любая строка — на 720 (или 768) точек. Для каждой из них записываются данные яркости, контрастности и цвета. Точки эти настолько мелкие, что при просмотре на телеэкране или мониторе ПК воспринимаются как сплошное изображение. Поскольку в кино принята частота 25 кадр./с, то ежесекундно надо записывать данные про количество точек, равное 576х720х25. Это очень и очень много: весь фильм займет несколько сотен гигабайт, что неприемлемо ни для размещения на дисках, ни для хранения на «винчестере». Поэтому был изобретен формат сжатия с потерями: записывается не вся информация, а только та, которая необходима для того, чтобы компьютер восстановил недостающие данные.

Одним из таких форматов является MPEG-2, а его разновидностью — DVD. Собственно говоря, DVD отличается от «классического» MPEG-2 тем, что поддерживает запись разнообразных меню и дополнительных материалов (биографий артистов, интервью, рецензий, рекламы новых фильмов). Кроме того, он обеспечивает возможность иметь на одном диске сразу несколько вариантов звукового сопровождения и субтитров на разных языках. Этим, кстати, отличаются лицензионные DVD-диски от пиратских — на последних, как правило, находится только сам фильм и ничего больше.

Так что же делать, если вы захотели сохранить на «винчестере» для просмотра дома понравившийся DVD-фильм, однако выделять для этого 4,7 Гбайт (столько занимает полуторачасовое видео в формате MPEG-2) или 9 Гбайт (этого требует двухсерийный фильм) весьма нерационально? Такой вопрос возникает даже тогда, когда у вас установлен современный 80-Гбайт (или более вместительный) жесткий диск, а если имеется не столь емкий, популярный всего год-два назад 20—40-Гбайт «винчестер», то просто-напросто не хватит места для такого объема данных.

Рис. 1

Есть много сложных программ, позволяющих решать такую задачу и используемых профессионалами. Однако новичкам лучше применять простейшие, имеющие минимум настроек,— чтобы нужно было лишь «нажать на кнопку, и было готово». Таким продуктом является, в частности, FlasKMPEG. Перед его установкой рекомендуется также инсталлировать кодек DivX412Codec (для более высокого сжатия видео), а также L3PROD_P (для сжатия звука). Все эти продукты бесплатные и свободно распространяемые, их легко найти в Интернете, если ввести название в строку поиска, например, Яндекса.

После установки всех трех приложений вставьте DVD-диск в DVD-ROM и запустите FlasKMPEG (рис. 1).

Откройте меню File («Файл») и выполните команду Open media (рис. 2).

Рис. 2

Найдите DVD-ROM с фильмом, откройте папку VIDEO_TS и выберите файл с расширением (т. е. последние три буквы после точки) *.ifo (рис. 3).

Рис. 3
Рис. 4

Обратите внимание, что в папке несколько ifo-файлов. Каждый соответствует маленькому фильму на DVD-диске — рекламному ролику, интервью или другой сопутствующей информации. Нужный нам ifo-файл принадлежит к списку с наибольшим числом цифр. В нашем примере список VTC_01 имеет наибольшее число файлов — с 0 до 7, а в других их только по два: 0 и 1 (VTC_02 и VTC_03). Щелкните мышью на файле и откройте следующую закладку (рис. 4).

В этом списке находятся все варианты звукового сопровождения фильма, а также субтитров. Выберите Duration: 2:25:24 (длительность фильма в часах, минутах и секундах), Russian — AC3, а строку субтитров не отмечайте. Если указать строку English — АС3, то получится английская звуковая дорожка без перевода на русский язык.

Нажмите на значке Flask this DVD! — появятся окно фильма и его характеристики (рис. 5).

Рис. 5
Рис. 6

Стандартная для DVD величина кадра — 720х576 точек, частота — 25 кадр./с, объем фильма — 6252 Мбайт. Наша задача — используя более сильно сжимающий кодек MPEG-4, уменьшить размер фильма, как минимум, до 650 Мбайт. Следует заметить, что существует более новая версия кодека — 5.03. Но, во-первых, она платная, во-вторых, содержит так много настроек, что новичок в них просто запутается, а в-третьих, имеет определенные минусы. Так что исходя из личного опыта советую начинающим применять относительно простой кодек 4.12.

Теперь надо указать программе FlasKMPEG, что необходимо использовать кодеки видео 4.12 и звука МР3. Откройте меню Options, выберите строку Select output format и отметьте пункт OpenDML. Затем выберите строку Output format options и щелкните мышью. В строке видео установите DivX Codec 4.12 (рис. 6). Если он уже там стоит, не поленитесь еще раз его выбрать, после чего откроется окно настроек (рис. 7).

Рис. 7

Для новичка важны только два параметра, остальные надо оставить со значениями по умолчанию. Во-первых, необходимо отрегулировать скорость потока (bitrate) с помощью ползунка под надписями «0 kbps» и «6000 kbps». Она определяет качество и, следовательно, размер файла фильма: чем выше качество, тем больше размер. Положение 6000 соответствует формату DVD, и тогда сжимать видео заново не имеет смысла, файл получится такой же большой. Если фильм длится 1,5 ч, то рекомендуется установить значение 900, а если 2 ч — то 700. При меньшем значении можно добиться большего сжатия, но путем серьезного ухудшения качества изображения. Чтобы этого не происходило, есть пара хитрых приемов, и о них речь пойдет немного ниже.

Второй параметр — Postprocessing level (в переводе на русский язык — уровень качества в процессе воспроизведения). Как было сказано выше, мы конвертируем фильм в формат с потерей качества. Значит, записывается не каждый кадр, а, например, один из 40. Далее в особом формате сохраняются для компьютера сведения о том, чем именно следующий кадр отличается от предыдущего. Так вот, если процессор ПК медленный (с тактовой частотой ниже 400 МГц), то он просто не успевает расшифровать все эти данные, и кадры фильма начинают дергаться. Поэтому для процессоров с частотой порядка 300 МГц рекомендуется устанавливать ползунок в положение 0, правда, качество будет не самое высокое. Для процессоров с тактовой частотой около 400 МГц рекомендуется перевести ползунок на 50%, а если процессор имеет частоту 1000 МГц и выше — то на 100%. При 100% обеспечивается максимальное качество, которое позволяет получить формат MPEG-4. В двух первых сверху строках должно стоять 1-pass и Slowest.

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

В первом слева поле по умолчанию выбран пункт 1-pass (т. е. сделать все за один раз). Но при обработке сложного материала (например, кадров с движущейся водой) можно задать двухпроходное кодирование. Это несколько улучшает качество, поскольку первоначально компьютер собирает информацию о кодируемом фильме, а затем выполняет собственно преобразование. Однако во многих случаях разница в качестве бывает совсем незначительной, а времени затрачивается вдвое больше, и поэтому я практически никогда не ставлю двухпроходное кодирование. В параметрах аудио (см. рис. 6) можно выбрать DivX audio, строку 48000 кГц стерео и скорость потока 160 кбит/с, либо MPEG Layer 3, строку 48000 кГц стерео и скорость потока 128 кбит/с. Одни пользователи считают, что эффективнее DivX-сжатие, другие — что профессиональный формат МР3. На мой взгляд, это дело вкуса. Я обычно предпочитаю МР3.

Рис. 8

Далее нужно выбрать размер получаемого окна фильма (рис. 8). Впрочем, те, кто не желает ничего настраивать, могут оставить все цифры по умолчанию. Но любителям поэкспериментировать скажу, что вот тут-то и кроется та самая хитрость, о которой упоминалось выше. Фильм на DVD, как правило, записан с экранным размером 720х576 точек. Можно пойти тремя путями. Первый — отрезать темные края сверху и снизу (обычно фильм занимает не всю площадь, а только середину). Второй — изменить размер на меньший, поскольку при равной скорости потока качество картинки будет лучше. Третий — просто отрезать боковые края, если кадр очень сильно вытянут, чтобы он занял весь экран монитора. На приведенной на рис. 8 закладке следует поставить 384х288 точек (если фильм занимает весь экран, т. е. имеет исходные размеры 720х576 точек). В ином случае необходимо вычислить нужные размеры. Так, если при открытии этой закладки у вас появились цифры 720х480, значит, их надо изменять пропорционально, например на 360х240 (для просмотра на ТВ) или на 386х240 точек.

Выберите из меню Options строку Global Project options. На закладке Files укажите диск и папку, куда будет производиться запись. На закладке Post Processing (рис. 9) можно задать отрезание черных краев сверху и снизу, а если кадр слишком вытянут — слева и справа. Для этого следует снять флажок в окошке No Crop. Откроются четыре окошка, куда можно вписать цифры, обозначающие число точек, обрезаемых сверху, слева, снизу и справа, или новые размеры окна фильма, например 384х288 точек. А именно: поле Height — это размер по вертикали (т. е. число строк), Wight — размер по горизонтали, Top offset — число точек, на которое изображение сдвигается сверху вниз, Left offset — число точек, на которое изображение сдвигается слева направо. Например, если вы хотите из окна размерами 640х480 точек получить окно размерами 400х300 точек с отрезанием краев сверху, снизу, слева и справа, то в первом поле должно стоять 90 (т. е. 480 - 300 : 2), во втором — 300, в третьем — 120 (640 - 400 : 2) и в четвертом — 400.

Рис. 9

Для минимизации размера файла лучше поставить также флажок YUY2.

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

На закладке Audio желательно установить флажок Save as input и проверить, активен ли другой, около строки Decode audio. После того как из меню Run будет выбрана строка Start, компьютер начнет свою работу. По прошествии времени, пропорционального скорости процессора и объему оперативной памяти, а также продолжительности фильма, все будет готово.

Например, при длительности фильма 1,5 ч, наличии 1600-МГц процессора Athlon, 256-Мбайт ОЗУ типа DDR266 и ОС Windows XP время работы программы составит 3 ч.

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

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

Прежде всего следует переписать все остальные файлы — рекламу, интервью и др. Запустите приложение заново и выберите по очереди другие ifo-файлы, не забыв перед этим переименовать полученный основной файл фильма (программа все файлы называет одинаково, и если первый не переименовать, то он будет заменен вторым).

Когда все файлы будут конвертированы в формат MPEG-4, присвойте им названия, содержащие латинские буквы и цифры (скажем, Film01, Reklam01), и разместите в одной специально созданной для этого папке. Затем в ней же создайте html-файл: с помощью программы Netscape Compozer сделайте меню. Можно написать нужный текст и в обычном Блокноте, приписав полученному файлу расширение htm (вместо txt). В листинге приведен пример такого текста.

Что здесь написано? Меню запуска фильма, рекламы и интервью — все, как на DVD-диске. Чтобы увидеть такое меню, теперь достаточно щелкнуть мышью на этом файле.

Какие данные присутствуют в меню? Кадр из фильма, четыре заставки четырех разных рекламных роликов, две маленькие фотографии артистов и два кадра из интервью. Ниже находятся строки «Запуск фильма» и «Установить драйвер». Если щелкнуть мышью на кадре из фильма или на строке «Запуск фильма», то начнется его воспроизведение. При нажатии на любом из четырех кадров рекламы запустится соответствующий видеофайл с анонсом новой картины (он также имелся на DVD-диске).

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

Чего же еще не хватает, чтобы все это заработало? Картинок — кадров из фильма. Чтобы их получить, нужен редактор VirtualDub (см. мою статью «Опыт записи и редактирования видео на ПК» в «Мире ПК», №12/01, с. 130, где, в частности, рассказывается, как с помощью этого видеоредактора быстро и просто сделать из видеоролика JPEG-файл).

Поочередно загрузите в VirtualDub все полученные с помощью FlasKMPEG видеофайлы формата MPEG-4. Допустим, их было семь: сам фильм, четыре анонса новых картин, два интервью и две фотографии артистов — статичные изображения внутри файла интервью. (Обратите внимание, что при получении в FlasKMPEG готового файла дополнительного материала, например интервью, в его конце могут присутствовать картинки, не предназначенные для просмотра как видео. Допустим, мы имеем два таких изображения, которые также можно преобразовать в обычный графический формат посредством VirtualDub.)

Назовите сам фильм Film01.avi, анонсы Reklam01.avi — Reklam04.avi, а интервью — INT_01.avi и INT_02.avi. Картинкам, полученным в VirtualDub, дайте имена 01.jpg (кадру из фильма), 02.jpg — 05.jpg (из анонсов), 06.jpg, 07.jpg (фотографиям артистов), 08.jpg и 09.jpg (кадрам из первого и второго интервью).

Теперь все эти данные надо разместить в одной папке, где должен находиться и файл меню — его можно назвать, например, Start.htm. Вот все и готово.

Запустите файл Start.htm и выбирайте из меню то, что захотите.

Разумеется, фильм будет воспроизводиться лишь тогда, когда у вас установлен Windows Media Player (либо другой проигрыватель видео). Предпочтительная версия Windows — не ниже 98.

Теперь о наиболее распространенных ошибках.

1. Название, указанное в файле меню, не соответствует реальному: например, фильм называется Film01.avi, а в файле меню ссылка на Film.avi.

2. Выбран размер кадра, не кратный 16. Такой фильм, как правило, очень плохо смотрится на экране: более чем в половине случаев его «перекашивает», и Windows Media Player не может правильно воспроизвести подобный видеофайл.

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

4. Звук и видео не синхронизированы. Как правило, это может быть в двух случаях: либо когда компьютер слишком слабый для просмотра фильмов в формате MPRЕ-4 (тактовая частота процессора ниже 300 МГц), либо когда при кодировании использовался звуковой кодек, отличный от указанных выше. Применяйте профессиональный звуковой кодек L3PROD_P.

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

после строки «НАЗВАНИЕ ВТОРОГО РОЛИКА РЕКЛАМЫ» и заканчивая следующей ближайшей к нему комбинацией символов
. Во втором случае выделите и скопируйте строки от буквосочетания
после строки «ИМЯ ВТОРОГО АРТИСТА» до следующей последовательности символов
, после которой скопированный фрагмент нужно вставить. Затем переименуйте файлы с ссылками и кадрами. Так, в нашем примере кадры должны называться не 08.jpg и 09.jpg, а, скажем, 10.jpg и 11.jpg. Интервью присвойте вместо INT_01.avi и INT_02.avi имена INT_03.avi и INT_04.avi соответственно.

При наличии дисковода CD-RW можно скопировать полученные данные на CD-ROM (если вы уложились в объем 700 Мбайт), но тогда, во-первых, надо записать в корневой каталог компакт-диска содержимое папки (т. е. фильм с дополнительными материалами), а не саму папку. А во-вторых, туда же следует поместить кодек MPEG-4 DivX412Codec — на случай, если на другом компьютере, где этот диск захотят посмотреть, его не окажется.