Mercurial > mplayer.hg
changeset 9758:c90dda76143b
XML'ization & partial rewrite of main/DOCS/ru/cd-dvd.html
author | lumag |
---|---|
date | Sun, 30 Mar 2003 18:32:54 +0000 |
parents | 38db87efcfc8 |
children | 56be5a7b02a2 |
files | DOCS/xml/ru/cd-dvd.xml |
diffstat | 1 files changed, 371 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/xml/ru/cd-dvd.xml Sun Mar 30 18:32:54 2003 +0000 @@ -0,0 +1,371 @@ +<?xml version="1.0" encoding="koi8-r"?> +<chapter id="cd-dvd"> +<title>Использование CD/DVD</title> + +<sect1 id="drives"> +<title>приводы CD/DVD</title> +<para> +Из Linux'овской документации: +</para> + +<para> +Современные приводы CD-ROM могут работать на очень высоких скоростях, некоторые +из них способны регулировать скорость чтения. Несколько аргументов в пользу использования этой возможности: +</para> + +<itemizedlist> +<listitem><para> +При высоких оборотах возрастает вероятность ошибки при чтении, особенно с +неправильно записанных дисков. Уменьшение скорости может предотвратить потерю +данных в некоторых случаях. +</para></listitem> + +<listitem><para> +Уровень шума, возрастающий с оборотами, может оказаться весьма существенным +</para></listitem> +</itemizedlist> + +<para> +Вы можете уменьшить скорость врашения IDE CD-ROM приводов программами +<command>hdparm</command> или <command>setcd</command>. Это работает так: +<screen>hdparm -E <replaceable>[скорость]</replaceable> <replaceable>[привод] + </replaceable></screen> +<screen>setcd -x <replaceable>[скорость]</replaceable> <replaceable>[привод] +</replaceable></screen> +</para> + +<para> +Вы также можете попробовать +<screen>echo current_speed:4 > /proc/ide/[cdrom device]/settings</screen> +но для этого требуются привилегии администратора. Следующая команда +тоже может быть полезна: +<screen>echo file_readahead:2000000 > /proc/ide/[cdrom device]/settings</screen> +</para> + +<para> +Таким образом предварительно cчитывается 2 мегабайта (полезно при +дисках с царапинами). Если поставить слишком высокое значение, то постоянный +запуск и остановка вращения диска драматически снизят эффективность. +Рекомендуется также подстроить привод, используя <command>hdparm</command>: +<screen>hdparm -d1 -a8 -u1 <replaceable>привод</replaceable></screen> +</para> + +<para> +Таким образом включается прямой доступ к памяти[DMA], предварительное +чтение и размаскировка IRQ (прочти man-страницу <command>hdparm</command>, +для более подробного описания). +</para> + +<para> +Обратитесь к "<filename>/proc/ide/<replaceable>[cdrom device]</replaceable>/settings</filename>" +для подстройки Вышего CD-ROM привода. +</para> + +<para> +У SCSI приводов нет общего способа выставить эти параметры (Вы знаете какой-нибудь? +Расскажите нам!) Существует программа для +<ulink url="http://das.ist.org/~georg/">Plextor SCSI приводов</ulink>. +</para> + +<para>FreeBSD:</para> +<para>Скорость: <command>cdcontrol [-f <replaceable>device</replaceable>] speed <replaceable>speed</replaceable></command></para> +<para>DMA: <command>sysctl hw.ata.atapi_dma=1</command></para> +</sect1> + +<sect1 id="dvd"> +<title>Воспроизведение DVD</title> +<para> +Полный список возможных опций можно прочитать в man. +Синтаксис для стандартных Цифровых Многоцелевых Дисков[Digital Versatile Disc] +(DVD) таков: +<screen>mplayer -dvd <replaceable>ролик</replaceable> [-dvd-device <replaceable>привод</replaceable>]</screen> +</para> + +<para> +Пример: +<screen>mplayer -dvd 1 -dvd-device /dev/hdc</screen> +</para> + +<para> +Устройство DVD по-умолчанию - это <filename>/dev/dvd</filename>. Если Ваши +настройки отличаются, создайте символическую ссылку или укажите правильное +устройство в командной строке, используя опцию <option>-dvd-device</option>. +</para> + +<formalpara> +<title>Новая поддержка DVD (mpdvdkit2)</title> +<para> +<application>MPlayer</application> использует библиотеки <systemitem>libdvdread +</systemitem> и <systemitem>libdvdcss</systemitem> для DVD расшифровки и +воспроизведения. Эти две библиотеки содержатся в подкаталоге +<filename class="directory">libmpdvdkit2/</filename> дерева исходного кода +MPlayer'а, так что отдельно устанавливать их не нужно. Мы выбрали такое решение +потому, что нам пришлось исправить ошибку в <systemitem>libdvdread</systemitem> +и добавить патч к <systemitem>libdvdcss</systemitem> поддержку +<emphasis role="bold">сохранения взломанных ключей CSS</emphasis>. Это +предотвращает повторный взлом ключа при каждом просмотре, существенно увеличивая +скорость. +</para> +</formalpara> + +<para> +<application>MPlayer</application> способен использовать системные библиотеки +<systemitem>libdvdread</systemitem> и <systemitem>libdvdcss</systemitem>, но это +<emphasis role="bold">не рекомендуется</emphasis>, так как может приводить к +ошибкам, несовместимости и потере скорости. +</para> + +<formalpara> +<title>Поддержка DVD навигации (dvdnav)</title> +<para> +Поддержка DVD навигации, используя <systemitem>dvdnav</systemitem> была начата, +но никогда не была доведена до ума, и на данном этапе заброшена. Кто знает, +она может даже скомпилироваться. +</para> +</formalpara> + +<formalpara> +<title>Старая поддержка DVD - НЕ ОБЯЗАТЕЛЬНО</title> +<para> +Это может оказаться полезным, например, при просмотре зашифрованных VOB-файлов +с <emphasis role="bold">жесткого диска</emphasis>. Cкомпилируйте и установите +<emphasis role="bold">libcss</emphasis> (версию 0.0.1, ни в коем случае не +более позднюю). Если <emphasis role="bold">MPlayer</emphasis> ее не +обнаружит, добавьте <option>-csslib /path/to/libcss.so</option>. Для +использования необходимы привилегии администратора или suid root на исполняемом +файле MPlayer'а или позвольте MPlayer'у запустить suid root обработчик +fibmap_mplayer. +</para> +</formalpara> + +<formalpara> +<title>Структура DVD</title> +<para> +Диски DVD используют сектора размером в 2048 байтов с ECC/CRC. На них обычно +единственная файловая система UDF на одной дорожке, которая содержит +различные файлы (коротенькие .IFO и .BUK и длинные (порядка гигабайта) +.VOB). Это настоящие файлы, которые можно просматривать/переписывать с +замонтированного не зашифрованного DVD. +</para> +</formalpara> + +<para> +Файлы .IFO содержат информацию для навигации (раздел/ролик/угол/язык и пр.), +необходимую для интерпретации содержания .VOB (кино). Файлы .BUK — их +дубли. Эти файлы содержат адреса в <emphasis role="bold">секторах</emphasis>, +так что для исполнения навигации и расшифровки DVD, нужен доступ к файлам на +уровне секторов. +</para> + +<para> +Из-за этого старая поддержка DVD c <systemitem>libcss</systemitem> нуждается в +замонтированной файловой системе и посекторному доступу к устройству. К +сожалению, для этого нужны привилегии администратора (под Linux). Проблема +решается тремя способами: + +<itemizedlist> +<listitem><para> +Привилегированный доступ или исполняемый файл <application>MPlayer +</application>'а с suid root. +</para></listitem> + +<listitem><para> +Позвольте <application>MPlayer</application>'у выполнять the suid-root +обработчик fibmap_mplayer для доступа к DVD (используется в старом методе +воспроизведения DVD через <systemitem>libcss</systemitem>). +</para></listitem> + +<listitem><para> +Не использовать драйвер файловой системы из ядра и все делать в пространстве +пользователя. <systemitem>libdvdread</systemitem> 0.9.x и <systemitem> +libmpdvdkit</systemitem> так и делают (новая поддержка DVD). Драйвер UDF +файловой системы не нужен, поскольку в них встроенные драйвера файловой системы +UDF. Также DVD не обязан быть замонтированным, поскольку используется +только прямой посекторный доступ. +</para></listitem> +</itemizedlist> +</para> + +<para> +Иногда пользователи не могут читать <filename>/dev/dvd</filename> +, поэтому авторы <systemitem>libdvdread</systemitem> написали эмуляционный +уровень, который превращает секторные адреса в названия файла и смещение, +для эмуляции прямого доступа на замонтированной файловой системе или на жестком +диске. +</para> + +<para> +<systemitem>libdvdread</systemitem> даже принимает точку монтирования вместо +имени устройства для прямого доступа, и получает его название из <filename> +/proc/mounts</filename>. Этот метод придуман для Solaris-ов, где данные названия +присваиваются динамически. +</para> + +<para> +Устройство DVD по-умолчанию — <filename>/dev/dvd</filename>. Если Ваши +установки отличаются, создайте символическую ссылку или укажите правильное +название в командной строке после опции <filename>-dvd-device</filename>. +</para> + +<formalpara> +<title>DVD аутентификация</title> +<para> +Аутентификация и дешифровка в новом методе поддержки DVD происходит, используя +пропатченную <systemitem>libdvdcss</systemitem> (см. выше). Метод может быть +указан в переменной среды <envar>DVDCSS_METHOD</envar>, которая может быть +установлена в key, disk or title. +</para> +</formalpara> + +<para> +Если ничего не указано, она пробует следующие методы (по-умолчанию: key, +title request): +</para> + +<orderedlist> +<listitem><para> +<emphasis role="bold">bus key</emphasis>: Этот ключ устанавливается во время +аутентификации (длинная смесь ioctl'ов и различных обменов ключами, +криптографические процедуры) и используется для зашифровки ключей диска и ролика +при передаче по незащищенной шине (во избежания подслушивания). Он необходим для +получения и предварительной расшифровки ключа диска. +</para></listitem> + +<listitem><para> +<emphasis role="bold">cached key</emphasis>: <application>MPlayer</application> +ищет уже взломанный ключ ролика, который сохраняется в каталоге +<filename class="directory">~/.mplayer/DVDKeys</filename> (быстро ;). +</para></listitem> + +<listitem><para> +<emphasis role="bold">key</emphasis>: Если кэшированного ключа нет, +<application>MPlayer</application> пытается расшифровать ключ диска с помощью +включенных ключей плейеров. +</para></listitem> + +<listitem><para> +<emphasis role="bold">disk</emphasis>: Если метод key проваливается +(например, при отсутствии ключей плейеров) <application>MPlayer</application> +взломает ключ грубой силой. Этот метод интенсивно использует процессор и +нуждается в 64 мегабайтах памяти (хэш-таблица из 16 миллионов 32-разрядных +записей). Работает наверняка (но медленно). +</para></listitem> + +<listitem><para> +<emphasis role="bold">title request</emphasis>: Используя ключ диска +<application>MPlayer</application> запрашивает зашифрованные ключи роликов, +которые находятся в <emphasis>скрытых секторах</emphasis>, используя +<systemitem>ioctl()</systemitem>. Региональная защита RPC-2 приводов +осуществляется именно на этом этапе; может не сработать на подобных приводах. +Если удается, ключи роликов будут расшифрованы, используя ключа диска и шины. +</para></listitem> + +<listitem><para> +<emphasis role="bold">title</emphasis>:Данный метод используется если title +request не срабатывает. Он не опирается на обмен ключами с приводом. +Используется криптографическая атака, чтобы угадать ключ непосредственно +(находится повторяющаяся последовательность в расшифрованном содержимом VOB'а +и предполагается, что текст, соответствующий первому зашифрованному байту - это +продолжение этой последовательности). Метод также известен под названиями " +атака с известным открытым текстом" или "DeCSSPlus". В редких +случаях этот метод проваливается, по причине недостаточности зашифрованного +содержания для статистической атаки или из-за изменения ключа в середине +ролика. Это единственный метод расшифровать содержимое DVD на жестком диске +или на диске из неподходящего региона на проигрывателе RPC-2. (медленный метод). +</para></listitem> +</orderedlist> + +<para> +С дисководами RPC-1, региональная защита осуществляется программно. +Дисководы RPC-2 защищены аппаратными средствами, разрешающими менять регион +всего 5 раз. Рекомендуется обновить прошивку[firmware] до RPC-1 если у тебя +RPC-2 привод. Обновления прошивок могут быть найдены на +<ulink url="http://www.firmware-flash.com/">странице прошивок</ulink>. Если +для Вашего дисковода нет обновления, используйте для изменения региона привода +<ulink url="http://www.linuxtv.org/download/dvd/dvd_disc_20000215.tar.gz"> +программу regionset</ulink> (для Linux). <emphasis role="bold">Внимание: +</emphasis> Изменить регион можно всего 5 раз. +</para> +</sect1> + +<sect1 id="vcd"> +<title>воспроизведение VCD</title> +<para> +Полный список возможных опций можно прочитать в man. Синтаксис для обычного +Видео-CD (VCD): +<screen>mplayer -vcd <replaceable>дорожка</replaceable> [-cdrom-device <replaceable>устройство</replaceable>]</screen> +Пример: +<screen>mplayer -vcd 2 -cdrom-device /dev/hdc</screen> +Устройство VCD по умолчанию — <filename>/dev/cdrom</filename>. Если Ваши +настройки отличаются, создайте символическую ссылку добавьте правильное название +в командной строке после опции <option>-cdrom-device</option>. +</para> + +<note><para> +По крайней ммере Plextor'ы и некоторые Toshiba SCSI CD-ROM прибоды показывают +ужасную производительность при чтении VCD'ов. Это объясняется неполным +осуществлением <systemitem>ioctl</systemitem> CDROMREADRAW на этих приводах. +Если Вы имеете некоторые познания в сфере программирования SCSI, пожалуйста +<ulink url="../../tech/patches.txt">помогите нам</ulink> в написании поддержки +SCSI generic для VCD. +</para></note> + +<para> +В настоящий момент Вы можете извлечь данные с VCD'ов, используя +<ulink url="http://140.132.1.204/OS/Linux/packages/X/viewers/readvcd/"> +readvcd</ulink>, и воспроизвести получившийся файл <application>MPlayer +</application>'ом. +</para> + +<formalpara> +<title>структура VCD</title> +<para> +Диски VCD состоят из одной или нескольких дорожек: +</para> +</formalpara> + +<itemizedlist> +<listitem><para> +Первая дорожка содержит несколько мегабайт секторами по 2048 байтов, +с файловой системой iso9660, обычно содержащей проигрыватель VCD для +Windows или прочую информацию, вроде картинок или текста. +</para></listitem> + +<listitem><para> +Вторая и остальные дорожки содержат MPEG-поток секторами по 2324 байта, по +одному пакету MPEG PS на сектор вместо файловой системы. Эти дорожки <emphasis +role="bold">не монтируются</emphasis> (Вы когда-нибудь монтировали аудио диск +для того, чтобы его воспроизвести?) Так как большинство фильмов именно на этой +дорожке, попробуй сначала <option>-vcd 2</option>. +</para></listitem> + +<listitem><para> +Существуют VCD диски без первой дорожки (единственная дорожка без файловой +системы). Они просматриваются, но не монтируются. +</para></listitem> +</itemizedlist> + +<formalpara> +<title>Про файлы .DAT</title> +<para> +Файл примерно в 600 мегабайт на первой дорожке не настоящий! Это так +называемый ISO-переход, созданный, чтобы позволить Windows обрабатывать эти +дорожки (Windows вообще запрещает приложениям использовать прямой доступ +к устройствам). Под Linux Вы не можете копировать эти файлы (они выглядаят, как +мусор). Под Windows это возможно, поскольку из iso9660 эмулирует прямой доступ +к дорожкам через этот файл. Чтобы проигрывать .DAT файл Вам нужен драйвер, +который может быть найден в Linux версии PowerDVD. Это модифицированный драйвер +iso9660 файловой системы (<filename>vcdfs/isofs-2.4.X.o</filename>), который +способен эмулировать прямой доступ к дорожкам через этот файл. Если Вы +замонтируете диск, используя их драйвер, Вы можете копировать и даже проигрывать +.DAT файлы <application>MPlayer</application>'ом. Но это не будет работать со +стандартным драйвером iso9660 из ядра Linux! Используйте вместо этого опцию +<option>-vcd</option>. Альтернативами для копирования VCD может послужить новый +драйвер <ulink url="http://www.elis.rug.ac.be/~ronsse/cdfs/">cdfs</ulink> (не +входит в официальное ядро) который показывает дорожки[сессии] на диске как файлы +образов и <ulink url="http://cdrdao.sf.net/">cdrdao</ulink>, приложение для +побитного чтения/копирования CD. +</para> +</formalpara> +</sect1> +</chapter>