Информационные технологииStfw.Ru 🔍

Просмотр DVD в Linux

🕛 20.03.2007, 15:31
Автор: (C) Tunji Durodola
Перевод: (C) Юрий Прушинский

Здравствуйте, уважаемые читатели.
Меня зовут Tunji Durodola (Таньжи Дуродола) и пишу я из Нигерии (Западная Африка), которая известна тем, что здесь находится самая большая на планете коллекция чернокожих людей (видимо, это юмор африканских линуксоидов - прим.перев.).

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

Преамбула.

В основе механизма просмотра 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. Дело до сих пор находится в Суде Страны Свободы (США). Более подробно об этом вы можете прочитать здесь.
[... компьютерные новости от Computerr'ы 8.1.2003: [08:54] Автор программы DeCSS для взлома защиты DVD оправдан норвежским судом. Обвинения в умышленном взломе системы защиты DVD с "пиратскими" целями признаны необоснованными. http://www.compulenta.ru/2003/1/8/36669.
... компьютерные новости от Computerr'ы 3.3.2003 [16:57] Дело создателя программы для взлома DVD возвращается в суд. Апелляционный суд принял решение направить дело DeCSS на повторное рассмотрение. Повторные слушания начнутся осенью нынешнего года. http://www.compulenta.ru/2003/3/3/37987.
Прим.ред.]

Сейчас под Linux уже существуют и другие программы-дешифраторы, не использующие код DeCSS, но выполняющие аналогичную функцию и не дающие повода для возбуждения судебных исков (правда не совсем понятно, почему их игнорирует MPAA - прим. перев.). Вот на этих программах мы и остановим своё внимание.

Приступаем к делу!

Чтобы немного вас разогреть, я расскажу что у меня за система.

Железо

Процессор: 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 (здесь я преуспел!)

Колонки.
Фронтальные: колонки 80W Kenwood, подключенные к усилителю Technics 80W Power Amp, который, в свою очередь, напрямую подключен к звуковой карте.

Тыловые: средние недорогие 20W RMS компьютерные динамики

Центральные: те же что и предыдущие

Сабвуфер: неизвестный 40W Sub в деревянном корпусе

Монитор: 18" NEC TFT Flat Panel

Программное обеспечение

OС: SuSE Linux 8.0 Professional

Звук: ALSA 0.9.0rc2, с драйвером emu10k1 SoundBlaster. Это единственный звуковой драйвер под Линукс, способный использовать функции Surround для карты SB Live 5.1. Даже Windows-драйверы не имеют и половины функций этого драйвера. Линукс-драйвер поддерживает до восьми таких карт в одной системе, тогда как Windows не держит и двух (и не сомневайтесь, я это проверял). Снимаю шляпу перед разработчиками из ALSA!

Видеопроигрыватели:

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 уже имеют полную поддержку многоканального (5.1) объемного звука.

Требования для сборки 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. Карты от Audigy возможно тоже будут работать, но поскольку у меня таковых не было, то я их и не проверял :-(

Не забывайте читать файлы 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 очень быстро стал наиболее скачиваемым плейером (см. http://freshmeat.net/stats/#popularity, если вы мне не верите), хотя его и не так легко настроить как Xine. Особенно, если вы не очень любите компилировать программы.

Требования для установки и запуска Xine за 5 минут.

Шаг 1

скачайте последний релиз xine с xine.sourceforge.net

Если вы не собираетесь компилировать Xine из исходников, то вам понадобятся следующие RPM пакеты (x86 в именах пакетов обозначает их принадлежность к процессорам класса Pentium; соответственно, i686 для Pentium III и выше, i586 для Pentium и AMD K6):
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

Существуют пакеты и для других типов процессоров, но этот (x86), наверное, самый распространённый. [Имеются ввиду персональные компьютеры. Прим.ред.]

Шаг 2

Скопируйте все rpm-пакеты в пустую папку. В ней же авторизуйтесь с правами root, и выполните команду
rpm -Uvh xine*.rpm
Если вы не любите консоль, то вызовите kpackage или gnorpm и установите пакеты с их помощью. [Или rpmdrake, или apt-get - теперь существует варианты пакета APT для работы с rpm-пакетами. Прим.ред.]

Шаг 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".

Как упоминалось ранее, в меню можно выбирать скины. Также в нём доступны все настройки, включая и многоканальный звук. (видимо здесь под "меню" автор имеет ввиду GUI самого Xine, а не DVD-диска - прим.перев.)

К достоинствам 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

Таньжи работает консультантом в фирме, расположенной в Lagos, и специализирующейся на разработке и предоставления решений под Linux.

Copyright (c) 2002, Tunji Durodola .

Unix   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉