Блог программиста Еремина Вячеслава Викторовича
(Notes) Notes (2003 год)

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 Containes 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 Containes a list of all Cell's in the Menu VOB file VTS_xx_0.VOB.
VTSM_VOBU_ADMAP Menu Vob Unit address table Containes a list of all Vob-Units in the Menu VOB file VTS_xx_0.VOB.
VTSM_C_ADT TitleSet (Movie) Cell address table Containes 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 Containes a list of all Vob-Units in the TitleSet (Movie) VOB files VTS_xx_1.VOB - VTS_xx_n.VOB.


Комментарии к этой страничке ( )
ссылка на эту страничку: http://www.vb-net.ru/dvd/index.htm
<Назад>  <Назад>  <На главную>  <В раздел ASP>  <В раздел NET>  <В раздел SQL>  <В раздел Разное>  <Написать автору>  < Поблагодарить>