DVD - формат и обзор техник работы с ним.
Для проигрывания DVD я везде ставлю K-Lite Codec Pack (чтобы были все кодеки) и VLC (который умеет проигрывать не только файлы и диски всех форматов) но и потоковое видео.
Чтобы отриповать DVD я сначала обычно с помощью DVD Decrypter списываю файлы с болванки на комп. Эта програ хороша тем, что позволяет тонко настроить обработку ошибок при сбоях болванки, плюс снимает защиту (но обычно диски пиратские с уже снятой зщитой), плюс можно сразу обьединить все VOB'ы в один, чтобы не прогонять потом VOBMerger. Затем с помощью DVD Shrink я удаляю ненужные аудиопотоки и немного понижаю качетсво картинки. Ну а уже затем, наконец-то запускаю FlashKMPEG с кодировщиком DivX. Вот таким минимальным набором программ я рипую DVD - получается вполне прилично.
Все то же самое можно сделать вообще не снимая в существо дела с помощью InterVideo DVDCopy. А можно наоборот - вникая во все детали - путем ручного редактирования оглавления диска и отдельного VOB-файла с помощью IfoEdit.
Перекодировку DVD в DivX можно делать не только DVD Decrypter'ом или InterVideo DVD Copy но и с помощью FlashKMPEG.
Рассмотрим структуру DVD диска подробнее:
.Во-первых, на каждом DVD-диске есть обычная файловая система формата UDF. В ней всегда есть только две папки AUDIO_TS (используется для так называемых DVD-AUDIO) и VIDEO_TS (используются для обычных DVD-ROM дисков) - в ней-то и лежат все файлы.
По-правильному эти файлы должны быть зашифрованы (что впрочем нетрудно снимается) - но для совдепии это экзотика, т.к. у нас все диски только пиратские и копировать эти файлы на винчестер можно даже эксплорером.
Собственно данные - это файлы с расширением VOB. В них лежат вперемешку (микшированные) субтитры, звук и видео, закодированное по алгоритму MPEG2 (опорные кадры и изменения к ним). Это хорошо видно на рисунке. Прога VobEdit и аналогичные - позволяет вытащить в отдельные файлы титры, звук или видео.
VOB-файлы обычно небольшие - по одному гигабайту, а вполне обычные диски из DVD-проката часто двухслойные - по 7,5 гигабайт. Но просто сливать и делить VOB-Файлы нельзя - надо пользоватся утилитой VobMerger и VobSplit.
Но для проигрывания и на бытовых плеерах и на компе просто файловой системы недостаточно. Изначально стандарт DVD подразумевал включение в фильм субтитров, звука и возможность обхода некоторых фрагментов сюжета - например, пропуск постельных сцен для несовершеннолетних. Кроме того, где-то в этих VOB-файлах надо иметь меню для разветвлений сюжета (возможно с анимацией) и меню выбора языка для звукового сопровождения. Поэтому каждый VOB-файл имеет специальный справочник-оглавление в виде IFO файлов и копию в виде BUP-файла.
Чтобы бытовые и программные плееры всегда могли правильно зацепиться за диск - в нем в папке VIDEO_TS всегда присутствует начальный IFO-Файл - VIDEO_TS.IFO, в котором стоят ссылки на все остальные IFO-Файлы DVD-диска. Как раз этот первый обязательный IFO-файл и загружен в специальный редактор IFO-Файлов ниже на рисунке.
На рисунке хорошо видно, что файлы имеют вид VTS_01_* и т.д., титры (SubPicture) и звук на восьми языках - для всего этого указан адрес в виде начального сектора диска.
Редактировать IFO-файлы умеют только достаточно умные люди - ламерам там делать нечего - достаточно в целом понимать что в них содержится. Для более продвинутых людей ниже приводится описание таблиц, содержащихся в IFO-Файлах и краткая инструкция по использованию редактора IfoEdit.
У меня на сайте структуру таблиц можно посмотреть бесплатно, а разработчику редактора IfoEdit за просмотр придется заплатить пять долларов.
VTSI_MAT | Managment table | contains basic information about the IFO file itself, and attribute information about the streams contained by the Menu-VOB file and the Title-Set VOB files. |
PTT_SRPTI | Chapter table | Here you will find the definition of the Chapters. This table just holds pointers to PGC's and Programs that you can find in VTS_PGCITI. |
VTS_PGCITI | TitleSet (Movie) Program table | This is the main program table. It holds all information about the TitleSet (Movie), how it should be played, what cells are used in which order and so on. |
VTSM_PGCI_UT | Menu Program table | This one is nearly the same as above, except it holds the information for the Menu VOB file. |
VTS_TMAPTI | Time Map table | Very uninteresting table. You'll never need to edit anything in here. |
VTSM_C_ADT | Menu Cell address table | contains a list of all Cell's in the Menu VOB file VTS_xx_0.VOB. |
VTSM_VOBU_ADMAP | Menu Vob Unit address table | contains a list of all Vob-Units in the Menu VOB file VTS_xx_0.VOB. |
VTSM_C_ADT | TitleSet (Movie) Cell address table | contains a list of all Cell's in the TitleSet (Movie) VOB files VTS_xx_1.VOB - VTS_xx_n.VOB. |
VTSM_VOBU_ADMAP | TitleSet (Movie) Vob Unit address table | contains a list of all Vob-Units in the TitleSet (Movie) VOB files VTS_xx_1.VOB - VTS_xx_n.VOB. |
|