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. А о чём Вы раньше думали?
Осталось только прожечь болванку и повторить процедуру для второй части!! Наслаждайтесь!
|
|
|
|