Просмотр HD-DVD фильмов с внешними субтитрами в программе PowerDVD
Технологии не стоят на месте, на смену DVD приходят новые форматы высокого разрешения — Blu-Ray и HD-DVD.
Цены на «железные» плееры (на момент написания этой статьи) пока высоки, однако вы можете просмотреть любимый фильм в высоком разрешении на своём компьютере при помощи программы PowerDVD.
Программа даёт отличную картинку, но вот беда — в ней не предусмотрено подключение внешних субтитров.
Ввиду особенности формата HD-DVD, есть выход. Дело в том, что в структуре HD-DVD диска есть, так называемый, playlist — .XPL файл, который легко редактируется даже в блокноте. Это даёт нам массу преимуществ — мы можем вырезать рекламные ролики, раздражающие нас надписи «FBI WARNING», затянутые заставки компаний и, конечно же, подключать внешние субтитры!
Итак, у нас на жестком диске имеется резервная копия HD-DVD фильма. Пусть это будет фильм «Serenity»:

Для начала нам необходимо изготовить сами субтитры. Субтитры нужны в хитром формате — Advanced Subtitles (в дальнейшем .xas-файл).
Проще всего их изготовить, сконвертировав имеющиеся субтитры при помощи известной программы Subtitle Workshop. Для этого нам надо скачать обновлённую версию SubtitleApi.dll-файла. Где взять самую свежую версию этого файла можно посмотреть на форуме. Не забудьте скачанный файл положить в SubtitleApi директорию программы. Теперь мы можем запускать программу Subtitle Workshop — переходим к загрузке файла:

Загружаем перевод к фильму «Serenity», который мы хотим преобразовать в .xas файл:

Корректируем тайминг, если это необходимо, проводим аудит перевода (данный шаг можно пропустить):

Теперь нам надо сохранить перевод в другом формате:

Если вы установили обновлённую версию SubtitleApi.dll, то должна появиться возможность выбора формата Advanced Subtitles:

Выбираем этот формат, присвоим нашему переводу имя rus.xas, запишем его и попадаем в форму параметров:

Форма поделена на 4 секции.
- В первой — свойства шрифта: название, размер (в точках или процентном соотношении), цвет, прозрачность и возможность включить «тень».
Если вам требуется выводить субтитры шрифтом, отличным от стандартного, например, Comic Sans MS, то файл шрифта comic.ttf необходимо поместить в директорию ADV_OBJ, а также прописать название в настройках вывода субтитров вместо arialbd.ttf. - Во второй — расположение шрифта: координаты левого нижнего угла, ширина и высота субтира (в точках или процентном соотношении) и выравнивание.
Можно смешивать параметры, например, указывая значение ширины в процентах, в то время, как остальное указывается в точках. - В третьей — язык и кодировка перевода, в нашем случае это русский.
Encoding — совпадает с кодировками, принятыми в xml. - В последней секции — настройки для склеивания коротких строк в одну (если не диалог) и разбиение полученной строки, если длина результата превышает указанное значение.
Следует заметить, что PowerDVD в многострочных субтитрах отображает только две первые строки. Поэтому перед конвертированием субтитров неплохо сделать проверку, нет ли в файле многострочных субтитров. Для получения такой информации в Subtitle Workhop, нажмите комбинацию клавиш Ctrl+Shift+I.
В данном случае параметры настроены под 37" HD-Ready LCD панель с разрешением 1360x768, но вы можете легко подстроить расположение субтитров под свой монитор/телевизор.
NB! Функцию «Simulate shadow» полезно включать только тогда, когда при просмотре фильма нет сверху и снизу черных полос. Дело в том, что тень в .xas-файле получается наложением двух шрифтов разного цвета (со смещением), поэтому, при включенной опции перевод будет занимать два раза больше места. Также если показ видео сопровождается «рывками», попробуйте отключить тень — это снизит нагрузку.
Итак, у нас получился файл serenity.xas. Но это ещё не все. Необходимо сделать вспомогательный manifest-файл rus.xmf, который содержит в себе следующую информацию:
<?xml version="1.0" encoding="utf-8"?>
<Application xmlns="http://www.dvdforum.org/2005/HDDVDVideo/Manifest">
<Region x="0" y="0" width="1920" height="1080" />
<Markup src="file:///dvddisc/ADV_OBJ/rus.xas" />
<Resource src="file:///dvddisc/ADV_OBJ/rus.xas" />
</Application>
Данный файл описывает путь к внешнему файлу, в нашем случае это наш перевод rus.xas. Изменять в этом файле ничего не надо — создав его один раз, вы можете использовать его во всех дальнейших «русификациях» фильмов.
Вот теперь мы готовы поключать наши субтитры к HD-DVD. Зайдём в директорию ADV_OBJ, где должен находиться файл PLST000.XPL. Он-то нам и нужен, ибо в нём описана последовательность проигрывания сцен, список аудио и видеодорожек, и так далее.

Открываем этот файл (тем же блокнотом) и видим, что по сути он состоит из тегов <TITLE ...>, в которых указаны такие параметры как длительность сцены, режим изображения, id сцены, комментарии и тому подобное. Наша задача найти главную сцену, т.е. сам фильм. Отличить от других сцен довольно легко, например по id="MainMovie" или, зная длительность фильма по продолжительности titleDuration="01:58:54:22", или по списку эпизодов, которые обозначены тегами <Chapter displayName= ...>.
В нашем случае главная сцена у нас описывается вот так:
<Title titleNumber="2" alternativeSDDisplayMode="letterbox" titleDuration="01:58:54:22" id="MainMovie" displayName="MainMovie" onEnd="returnToMM">
<PrimaryAudioVideoClip titleTimeBegin="00:00:00:00" titleTimeEnd="01:09:09:35" src="file:///dvddisc/HVDVD_TS/FEATURE_1.MAP" dataSource="Disc">
<Video track="1" mediaAttr="1"/>
<Audio track="1" streamNumber="1" mediaAttr="1" description="English 5.1"/>
<Audio track="2" streamNumber="2" mediaAttr="1" description="Espanol 5.1"/>
<Audio track="3" streamNumber="3" mediaAttr="1" description="Francais 5.1"/>
<Audio track="4" streamNumber="4" mediaAttr="1" description="Director's Commentary 2.0"/>
<Subtitle track="1" streamNumber="1" mediaAttr="1" description="English SDH"/>
<Subtitle track="2" streamNumber="2" mediaAttr="1" description="Espanol"/>
<Subtitle track="3" streamNumber="3" mediaAttr="1" description="Francais"/>
...
Пришло время подключать наши субтитры. Для этого ищем в нашей главе тег <TrackNavigationList>:
<Chapter displayName="Do We Have an Order?" titleTimeBegin="01:45:49:52" />
<Chapter displayName="It's Not Over" titleTimeBegin="01:47:30:35" />
<Chapter displayName="End Titles" titleTimeBegin="01:53:14:47" />
</ChapterList>
<TrackNavigationList>
<AudioTrack track="1" langcode="en:01" selectable="true"/>
<AudioTrack track="2" langcode="es:01" selectable="true"/>
<AudioTrack track="3" langcode="fr:01" selectable="true"/>
<AudioTrack track="4" langcode="en:01" selectable="true"/>
<SubtitleTrack track="1" langcode="en:01" selectable="true"/>
<SubtitleTrack track="2" langcode="es:01" selectable="true"/>
<SubtitleTrack track="3" langcode="fr:01" selectable="true"/>
</TrackNavigationList>
</Title>
...
Обращаем внимание на длительность главы равную titleDuration="01:58:54:22", а также на то, что в главе четыре аудиодорожки и три субтитра.
Теперь вставляем перед тегом <TrackNavigationList> вот такую конструкцию (выделено красным):
<Chapter displayName="Do We Have an Order?" titleTimeBegin="01:45:49:52" />
<Chapter displayName="It's Not Over" titleTimeBegin="01:47:30:35" />
<Chapter displayName="End Titles" titleTimeBegin="01:53:14:47" />
</ChapterList>
<AdvancedSubtitleSegment src="file:///dvddisc/ADV_OBJ/rus.xmf" titleTimeBegin="00:00:00:00" titleTimeEnd="01:58:54:22" sync="hard">
<Subtitle track="4">
<ApplicationResource src="file:///dvddisc/ADV_OBJ/rus.xmf" loadingBegin="00:00:00:00" priority="1" multiplexed="false" />
<ApplicationResource src="file:///dvddisc/ADV_OBJ/rus.xas" loadingBegin="00:00:00:00" priority="1" multiplexed="false" />
</AdvancedSubtitleSegment>
<TrackNavigationList>
<AudioTrack track="1" langcode="en:01" selectable="true"/>
<AudioTrack track="2" langcode="es:01" selectable="true"/>
<AudioTrack track="3" langcode="fr:01" selectable="true"/>
<AudioTrack track="4" langcode="en:01" selectable="true"/>
<SubtitleTrack track="1" langcode="en:01" selectable="true"/>
<SubtitleTrack track="2" langcode="es:01" selectable="true"/>
<SubtitleTrack track="3" langcode="fr:01" selectable="true"/>
<SubtitleTrack track="4" langcode="ru:01" selectable="true"/>
...
И заносим в titleTimeEnd длительность главы, в нашем случае она равна "01:58:54:22". Кроме того, наш перевод в виде внешнего субтитра получает номер 4 (так как три субтитра уже есть на диске).
Вот и всё. Сохраняем изменённый файл VPLST000.XPL и переносим наши файлы rus.xas и rus.xmf в директорию ADV_OBJ. Запускаем PowerDVD, загружаем фильм, выбираем наш перевод последовательным нажатием кнопки U и наслаждаемся видео высокого качества. :)
