Просмотр DVD в Linux

Просмотр DVD в Linux

Цель этой статьи состоит в том, чтобы разобраться, как заставить Linux проигрывать DVD при помощи любой из доступных в Сети программ. Для начала разберемся с основами технологии DVD, а затем рассмотрим более подробно практическую часть.

В основе механизма просмотра DVD лежит способность аппаратного или программного обеспечения декодировать и читать зашифрованные фильмы. DVD-диски шифруются по специальному алгоритму, известному как CSS (Content Scrambling System — Система Скрэмблирования Содержания), который призван защитить от нелегального копирования материала, записанного на DVD-диск. Вообще этот алгоритм не является секретным, но для того, чтобы использовать его для своего устройства (аппаратного или программного), вы должны заплатить за лицензию и плюс к этому еще и подписать несколько соглашений, запрещающих вам кому-либо его раскрывать.
Каждый DVD-диск имеет свой собственный ключ — аналогично тому, как свой собственный ключ имеет каждый дверной замок. При работе в MS Windows этот ключ хранится в секрете. Все коммерческие DVD-плейеры для MS Windows содержат в себе алгоритм, за который заплатил разработчик этого плейера. Таким образом, в стоимость аппаратного или программного проигрывателя входит и стоимость лицензии на алгоритм шифрования DVD-дисков.

Однако основой философии Linux является свобода, принципы которой нарушаются, если нас заставляют платить за DVD-плейер для Linux. Хотя некоторые энтузиасты и пытались получить алгоритм у владельцев, но они всегда слышали один и тот же ответ: процесс получения алгоритма для Linux такой же, как и для Windows.
Итак, краткий экскурс в историю для тех, кто еще не в курсе, что такое DeCSS:
Несколько лет назад один молодой парень захотел посмотреть под Linux'ом свой легально приобретенный DVD-диск, т.е. разработать плейер под Linux, поскольку таковых тогда не существовало вообще. Для этого он использовал известную уязвимость давно уже "почившего в бозе" Windows-плейера Xing, суть которой была в том, что пресловутый секретный ключ диска оставался в самом плейере. Так, при помощи математики и дизассемблирования, ему удалось восстановить алгоритм.
Получившийся декодер он и назвал DeCSS. Позднее он присоединился к группе друзей, скрывающихся под именем Masters Of Reverse Engineering (MORE), чтобы создать DVD-ripper под Windows, а также несколько утилит для просмотра расшифрованных файлов под Linux.
При этом не требовалось никакой платы, и код был выложен в Сети "для любого имеющего желание смотреть свои DVD в Linux". Об этом узнала MPAA, и по указу Верховного Суда ни один сайт в США не имел права размещать у себя DeCSS. Это моментально вызвало бурный интерес всего мира к DVD-плейерам под Linux. Дело до сих пор находится в суде страны свободы (США). Более подробно об этом вы можете прочитать здесь: http://www.eff.org/ .

Сейчас под Linux уже существуют и другие программы-дешифраторы, не использующие код DeCSS, но выполняющие аналогичную функцию и не дающие повода для возбуждения судебных исков. Вот на этих программах мы и остановим свое внимание.
Итак, нам потребуются:
— OС Linux.
— Звук: ALSA (хорошо, если с драйвером emu10k1 SoundBlaster: это единственный звуковой драйвер под "Линукс", способный использовать функции Surround для карты SB Live 5.1 — даже Windows-драйверы не имеют и половины его функций).
— Видеопроигрыватели:
1. Xine 0.9.12 (со всеми его плагинами мало кто может с ним тягаться).
2. Ogle 0.8.2 (быстрый DVD-only-плейер с поддержкой DVD-меню).
3. Mplayer 0.90 (в основном, консольный плейер с широким набором опций. Mplayer проигрывает практически любой формат включая VOB, VIVO, ASF/WMV, QT/MOV, Xanim, AVI, DiVX, VCD, SVCD, ну и, конечно, DVD. Кроме этого, он имеет свой GUI с наборами скинов).
И Xine, и Mplayer уже имеют полную поддержку многоканального объемного звука.
Требования для сборки Mplayer:
libdvdread 0.8 и libcss (не путать с libdvdcss)
или
libdvdread 0.9 и libdvdcss 0.0.3 (не libcss и не libdvdcss 1.0).

Все это можно взять на www.dtek.chalmers.se/groups/dvd .
Библиотека libdvdcss используется для расшифровки DVD, а libdvdread — для чтения его содержимого.
Если у вас звуковая карта из серии SoundBlaster Live! 5.1, то я рекомендую использовать ALSA версии не ниже 0.9.0rc2.
Не забывайте читать файлы INSTALL и README для всех упомянутых пакетов.

Шаг 1
libdvdcss
./configure
соберите и установите командой make && make install && ldconfig

Шаг 2
libdvdread
компилируем и устанавливаем аналогично предыдущей команде

Шаг 3
mplayer 0.90
./configure --help
make && make install
После чего он установится в /usr/local/bin как mplayer

Шаг 4
Если, к примеру, /dev/hdc — это ваш DVD-привод, то создайте такую ссылку:
ln -s /dev/hdc /dev/dvd
(это нужно сделать только один раз)
выполните команду
mplayer -dvd 1 -ao oss
Программа выдаст нам ключ шифрования для диска, а затем начнет показывать зашифрованный фильм!
У Mplayer туча всяких функций, т.е. слишком много, чтобы рассматривать их все в этой статье, но так необходимая нам функция многоканального звука включается следующим образом: -channels x, где х — 2,4 или 6 динамиков.
Но имейте в виду, что эта опция бессмысленна, если у вас простая двухканальная звуковая карта! Многоканальные карты уже сейчас вполне доступны по цене, так что можно позволить себе разориться на одну из таких.

Другие полезные опции:
-title x --; — выбрать наименование DVD;
-chapter y --; — выбрать раздел в наименовании, указанном выше;
-ss hh:mm:ss --; — перейти в указанный момент времени;
-vcd x — воспроизвести раздел vcd;
-channels 4 — воспроизвести на 4 раздельных канала (фронтальные и тыловые)
Кроме этого, в Mplayer доступно отображение дополнительной информации, но не обычные DVD-субтитры.
Вообще-то Mplayer очень быстро стал наиболее скачиваемым плейером, хотя его и не так легко настроить, как Xine. Особенно если вы не очень любите компилировать программы.
Требования для установки и запуска Xine за 5 минут:

Шаг 1
Скачайте последний релиз xine с xine.sourceforge.net
Если вы не собираетесь компилировать Xine из исходников, то вам понадобятся RPM-пакеты, похожие на эти:
— xine-lib-0.9.12-x86.rpm
— xine-lib-0.9.12-oss-x86.rpm
— xine-lib-0.9.12-oggvorbis-x86.rpm
— xine-lib-0.9.12-xv.rpm
— xine-lib-0.9.12-x86.rpm
— xine-ui-0.9.12-x86.rpm
— xine-lib-dvdnav-0.9.10-x86.rpm

Шаг 2
Скопируйте все rpm-пакеты в пустую папку. В ней же авторизуйтесь с правами root и выполните команду
rpm -Uvh xine*.rpm
Если вы не любите консоль, то вызовите kpackage или gnorpm и установите пакеты с их помощью.

Шаг 3
Находясь в Х Window, откройте консоль (просто чтобы посмотреть вывод плейера; когда мы закончим с настройками, консоль нам больше не понадобится) и выполните следующее (соблюдайте регистр каждой буквы!):
xine -pq -A oss -V xv -u0 dvdnav://

Выглядит непонятно, но на самом деле все очень просто. Суть всех этих опций заключается в установке значений по умолчанию для звука и видео, которые заносятся в конфигурационный файл, лежащий в
".xine/config" вашей домашней директории.
-pq — Xine начинает воспроизведение немедленно и завершает работу по его окончании;
-A oss — использовать oss в качестве аудиодрайвера;
-V xv — использовать xv в качестве видеодрайвера;
-u0 — выбрать первые субтитры (обычно Английские, u1 соответствует Французским и т.д.);
dvdnav:// — это дополнительный плагин, который непосредственно и воспроизводит DVD. Он также понимает DVD-меню и умеет переходить от раздела к разделу по нажатию 9/3 на цифровой клавиатуре.
Полный список опций можно просмотреть при помощи команды "xine --help" или "man xine".
Как упоминалось ранее, в меню можно выбирать скины. Также в нем доступны все настройки включая и многоканальный звук.
К достоинствам Xine также следует отнести то, что он умеет воспроизводить довольно много форматов: DVD, VCD, CD, OGG, MP3, WAV, DiVX... и т.д., и т.п.

Ссылки
xine: xine.sourceforge.net
ogle: www.dtek.chalmers.se/groups/dvd
mplayer: www.mplayerhq.hu/homepage
ALSA: www.alsa-project.org
xinedvdnav plugin (для расшифровки DVD, с поддержкой DVD-меню): http://dvd.sourceforge.net/

По материалам Tunji Durodola
Подготовил X-Stranger



Компьютерная газета. Статья была опубликована в номере 22 за 2003 год в рубрике soft :: ос

©1997-2022 Компьютерная газета