4.2. Воспроизведение DVD
Пред. | Глава 4. Использование CD/DVD | След.

## 4.2. Воспроизведение DVD

Полный список возможных опций можно прочитать в man странице. Синтаксис для стандартных Цифровых Многоцелевых Дисков[Digital Versatile Disc] (DVD) таков:

    mplayer dvd://<ролик> [-dvd-device привод]

Пример:

    mplayer dvd://1 -dvd-device /dev/hdc

Если вы собрали MPlayer с поддержкой dvdnav, синтаксис тот же, просто укажите dvdnav:// вместо dvd://.

Устройство DVD по умолчанию - это `/dev/dvd`. Если Ваши настройки отличаются, создайте символическую ссылку или укажите правильное устройство в командной строке, используя опцию `-dvd-device`.

MPlayer использует библиотеки `libdvdread` и `libdvdcss` для DVD расшифровки и воспроизведения. Эти две библиотеки содержатся в подкаталоге `libmpdvdkit2` дерева исходного кода MPlayer'а, так что отдельно устанавливать их не нужно. Вы также можете использовать уже установленные в системе версии библиотек, но это не рекомендуется, так как может приводить к ошибкам, несовместимости и потере скорости.

### Замечание

В случае проблем с декодированием DVD, попробуйте отключить supermount или другие подобные удобства. Некоторые RPC-2 устройства могут требовать уcтановку кода региона.

Структура DVD. Диски DVD используют сектора размером в 2048 байтов с ECC/CRC. На них обычно единственная файловая система UDF на одной дорожке, которая содержит различные файлы (коротенькие .IFO и .BUK и длинные (порядка гигабайта) .VOB). Это настоящие файлы, которые можно просматривать/переписывать со смонтированного не зашифрованного DVD.

Файлы .IFO содержат информацию для навигации (раздел/ролик/угол/язык и пр.), необходимую для интерпретации содержания .VOB (кино). Файлы .BUK — их дубли. Эти файлы содержат адреса в секторах, так что для исполнения навигации и расшифровки DVD, нужен доступ к файлам на уровне секторов.

Для поддержки DVD необходим прямой посекторный доступ к устройству. К сожалению, (под Linux) Вы должны быть root'ом, чтобы получить секторный адрес файла. Вот почему мы вообще не используем драйвер файловой системы из ядра, а переписали его для выполнения в пользовательсмком пространстве. `libdvdread` 0.9.x и `libmpdvdkit` так и делают. Драйвер UDF файловой системы не нужен, поскольку соответствующие драйвера встроены в эти библиотеки. DVD также не обязан быть смонтированным, поскольку используется только прямой посекторный доступ.

Иногда `/dev/dvd` не доступен на чтение рядовым пользователям, поэтому авторы `libdvdread` написали уровень эмуляции, который превращает секторные адреса в названия файла и смещение, для эмуляции прямого доступа на замонтированной файловой системе или на жёстком диске.

`libdvdread` даже позволяет указывать точку монтирования вместо имени устройства для прямого доступа, и получает его название из `/proc/mounts`. Этот метод придуман для Solaris, где данные названия присваиваются динамически.

Устройство DVD по умолчанию — `/dev/dvd`. Если Ваши настройки отличаются, создайте символическую ссылку или укажите правильное название в командной строке после опции `-dvd-device`.

DVD аутентификация. Аутентификация и дешифровка в новом методе поддержки DVD происходит при помощи пропатченной `libdvdcss` (см. выше). Метод может быть указан в переменной среды `DVDCSS_METHOD`, которая может быть установлена в key, disk или title.

Если ничего не указано, она пробует следующие методы (по умолчанию: key, title request):

1. bus key: Этот ключ устанавливается во время аутентификации (длинная смесь ioctl'ов и различных обменов ключами, криптографические процедуры) и используется для зашифровки ключей диска и ролика при передаче по незащищённой шине (во избежания подслушивания). Он необходим для получения и предварительной расшифровки ключа диска.

2. cached key: MPlayer ищет уже взломанный ключ ролика, который сохраняется в каталоге `~/.mplayer/DVDKeys` (быстро ;).

3. key: Если кэшированного ключа нет, MPlayer пытается расшифровать ключ диска с помощью включённых ключей плееров.

4. disk: Если метод key проваливается (например, при отсутствии ключей плееров) MPlayer взломает ключ грубой силой. Этот метод интенсивно использует процессор и нуждается в 64 мегабайтах памяти (хэш-таблица из 16 миллионов 32-разрядных записей). Работает наверняка (но медленно).

5. title request: Используя ключ диска MPlayer запрашивает зашифрованные ключи роликов, которые находятся в скрытых секторах, используя `ioctl()`. Региональная защита RPC-2 приводов осуществляется именно на этом этапе и может не сработать на подобных приводах. Если это удаётся, ключи роликов будут расшифрованы, используя ключи диска и шины.

6. title:Данный метод используется если title request не срабатывает. Он не опирается на обмен ключами с приводом. Используется криптографическая атака, чтобы угадать ключ непосредственно (находится повторяющаяся последовательность в расшифрованном содержимом VOB'а и предполагается, что текст, соответствующий первому зашифрованному байту - это продолжение этой последовательности). Метод также известен под названиями " атака с известным открытым текстом" или "DeCSSPlus". В редких случаях этот метод проваливается, по причине недостаточности зашифрованного содержания для статистической атаки или из-за изменения ключа в середине ролика. Это единственный метод расшифровать содержимое DVD на жёстком диске или на диске из неподходящего региона на проигрывателе RPC-2. (медленный метод).

С дисководами RPC-1, региональная защита осуществляется программно. Дисководы RPC-2 защищены аппаратными средствами, разрешающими менять регион всего 5 раз. Рекомендуется обновить прошивку[firmware] до RPC-1 если у тебя RPC-2 привод. Обновления прошивок могут быть найдены на странице прошивок. Если для Вашего дисковода нет обновления, используйте для изменения региона привода программу regionset (для Linux). Внимание: Изменить регион можно всего 5 раз.

Пред. | Уровень выше | След.
4.1. приводы CD/DVD | Начало | 4.3. воспроизведение VCD