Home
   Site map   About   News   Programming   Video   Gallery   Guestbook   Forum   Links   Contact   


Риппование dvd-rom

Предисловие

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

Структура статьи
Данная статья описывает весь процесс риппования от проверки необходимого места на винчестере до воспроизведения полученного avi-файла, со всеми возможными наворотами, типа: наложение нескольких аудио-потоков, субтитров, деление на два диска, воспроизведение. Однако по ходу изложения будут рассмотрены все возможные варианты обработки и если Вам что-то не потребуется, то просто перейдите к следующему интересующему Вас разделу.


Процесс риппования dvd-rom


1. Подготовка

  • Проверьте наличие свободного места на винчестере. Нам понадобится около 5-6 Gb для копирования dvd-rom и 1 Gb - для простого кодирования в avi-файл на 1 cd-rom с одним аудио-треком, или до 4 Gb - для кодирования на 2 cd-rom с двумя (по меньшей мере) аудио-треками. Итого от 6 до 10 Gb свободного места.
  • Проверьте наличие необходимых программ - я рекомендую запастись следующими программами:

    clad DVD - для копирования dvd-rom на винчестер,
    Advanced Bitrate Calculator - для определения параметров сжатия,
    Flask MPEG - для кодирования в avi-файл,
    SubRip - для работы с субтитрами,
    AviMux - для наложения дополнительных аудио-треков,
    Virtual Dub - для деления или пост-обработки avi-файла,
    BSPlayer - для воспроизведения мультитрекового avi-файла с субтитрами,
    GraphEdit - работа с любыми фильтрами DirectX (лучше взять из MS DirectX 8.0 SDK - поновее будет),
    Sonic Foundry Vegas - подгонка аудио под видео (официальный сайт - пока не знаю где лежит халявная версия).


2. Копирование dvd-rom на винчестер


3. Кодирование фильма

  • На данном этапе возникает потребность определиться - что же мы желаем получить и как.
    Во-первых: ответьте себе на вопрос - нравиться ли Вам этот фильм настолько, что желаете потратить две болванки?
    Во-вторых: сколько аудиотреков Вам хочется иметь? Если dvd-rom нашего родного 5-го региона, то на нём наверняка присутствует оригинальная иностранная дорожка (имеет смысл сохранить для совершенствования языка) и дублированный перевод (наряду с субтитрами, обычно, на двух и более языках). Если же dvd-rom оригинальный (любого другого региона) - то можете не искать на нём руского перевода или русских субтитров - у Вас появилась серьёзная проблема достать перевод к нему - при всём богатстве выбора сделать это совсем не просто (если у Вас нет знакомого пирата :-).

    Если Вы определились, то приступим, собственно, к процессу кодирования.
  • Запускаем Flask MPEG, выбираем интересующий трек, основной трек с озвучиванием, настраиваем выходной размер картинки, кодек и его параметры, запускаем процесс кодирования и ждём. Ждём. Долго ждём. Часов десять. Или даже всё ночь. Так что можете пойти поспать или на работу.
    ....
    Опаньки - мы вернулись.Надеюсь Ваш компьютер не перегрелся и не упал на пол во время кодирования - так что у Вас теперь есть один большой (или маленький) avi-файл с одним аудио-треком.
    Обязательно запустите его и проверьте что он:
    во-первых - воспроизводится, во-вторых - воспроизводится без рывков, без эффекта расчёстки, без периодического размазывания, в-третьих - звук синхронизирован с картинкой на протяжении всего фильма (достатчно проверить в начале, в конце, ну и в середине). Если всё же Вы получили фильм который смотреть нет никакой возможности, то читайте описание проблем кодирования и делайте всё заново ;(.

    (Смотри статью: Выбор параметров кодирования с использованием Bitrate калькуляторов)
    (Смотри статью: Структура dvd-rom или как найти треки с фильмом и трейлерами)
    (Смотри статью: Кодирование фильма программой Flask MPEG)
    (Смотри статью: Проблемы кодирования vob-файлов)

  • Ну а если всё в порядке, то можем вытащить из .vob'а дополнительную озвучку - с оригинальным языком, с наложенным закадровым переводом, ну или (для извращенцев) с комментариями режиссёра ;-).
    Если же Вам этого не надо, то прыгайте к вырезанию субтитров.


4. Кодирование отдельных аудио-потоков

    Самое мерзкое место в нашей работе - вырезание отдельного звукового трека. Вся проблема в том, что накладывать нам надо mp3, а этот формат тяжело поддаётся делению на фреймы нужного размера для синхронизации (это моё объяснение). Так что совсем не всегда удаётся синхронизировать полученный аудио-трек с картинкой, поэтому существуют разные методы:
  • Первый способ самый надёжный, но и самый ресурсоёмкий - зажать весь фильм заново, но уже с другим аудио-сопровождением. Да, да. Снова всю ночь бедный компьютер будет надрываться, а Вам не будет спаться под его безутешный рёв. Но зато гарантирована полная синхронизация в результате.
  • Второй способ - некой программой выгрузить ac3-файл из .vob-ов, сделать downsampling и попытаться зажать в mp3 сторонней программой (причём можно зажимать уже в процессе выгрузки). Делов-то всего часа на два (напомню, что ac3 - это mpeg2 или 1 размеров в пол-гига, а не зажатый wav занимает размер около 1,5 Gb). Недостаток один, но сводящий на нет все усилия - процентов так на 70 можете быть уверены, что озвучка не будет совпадать. И сделать с этим зачастую ничего нельзя.
    (Всё же посмотрите описание программ: Vob2audio и FlaskMPEG - может Вам повезёт)
  • Третий способ - в версии 0.6 горячо любимой нами FlaskMPEG появилась интересная опция: "Extract audio to wav" - с её помощью Вы сможете записать в несжатый wav-файл выбранный аудио поток для последующего наложения.
  • Возможно, есть и четвёртый способ, но мне ничего об этом не известно (если Вы на 100% уверены в своём методе - сообщите мне - после всестороннего тестирования обязательно расскажу всему свету об этом чуде).

    Ну да ладно - предположим, Вы получили mp3 файл с озвучкой - как его наложить на видео? Смотрите дальше...


5. Наложение отдельных аудио-потоков

    Существует два вида наложения: перезаписать существующий аудио-поток и добавить к существующему. Зачем нужны эти два способа:
  • Первый способ годится для проверки синхронизации видео и аудио. Так же таким способом получают заготовки мультитрековых фильмов для деления на два cd-rom. Выполняется программой Virtual Dub за 3 минуты (ну хоть что-то делается быстро). Для этого загружаете avi-файл, помечаете опцию видео "копировать поток напрямую", указываете аудио-файл в формате .wav (обязательно!), помечаете опцию аудио "копировать поток напрямую" и сохраняете avi под новым именем. Вуаля! Запускаем и молимся. Если поток не синхронизирован (мужик стреляет без глушителя - а грохота нету), то придётся снова мучить аудио-поток другим методом (если Вы зажимали в mp3 "по ходу") или жмём в mp3 другой программой (одновременно делая downsampling до 2-х каналов). Если всё нормально, то идём дальше.
  • (Дополнение к первому способу) - если в Вашем распоряжении несжатый wav-файл (например выгруженный FlaskMPEG 0.6), то в Virtual Dub выставьте заодно компрессию в MP3 и интерлив в 1 фрейм - с большой долей уверенности Вы получите синхронизированное аудио и видео.
  • Второй способ применяется для окончательного наложения озвучки или перевода, и выполняется программой AviMux, ну или в крайнем случае программой GraphEdit из комплекта MS DirectX 8.0 SDK.

    (Смотри статью: Использование программы AviMux)
    (Смотри статью: Использование программы GraphEdit)

    Предположим, что Вы добрались до этого момента и ещё не отказались от затеи сделать фильм близкий по качеству к dvd, с двуми аудио дорожками, да ещё на двух cd-rom.
    Предположим так же, что на данный момент у Вас в наличии (из расчёта максимальной сложности): два avi-файла размером каждый что-то около 1,3 Gb и в каждом файле своя синхронизированная озвучка. В дальнейшем мы разрежем каждый из файлов на два куска, затем к каждому первому куску присоединим озвучку от каждого второго. И получим два avi-файла размером под cd-rom, но с двумя аудио-треками.
    Если готовы, то самое время развлечься и заняться субтитрами.


5a. Подготовка перевода

    Если Вы всё же достали где-то (скачали из инета) закадровый перевод к фильму, то наложив его на видео опять же получим рассинхронизацию, но здесь чуть проще - звуков-то нет, только одинокий голос диктора без фона иногда прорезает тишину.
    Существует простые способы борьбы с этим и выбор способа зависит от того что мы имеем: мы можем иметь один или два больших mp3 файла, или штук 20 маленьких.
  • В первом случае накладываем на видео добавлением аудио-потока и просматриваем фильм в MS Media Player (лучше версии 6.4) - эта программа воспроизводит одновременно все звуковые дорожки фильма (запомним это). Далее по ходу просмотра помечаем отстаёт ли или опережает перевод в начале фильма. Исправляем этот недостаток вставкой тишины или подрезанием аудио-файла в хорошем звуковом редакторе (Cool Edit лучше в данном случае - напомню, что работать лучше с некомпрессированным wav-файлом). Затем накладываем заново, отмечаем, что начало перевода совпадает, тогда идём в конец файла и фиксируем конечное расхождение в секундах (до десятых долей). Затем в Sound Forge (imho лучше в данном случае) задаём Time Stretch (ну в общем не важно как называется - важно что мы желаем растянуть или сжать весь файл или его часть), и обрабатываем. Сжимаем .wav в .mp3 (напомню, что mp3 должен быть формата RIFF и иметь расширение wav). Накладываем заново, видим малое расхождение - плюём на это, ибо достало уже, и даём зарок больше никогда не смотреть этот фильм :-).
  • Во втором случае я бы посоветовал сохранить все mp3 в виде несжатых wav-файлов и запустить великослепленную программу Sonic Foundry Vegas - это пульт для мульти-трекового подмешивания звуков в видео-файл (попросту говоря с помощью этой программы делаются множество клипов известных певцов, путём наложения мычания по слогам). Грузим наш avi-файл, добавляем по одному файлу наш перевод и мышой подтягиваем его на нужное место, контролируя примерное совпадение по изображению пиков звука, а точное путём просмотра фрагмета в окошке той же программы. Затем отключаем (делаем "mute") вывод звука для оригинального аудио-трека из фильма (иначе услышим переходные шумы непонятного происхождения), помечаем все наложенные треки, микшируем в один трек и сохраняем опять же в wav. Затем кодим в mp3 и накладываем на видео. Всё!
    ЗЫ: Для кодирования в mp3 я рекомендую использовать Mpeg Producer Pro.

  • Далее Вы должны решиться - как в дальнейшем Вы будете просматривать этот фильм (точнее какой программой): Вы можете наложить просто голый перевод без фона вторым треком - тогда для просмотра фильма на языке оригинала Вы будете использовать BSPlayer, а для просмотра с переводом - MS Media Player (который воспроизводит все аудио-треки одновременно) - это мой выбор. Или же Вы можете в любом звуковом редакторе наложить на фон перевод (подобрав приемлемые уровни громкости), сохранить как озвучку с закадровым переводом, и наложить уже этот трек вторым аудио-потоком. Тогда для просмотра Вы будете использовать только BSPlayer - выбираете нужный трек и вперёд! Недостаток второго метода только один - вместо 20 Mb голого голоса диктора Вы получите 100 Mb озвучки. Что разумеется скажется на размере выходного файла.

    (Смотри статью: Использование программы Sonic Foundry Vegas)


6. Вырезаем субтитры

    Честно говоря - дело это элементарное - я им занимаюсь на утро после ночи кодирования, перед работой. Занимает по времени около часа.
  • Нам потребуется программа SubRip. Запускаем её, загружаем .ifo-файл, помечаем все требующиеся .vob-файлы и жмём кнопку "начать". Сразу же предлагается указать цвет представления субтитров (обязательно следует выбрать белый цвет без обведения на чёрном фоне).
    Далее программа с помощью системы оптического распознования начнёт пытаться понять что там на субтитрах написано (эти умники вместо нормального текста пихают на диск картинки! С ума сойти! Хотя откуда у бытового dvd-плейера знакогенератор? Даже у телевизора есть, а у проигрывателя нет - беда). В самом начале она разумеется ничего не будет понимать и Вы будете её учить, как в школе - это буква "A", а это буква "Б". Но минут через 10 начнёт сама шустренько копошиться и будет спрашивать только новые символы. Т.е. теоретически Вы должны объяснить (для английского алфавита) 26 букв строчных + 26 букв прописных + 26 букв строчных наклонных + 26 букв прописных наклонных + 10 цифр + 10 цифр наклонных. Всего делов-то!

    (Смотри статью: Использование программы SubRip)

    Проблемы: Буквы "I" и "l" никогда не распознаются правильно - т.к. выглядят ну совершенно одинаково, двойные кавычки мы не понимаем и вставляем две одинарные, частенько появляются лишние пробелы. Но на эти случаи есть специальная команда на исправление указанных ошибок - работает! Так же (для русского языка) буква "ы" состоит из двух символов (кто-бы мог подумать) - я ввожу "ь" для первой части и "ы" для второй - и после сохранения в формате .srt любым редактором делаю поиск с заменой символов "ьы" на "ы".

    В общем-то всё - только далеко программу не откладывайте - нам понадобится в дальнейшем разделить субтитры на два куска по времени первой части фильма (разумеется если Вы решились записать .avi на два cd-rom).


7. Кодирование трейлеров

    Этап необязательный - может Вам не хочется иметь эти самые трейлеры (рекламные ролики), режиссёрские ролики, ролики о съёмках фильма и т.д. Да ещё может случиться что нет их у Вас вовсе (наши отечественные диски частенько грешат этим).
  • Если всё же Вы нашли что-то интересное, то перечитайте раздел "структура dvd-rom" и закодируйте енто интересное во Flask MPEG, только подрежьте размер картинки хотя бы раза в два, да битрейт выставьте по-меньше, всё же это не самая важная часть фильма.

    Теперь я объясню почему-же до сих пор мы не резали наши большие .avi-файлы на куски. А как резать? Сколько места оставить на cd-rom под трейлер? Вообще - писать будет на 650-ки или 700-ки? Теперь вспомните арифметику и прикиньте примерный размер первого м второго .avi-файла с учётом трейлеров, роликов, программы для воспроизведения и переходите к следующему разделу.


8. Режем avi-файл

    Самая большая проблема заключается в том, что никакая программа (из моей коллекции) не может гарантированно разрезать мульти-трековый avi-файл. Поэтому приходится готовить файлы с одной дорожкой, резать, а только затем клеить другие аудио-треки. Но всё же приступим.
  • Если Вам известен примерный желаемый выходной размер кусков, то разрезать avi-файл достаточно просто. Для этого загружаем его в программу Virtual Dub, в "File information" узнаём количество ключевых кадров (keyframes count), в калькуляторе делим это значение на два, и удерживая клавишу Shift нажатой толкаем ползунок скроллера как можно ближе к этому числу, тем самым (енто про Shift) мы будем перемещаться по ключевым кадрам, ибо резать надо только по ключевому кадру, иначе второй кусок не станет воспроизводиться.
    Нашли. Запоминаем. Идём в "Video/Select range" и ставим смещение от начала в 0, длину в наше число, выставляем опцию видео "копировать поток напрямую" и сохраняем в файл например "фильм-eng-1.avi". Затем снова идём в "Video/Select range" и ставим смещение от начала в наше число, смещение от конца в 0, и сохраняем в файл например "фильм-eng-2.avi". Открываем .avi-файл со второй озвучкой. Снова идём в "Video/Select range" и ставим смещение от начала в 0, длину в наше число, и сохраняем в файл например "фильм-rus-1.avi". Затем снова идём в "Video/Select range" и ставим смещение от начала в наше число, смещение от конца в 0, и сохраняем в файл например "фильм-rus-2.avi".
    Вуаля. Проверяем, что все четыре файла открываются и играются правильно.
  • Тепереча ответственный момент - накладываем вторые аудио-потоки на первые .avi-файлы с помощью AviMux (кто забыл как это делается - перечитайте раздел "5. Наложение отдельных аудио-потоков").
    Хорошо, теперь проверим как работают отдельные звуковые потоки в обоих файлах. Для этого запускаем BSPlayer и в "Управление фильмом/Аудио поток" выбираем первый или второй потоки - должна слышаться русская или ангельская речь (если при этом картинка пропадает, то перейдите в fullscreen клавишей "f" и обратно - должно заработать). Почему именно этот плейер? Да как мне известно он один пока что может на ходу переключиться между аудио-потоками.

  • И только теперь (праздник юзера) Вы можете удалить и все .vob'ы и все большие avi'шки (только оставьте наши две результирующие avi, трейлеры и субтитры).
    Фух-ты запарились удалять, зато места-то сколько освободилось... Благодать!


9. Режем субтитры

    Смотрим длительность первого куска в часах:минутах:секундах, хотим отрезать куски субтитров для второй части.
  • Для этого снова запускаем SubRip, идём в окно "работа с субтитрами", грузим первый файл субтитров (например: английский), жмём на кнопку "Делить файл", ставим смещение от начала в 0, длительность - в нашу длительность фильма, жмём резать, сохраняем под новым именем, жмём на кнопку "Делить файл", ставим смещение от начала в нашу длительность, длительность - в конец, жмём резать, сохраняем под новым именем. Так же для второго файла субтитров. Нерезанные (!!!) субтитры архивируем и шлём мне - для коллекции ;-). Ну а разрезанные субтитры будем писать на cd-rom'ы вместе с плейером, фильмом и трейлерами.

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

    (Смотри статью: Использование программы SubRip)


10. Подготовка и запись cd-rom

    Дело осталось за малым - залить всё что наработали на болванкии и забыть об этой неделе кошмаров :-)
  • Для этого Вам понадобится писалка (резак, утюг или как там Вы его называете) - в общем CDD-R и программа для записи (я пользуюсь Easy CD Creator'ом, но Nero или WinOnCD тоже подойдёт). Требуется подготовить структуру будущего cd-rom. Для этого в корень некоего каталога кидаем autorun.ico (нарисуйте своё лицо ;-), BSPlayer (если фильм мультитрековый) с каталогом Skins и Lang, наш первый .avi, субтитры и если осталось место то и DivX кодек. Создаёте autorun.inf файл со следующей структурой:

    [autorun]
    open=bplay.exe "movie.bsl" -nsub -skin=dvd -lang=russian -as2
    icon=autorun.ico

    Давайте расшифруем что же мы написали: диску присваивается иконка autorun.ico, наличие файла autorun.inf заставляет Windows сразу после загрузки cd-rom в привод автоматически запустить файл bplay.exe со следующими пареметрами: открыть список фильмов из файла movie.bsl (можно указать просто имя avi-файла), субтитры не показывать даже если имя файла совпадает, загрузить скин с именем "dvd" (если он у Вас есть, то должен находиться в папке Skins), язык интерфейса Русский (если он у Вас есть, то должен находиться в папке Lang), воспроизводить сразу звуковой поток номер 2.
    Далее в файле movie.bsl Вы перечисляете имя трейлера (если есть), имя avi-файла (без пути, если Вы не кладёте их в каталог).

    Всё! Для проверки можете набрать команду subst <новая буква> <путь к вашему каталогу> и через проводник "автозапустить" новый диск. Всё должно заработать как с cd-rom. Если что-то не заработало - ищите ошибку.

    Замечание: после исправления ошибок скорее всего придётся выполнить команду subst <новая буква> /d, а затем всё повторить заново.
    Замечание: если всё же подготовленная структура не лезет на диск, то можно:
    1. Взять болванку большего размера, 2. Подрезать титры (в Virtual Dub) и заново наложить аудиотреки, 3. Включить режим перепрожига в Nero, 4. Выбросить DivX кодек, 5. Выбросить трейлеры, 6. А о чём Вы раньше думали?

    Осталось только прожечь болванку и повторить процедуру для второй части!! Наслаждайтесь!



 (c) AlexV, 2001   Зеркало сайта   ICQ status #77482907    Сайт в архиве    Webmaster   
Hosted by uCoz