Особенности восстановления архитектуры DVD-A из папок.

Ответить на тему
 
Автор Сообщение

user ®

Стаж: 12 лет

Сообщений: 15097

Пост Пост: #1 от 02-Фев-2010 03:16

[Цитировать]

Особенности восстановления архитектуры DVD-A из папок.
Pre-Pre-S: этот топик скорее для релизеров, нежели для качающих. Лучше готовить корректный рабочий образ ПЕРЕД ТЕМ, как выкладывать торрент на трекере. Суммарное время на сборку одного и того же проекта многими людьми человечество могло бы использовать с большей продуктивностью. Будем гуманны.
Pre-S: Увы, программа Padus DiscJuggler способна корректно собирать лишь поступательнопоточные архитектуры, лишенные каких бы то ни было смещений в LBA (т.е. все файлы лягут строго друг за другом в правильной последовательности, но без промежутков между собой или перед началом потока). Такая сборка в большинстве случаев НЕ ДАЕТ корректного результата для многопотоковых и универсальносовместимых DVD-A/DVD-V. Чтобы архитектура полученной копии работала на всех аппаратах, она должна быть максимально приближена по конструкции к диску-оригиналу, и не содержать ошибок отклонения от стандарта одновременно.
Информация о файловой системе и файловой навигации DVD-A находится в файле AUDIO_TS.IFO. Именно этим файлом руководствуется операционая система при воспроизведении DVD-A на PC. Однако standalone проигрыватели используют для навигации по DVD-A систему секторной адресации (LBA). А вот эта информация лежит в файле-менеджере AUDIO_PP.IFO, и она куда более капризна - в случае непопадания файлов в свои сектора даже при правильной последовательности диск на железе может воспроизводиться неправильно, либо не читаться вовсе.
Попробуем собрать из папок корректный образ на примере раздаваемого у нас Santana - Shaman. Данный проект имеет три важных момента: 1. у него двухпотоковое аудио, и начало первого потока смещено в LBA. 2. У него некорректно декриптована видеопапка (защиты удалены, но записи о них в головах потоков остались). 3. Он имеет длинную аудиочасть, и LayerBreak приходится на нее, т.е. не может быть определен существующим софтом в автоматическом режиме.
Потребуются программы: GEAR Pro, DVDFab, DVD-A explorer, WinHex, ImgBurn, утилита dvdazf. Весь этот софт в дистрибутивах можно найти у нас в "Помощи по разделу" (ссылок для ленивых давать не буду).
1. Утилитой dvdazf определяем начальный сектор первого аудиопотока. (Лучше делать это всегда, смещения может и не быть, но проверить лучше ДО ТОГО, как испорчена первая болванка, даже если проект однослойный).
Итак, из командной строки: dvdazf.exe "X:\Shaman\AUDIO_TS" 1 >файл.txt ВЫПОЛНИТЬ. (Здесь Х:\Shaman - локализация наших папок, 1 - номер аудиопотока, файл.txt - файлик, в который будет записана искомая информация)
Имеем в этом файлике: sector: 226307 (0x00037403) score: 36
Теперь знаем, что первый аудиопоток должен начаться в секторе 226307.
2. Делаем резервную копию файла AUDIO_PP.IFO (исходный файл нам еще понадобится). А сам файл из папки открываем в WinHex. За начало первого потока у нас отвечают строки 38 и 3С. Видим, что цифры не совпадают с определенными утилитой.
Меняем их в обеих строках на значение из файл.txt (два раза по четыре байта одинаково). Получаем
Сохраняем файл.
3. Открываем GEAR. Убеждаемся в преференциях, что диалог по стартовым секторам активен
Создаем DVD-Audio проект. Выбираем папку AUDIO_TS с измененным AUDIO_PP.IFO. Имеем
и т.д.
Видим, что диск начался не с нулевого сектора, но и не с конца первого слоя, как бы он мог начаться, не подмени мы менеджер-файл, и что первый поток ATS_01_1.AOB начался в нужном нам секторе (см. файл.txt). Обратим внимание на сектор, в котором введен AUDIO_PP.IFO. Запишем эту цифру: 185427.
4. Отказываемся в диалоге от ввода папки VIDEO_TS. (У GEAR есть баг, связанный с этим действием, мы его обходим). Теперь из проводника вручную перетаскиваем нашу папку VIDEO_TS в проект. GEAR спрашивает, на сколько секторов сместить эту папку относительно конца первой, предложив минимально 640
Соглашаемся. И тут имеем:
Задница. Видим, что введенным оказался только один видеопоток. На этом месте споткнулся не один десяток человек. Но мы-то знаем: GEAR умный, в отличие от Падуса он не пропускает в проект потоки с защитами и даже с их следами... Что поделаешь, придется исправить ошибку того, кто рипал оригинал.
4а. Пропускаем папку VIDEO_TS через DVDFab, убирая таким образом оставшиеся записи о защитах в головах потоков.
4б. Закрываем неудачный проект и повторяем пункты 3 и 4, но на этот раз добавляем перетаскиванием видеопапку, прошедшую чистку DVDFab'ом.
Убеждаемся, что теперь ввелись все файлы и из этой папки.
5. Теперь, когда благодаря искусственному смещению, все файлы разлеглись по правильным адресам, можно заменить AUDIO_PP.IFO на исходный (у нас в пункте 2 припасена его резервная копия). Перетаскиваем его в папку AUDIO_TS проекта. GEAR, переспросив о замене, предлагает разместить его в конце проекта. Не соглашаемся, вписываем сектор, в котором находился предыдущий _PP.IFO файл
Вводим, заменяя один файл другим по тому же адресу.
6. Конвертируем проект в физический диск (Convert volume to physical). По окончании процесса меняем расширение этого volume на .iso.
Образ диска готов.
7. Следующая задача - определить точку перехода на второй слой. Она, увы приходится на аудиочасть, ImgBurn сам помочь нам не сможет. Вспомним правила LayerBreak для ОТР:
А. искомый сектор ограничен концом первого слоя справа
В. первый слой должен быть больше или равен второму, т.е. искомый сектор ограничен серединой проекта слева.
С. искомый сектор должен делиться на 16 (для соблюдения корректности файловой структуры)
D. хотелось бы, чтобы LB попал на паузу, начало трека или хотя бы на трэкпойнт, во избежание слышимых задержек или дерганий при переходе.
Открываем ImgBurn, вводим наш образ. Имеем:
Делим общее количество секторов пополам, видим, что наша точка перехода должна оказаться между секторами 1815456 и 2086912 (где первая цифра - середина проекта, а вторая - середина болванки)
8. Осталось посмотреть, какие трекпойнты легли в эту зону. Исходим из того, что стартовый сектор трека есть сумма стартового сектора потока и сектора начала трека относительно начала потока. Стартовый сектор начала первого потока мы определили еще в первом пункте (226307). Вычтем его из обеих контрольных точек:получаем, что начало искомого трека должно находиться между 1589149 и 1860605 относительными секторами от начала потока.
Открываем наш AUDIO_TS.IFO в программе DVD-A explorer. Видим:
Оказывается в заданный промежуток попадают начала целых 3 треков (14,15,16). Прибавляем к этим цифрам по 226307 (стартовый сектор всего потока от начала диска), получаем соответственно 1815472, 1934915, 2078880. Средней цифрой пренебрегаем, т.к. она не делится на 16. Остальные обе устраивают, они действительно лежат в зоне между критическими секторами, определенными нами в пункте 7. Таким образом имеем на выбор:
LB = 1815472 или LB = 2078880.
9. Создаем в программе ImgBurn .mds файл для нашего .iso с любой из этих точек. Выбираем его. Записываем. Наслаждаемся корректной архитектурой и всеми работающими переходами.
9а. Тем, у кого аппарат чересчур восприимчив к связке .mkb/.bup, придется переименовать их в какие-нибудь АОВы с большими номерами в программе UltraISO прямо в образе непосредственно перед записью. (во многих случаях при правильной сборке эта восприимчивость исчезает).
9б. Геморрой под названием WATERMARKS не находится в подчинении архитектуры. Это одно из внутренних свойств потоков, изменение которых в задачи настоящего рассмотрения не входит.
[Профиль] [ЛС]
Показать сообщения:    
Ответить на тему

Текущее время: Сегодня 13:25

Часовой пояс: GMT + 4



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы