«Закрытые» субтитры (Closed Captions)
Как и в случае с «открытыми» субтитрами, без переписывания ДВД-диска на винчестер-здесь не обойтись. Причем проблема, в данном случае, в том, что переписывать лучше всего одним куском. Т.е. получить у себя на жестком диске vob файл, 5—7 гигабайт размером (для операционных систем Windows NT, 2000, XP) . Это делается для упрощения добывания данных, поскольку программы и технология не подразумевают возможность автоматического перехода на следующий в цепочке vob, при выдергивании субтитров. Либо вам придется каждый раз заново указывать программе новый воб, а потом полученные файлы с субтитрами склеивать в один (операционки Windows 95, 98). За данность пока приму наличие одного целого vob-а. Если у вас все-таки цепочка, то проделываете тоже самое, что и с единым, а потом что делать — я опишу. Итак вам понадобится программа Graphedit и CCParser. (Кстати все программы цинично скачиваются по адресу doom9.org). Перед запуском Graphedit-a не забудьте зарегистрировать все фильтры. Для этого можно запустить register.bat, который идет вместе с graphedit-ом. Также неообходимо наличие установленного DirectX, версии не ниже 7.0.
[0] — Запускаем Graphedit. Нажимаем Ctrl+F или выбирам пункт меню Graph-Insert Filters
[1] — Список доступных фильтров. Все фильтры, которые нам нужны, находятся в разделе DirectShow Filters
[2] — Для добавления конкретного фильтра, необходимо либо щелкнуть по нему два раза мышью, либо выделив его нажать на кнопку Insert Filter. Есть небольшая разница в составе фильтров и способе их соединения. Зависит от операционной системы. Т.е. для системы Windows XP это будет один вариант, а для остальных систем — другой. Фильтры, которые потребуются (т.е. их надо добавить): File Source (Async.) — при добавлении, вас спросят имя файла-укажите на свой vob.
MPEG-2 Splitter (для Windows XP — MPEG-2 Demultiplexter)
Cyberlink Video/SP Decoder — если вы пользуетесь Power DVD; или InterVideo Video Decoder — если вы пользуетесь WinDVD; или какой-нибудь другой (посмотрите в разделе WDM Stream Decompressor-в самом конце Direct Show фильтров)
Infinite Pin Tee Filter
Line 21 Decoder (для Windows XP — Line 21 Decoder 2)
Overlay Mixer (для Windows XP его вообще не надо добавлять)
Dump — при добавлении, вас спросят имя файла — укажите любое имя с расширением .bin.
Video Renderer (для Windows XP — Video Mixing Renderer) Теперь эти фильтры необходимо соединить в цепочку вполне определенным образом. Соединяются фильтры достаточно просто. Мышкой щелкаете на выход фильтра и тянете стрелку ко входу следующего фильтра, не отпуская клавишу. Для систем отличных от Windows XP это будет выглядеть так (у меня не ХР-поэтому это мой вариант. А для ХР-расклад смотри ниже)
[3] — Output фильтра File Source (Async.) (Vts_02_1.vob на картинке) соединяем с Input фильтра MPEG-2 Splitter
[4] — Video фильтра MPEG-2 Splitter с Video In фильтра декодера вашего ДВД плейера.
В данном случае — Cyberlink Video/SP Decoder
[5] — Video Out c Cyberlink Video/SP Decoder подается на Input 0 фильтра Overlay Mixer
[6] — Closed Caption Out (на самом деле там может стоять и другая надпись. Главное здесь
— символ «~») c Input фильтра Infinite Pin Tee
[7] — Output 1 фильтра Infinite Pin Tee соединяется с XForm In фильтра Line 21 Decoder
[8] — Output 2 (может быть и 3 и 4) фильтра Infinite Pin Tee соединяется с Input фильтра
Dump (причем он будет называться не Dump, а так как вы его назвали при добавлении.
На картинке — matrix1)
[9] — XForm Out фильтра Line 21 Decoder соединяется с Input 2 фильтра Overlay Mixer
[10] — Output фильтра Overlay Mixer подается на Output фильтра Video Renderer
[11] — Сохраняем полученный GRF с любым именем
[12] — Нажимаем на кнопку проигрывания файла. Появляется окно, в котором отображается фильм.
[13] — Если вам нужны таки субтитры — ни в коем разе не закрывайте окно, где показывается кино.
Его можно закрыть только нажав сначала на кнопку стоп. Для Windows XP-расклады выглядят
так (без картинки, поскольку-нет у меня этой операционки, а фильтры некоторые идут только с ней):
[3] — Output фильтра File Source (Async.) (Vts_02_1.vob на картинке) соединяем с Input
фильтра MPEG-2 Demultiplexter
[4] — Video фильтра MPEG-2 Demultiplexter с Video In фильтра декодера вашего ДВД плейера.
В данном случае — Cyberlink Video/SP Decoder
[5] — Video Out c Cyberlink Video/SP Decoder подается на Input 0 фильтра Video Mixing Renderer
[6] — Closed Caption Out (на самом деле там может стоять и другая надпись. Главное здесь
— символ «~») c Input фильтра Infinite Pin Tee
[7] — Output 1 фильтра Infinite Pin Tee соединяется с XForm In фильтра Line 21 Decoder 2
[8] — Output 2 (может быть и 3 и 4) фильтра Infinite Pin Tee соединяется с Input фильтра Dump
(причем он будет называться не Dump, а так как вы его назвали при добавлении. На картинке — matrix1)
[9] — XForm Out фильтра Line 21 Decoder 2 соединяется с Input 2 фильтра Video Mixing Renderer
[10] — В Windows XP этот пункт не нужен
[11] — Сохраняем полученный GRF с любым именем
[12] — Нажимаем на кнопку проигрывания файла. Появляется окно, в котором отображается фильм.
[13] — Если вам нужны таки субтитры — ни в коем разе не закрывайте окно, где показывается кино.
Его можно закрыть только нажав сначала а кнопку стоп. Вся проблема в том, что пока не
проиграется весь фильм полностью — вы субтитров на целое кино не получите.
А фильм проигрывается с обычной скоростью. Т.е. для получения субтитров для
полуторачасового фильма, вам придется ждать эти самые полтора часа. Если же при этом у вас
фильм идет не одним vob-ом, то нужно после прогона первого vob-а, сделать следующее:
Удалить фильтр File Source (Async.) (Vts_02_1.vob на картинке). Просто выделить его и нажать
на клавиатуре клавишу Delete При этом разорвутся связи [3] и [4]. После этого, снова добавить
фильтр File Source (Async.), указав в качестве источника следующий в цепочке vob. Затем
необходимо удалить фильтр Dump (matrix1 на картинке). При этом разорвется связь [8].
А затем добавить его снова, указав в качестве имени файла название оличное от первого названия.
Т.е. если при обработке первого vob-а, у вас было название matrix1, то теперь имеет смысл выбрать
название matrix2. Восстанавливаете связи [3], [4] и [8]. И нажимаете на клавишу проигрывания [12].
Таким же образом получаете субтитры для всех vob-ов в цепочке, поочередно. В принципе, можно
сохранить проект под именем CC.grf и пользовать его на следующих фильмах. Но перед сохранением
необходимо удалить фильтры File Source (Async.) и Dump, поскольку Graphedit глючит при попытке
открыть проект с битыми ссылками. Я так мыслю, вы же не будете хранить вечно свои vob-ы и bin-ы
на жестком диске? В общем сохраняете ил не сохраняте-ваше дело. Движемся дальше. Закрываете
Graphedit. Теперь необходимо склеить все полученные bin-ы, в один файл. Делается это простой
командой Dos — copy. Строчка будет выглядеть примерно так:
copy matrix1.bin+matrix2.bin+matrix3.bin+matrix4.bin matrix.bin
В результате я получил файл matrix.bin, содержащий субтитры от всего фильма. Следующий клиент в
нашей клинике — программа CCParser. Работает под Dos-ом. Занимается конвертированием
bin-субтитров в srt-субтитры. На самом деле умеет, понятное дело, гораздо больше, но нас волнует
пока только этот аспект ее умений. Dos команда для меня выглядит так:
ccparser.exe matrix.bin matrix.srt /3 Ключ /3
означает, что при необходимости субтитры будут печататься в три строки. Ключ, ясен пень, —
параметр необязательный. На выходе получаете субтитры в популярном формате SubRip. Как и что
с ними можно делать — описано в первой части этой страницы.