, перевод , ссылка на оригинал
class="c2">Здравствуйте, уважаемые читатели.
Меня зовут Tunji Durodola (Таньжи Дуродола) и пишу я из Нигерии
(Западная Африка), которая известна тем, что здесь находится самая
большая на планете коллекция чернокожих людей
(видимо, это юмор
африканских линуксоидов - прим.перев.).
Цель этой статьи состоит в том, чтобы разобраться, как
заставить Linux проигрывать DVD при помощи любой из доступных в
Сети программ. Для начала разберемся с основами технологии DVD, а
затем рассмотрим более подробно практическую часть.
class="c2">Преамбула.
class="c2">В основе механизма просмотра DVD лежит способность
аппаратного или программного обеспечения декодировать и читать
зашифрованные фильмы. DVD-диски шифруются по специальному
алгоритму, известному как Content Scrambling System (Система
Скрэмблирования Содержания), или CSS, который призван защитить
от нелегального копирования материала, записанного на 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. Дело до сих пор
находится в Суде Страны Свободы (США). Более подробно об этом вы можете прочитать
href="http://www.eff.org/">здесь.
[08:54] Автор программы DeCSS для взлома защиты DVD оправдан норвежским судом.
Обвинения в умышленном взломе системы защиты DVD с "пиратскими" целями
href="http://www.compulenta.ru/2003/1/8/36669">
http://www.compulenta.ru/2003/1/8/36669.
... компьютерные новости от Computerr'ы 3.3.2003
[16:57] Дело создателя программы для взлома DVD возвращается в суд.
Апелляционный суд принял решение направить дело DeCSS на повторное рассмотрение.
Повторные слушания начнутся осенью нынешнего года.
href="http://www.compulenta.ru/2003/3/3/37987">
http://www.compulenta.ru/2003/3/3/37987.
Прим.ред.]
class="c2">Сейчас под Linux уже существуют и другие программы-дешифраторы,
не использующие код DeCSS, но выполняющие аналогичную
функцию и не дающие повода для возбуждения судебных исков
- прим. перев.). Вот на этих программах мы и остановим своё
внимание.
class="c2">Приступаем к делу!
class="c2">Чтобы немного вас разогреть, я расскажу что у меня за
система.
class="c2">Железо
class="c3">Процессор: Pentium III 750 (да, староват, уже планирую
приобрести Athlon XP 1900+)
ОЗУ: 1GB PC 133 SDRAM (эй, память была дешевле когда я её
покупал!)
Материнская плата: MSI BX Master, 4 IDE Slots (2 встроенных Promise
Controller
[Судя по всему, речь идёт о RAID-контроллерах. Прим.ред.])
Корпус: ATX Extended Tower with 9 5.25 Slots
Звуковая карта: SoundBlaster Live! 5.1 Platinum (отличная карта!)
Видео-карта: NVidia TNT2, 32MB SDRAM
Жёсткий диск: 2x WD400 7200 RPM, 40GB, 2MB Cache (здесь я преуспел!)
class="c3">Колонки. Фронтальные: колонки 80W
Kenwood, подключенные к усилителю Technics 80W Power Amp, который,
в свою очередь, напрямую подключен к звуковой карте.
class="c3">Тыловые: средние недорогие 20W RMS
компьютерные динамики
class="c3">Центральные: те же что и
предыдущие
class="c3">Сабвуфер: неизвестный 40W Sub в
деревянном корпусе
class="c3">Монитор: 18" NEC TFT Flat Panel
class="c3">Программное обеспечение
class="c3">OС: SuSE Linux 8.0 Professional
class="c3">Звук: ALSA 0.9.0rc2,
с драйвером emu10k1 SoundBlaster. Это единственный звуковой драйвер
под Линукс, способный использовать функции Surround для карты SB
Live 5.1. Даже Windows-драйверы не имеют и половины функций этого
драйвера. Линукс-драйвер поддерживает до восьми таких карт в одной
системе, тогда как Windows не держит и двух (и не сомневайтесь, я
это проверял). Снимаю шляпу перед разработчиками из ALSA!
class="c3">Видеопроигрыватели:
class="c4">1. Xine 0.9.12 (Со всеми его
плагинами мало кто может с ним тягаться)
class="c4">2. Ogle 0.8.2 (Быстрый DVD-only
плейер с поддержкой DVD-меню)
class="c4">3. Mplayer 0.90 (В основном
консольный плейер с широким набором опций. Mplayer проигрывает
практически любой формат, известный на сегодняшний день, включая
VOB, VIVO, ASF/WMV, QT/MOV, Xanim, AVI, DiVX, VCD, SVCD, ну и,
конечно, DVD. Кроме этого, он имеет свой GUI с наборами скинов.)
class="c3">И Xine и Mplayer уже имеют полную поддержку
многоканального (5.1) объемного звука.
class="c3">Требования для сборки mplayer:
class="c3">libdvdread 0.8 и libcss (не путать
с libdvdcss)
class="c3">или
http://www.dtek.chalmers.se/groups/dvd/downloads.shtml">libdvdread
href="http://www.videolan.org/">libdvdcss 0.0.3 (не libcss и
не libdvdcss 1.0)
class="c3">всё это можно взять на
http://www.dtek.chalmers.se/groups/dvd">www.dtek.chalmers.se/groups/dvd
class="c3">Библиотека libdvdcss используется для расшифровки DVD,
а libdvdread для чтения его содержимого.
Если у вас звуковая карта из серии SoundBlaster Live! 5.1, то я
рекомендую использовать ALSA 0.9.0rc2. Карты от
Audigy возможно тоже будут работать, но поскольку у меня таковых не было,
то я их и не проверял :-(
class="c3">
Не забывайте читать файлы INSTALL и README для всех
упомянутых пакетов
class="c3">Шаг 1
class="c3">libdvdcss
class="c3">./configure
class="c3">соберите и установите командой "make && make
install && ldconfig"
class="c3">Шаг 2
class="c3">libdvdread
class="c3">компилируем и устанавливаем аналогично предыдущей
команде
class="c3">Шаг 3
class="c3">mplayer 0.90
class="c3">./configure --help
class="c3">make && make install
class="c3">Псоле чего он установится в /usr/local/bin как mplayer
class="c3">Шаг 4
class="c3">если, к примеру, /dev/hdc это ваш dvd привод, то
создайте такую ссылку:
ln -s /dev/hdc /dev/dvd
class="c3">(это нужно сделать только один раз)
class="c3">выполните команду
mplayer -dvd 1 -ao oss
class="c2">Программа выдаст нам ключ шифрования для диска, а затем
начнёт показывать зашифрованный фильм!
У mplayer "годзиллион" всяких функций, т.е. слишком много, чтобы
рассматривать все их в этой статье, но так необходимая нам функция
многоканального звука включается следующим образом:
-channels x, где х -
2,4 или 6 динамиков. Но имейте ввиду, что эта опция бессмысленна,
если у вас простая двухканальная звуковя карта! Многоканальные
карты уже сейчас вполне доступны по цене, так что можно позволить
себе разориться на одну из таких!
class="c2">Другие полезные опции:
class="c2">
-title x --; выбрать наименование DVD
class="c2">
-chapter y --; выбрать раздел в наименовании,
указанном выше
class="c2">
-ss hh:mm:ss --; перейти в указанный момент
времени
class="c2">
-vcd x - воспроизвести раздел vcd
class="c2">-channels 4 - воспроизвести на 4 раздельных канала
(фронтальные и тыловые)
class="c2">Кроме этого в mplayer доступно отображение дополнительной
информации, но не обычные DVD-субтитры.
class="c2">Вообще-то mplayer очень быстро стал наиболее скачиваемым
http://freshmeat.net/stats/#popularity">http://freshmeat.net/stats/#popularity,
если вы мне не верите), хотя его и не так легко настроить как Xine.
Особенно, если вы не очень любите компилировать программы.
class="c2">Требования для установки и запуска Xine за 5
минут.
class="c3">Шаг 1
class="c3">скачайте последний релиз xine с
href="http://xine.sourceforge.net/">xine.sourceforge.net
class="c3">Если вы не собираетесь компилировать Xine из
исходников, то вам понадобятся следующие RPM пакеты (x86 в именах
пакетов обозначает их принадлежность к процессорам класса Pentium;
соответственно, i686 для Pentium III и выше, i586 для Pentium и AMD
K6):
class="c3">Существуют пакеты и для других типов процессоров, но этот (x86),
наверное, самый распространённый.
[Имеются ввиду персональные компьютеры. Прим.ред.]
class="c3">Шаг 2
class="c3">Скопируйте все rpm-пакеты в пустую папку. В ней же
авторизуйтесь с правами root, и выполните команду
rpm -Uvh xine*.rpm
Если вы не любите консоль, то вызовите kpackage или gnorpm и
установите пакеты с их помощью.
[Или rpmdrake, или apt-get --
теперь существует варианты пакета APT для работы с rpm-пакетами.
Прим.ред.]
class="c3">Шаг 3
class="c3">Находясь в Х 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".
Как упоминалось ранее, в меню можно выбирать скины. Также в нём
доступны все настройки, включая и многоканальный звук.
(видимо здесь
под "меню" автор имеет ввиду GUI самого Xine, а не DVD-диска -
прим.перев.)
К достоинствам Xine также следует отнести то, что он умеет
воспроизводить довольно много форматов: DVD, VCD, CD, ogg, mp3,
wav, DiVX... и т.д. и т.п.
class="c3">Ссылки
href="http://xine.sourceforge.net/">xine.sourceforge.net
http://www.dtek.chalmers.se/groups/dvd">www.dtek.chalmers.se/groups/dvd
http://www.mplayerhq.hu/homepage">www.mplayerhq.hu/homepage
href="http://www.alsa-project.org/">www.alsa-project.org
class="c3">xinedvdnav plugin (для расшифровки DVD, с поддержкой
http://dvd.sourceforge.net/d">http://dvd.sourceforge.net/