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

Полный список возможных опций можно прочитать в man странице. Синтаксис для воспроизведения стандартного 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. Эти две библиотеки содержатся в дереве исходного кода 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 так и делает. Драйвер UDF файловой системы не нужен, поскольку соответствующие драйвера встроены в эти библиотеки. DVD также не обязан быть смонтированным, поскольку используется только прямой посекторный доступ.

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

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

Расшифровка DVD.  Расшифровка DVD осуществляется библиотекой libdvdcss. Метод может быть указан переменной окружения DVDCSS_METHOD, подробную информацию смотрите на странице руководства man.

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