Из Linux'овской документации:
Некоторые CD-ROM'ы способны регулировать скорость чтения. Несколько аргументов в пользу использования этой возможности:
Рекомендуется использования программ 'hdparm' или 'setcd'.
hdparm -E [скорость] [дисковод]
setcd -x [скорость] [дисковод]
Альтернативный метод:
echo current_speed:4 >/proc/ide/[дисковод]/settings
но для этого требуются привилегии администратора. Следующая команда тоже может быть полезна:
echo file_readahead:2000000 >/proc/ide/[дисковод]/settings
Таким образом предварительно cчитывается 2 мегабайта (полезно при дисках с царапинами). Если поставить слишком высокое значение, то постоянный запуск и остановка вращения диска драматически снизят эффективность. Предлагается также использовать программу 'hdparm':
hdparm -d1 -a8 -u1 [дисковод]
Таким образом включается непосредственный доступ к памяти[DMA], предварительное чтение и размаскировка IRQ (если это непонятно, прочти man-страницу 'hdparm')
Можешь поэкспериментировать файлом /proc/ide/[дисковод]/settings
для прочих настроек.
FreeBSD:
Скорость: cdcontrol [-f дисковод] speed [скорость]
DMA: sysctl hw.ata.atapi_dma=1
Полный список возможных опций можно прочитать в man.
MPlayer использует библиотеки libdvdread
и
libdvdcss
для расшифровки и просмотра DVD. Эти две программы
находятся в субдиректории libmpdvdkit/
, так что отдельно
устанавливать их не нужно (и бесполезно). Мы выбрали такое решение потому,
что нам пришлось исправить ошибку в libdvdread
и добавить патч
к libdvdcss
для поддержки сохранения взломанных ключей
CSS, что в свою очередь предотвращает повторного взлома ключа при каждом
просмотре, существенно увеличивая скорость.
MPlayer способен использовать libdvdread
и
libdvdcss
установленные отдельно, но такое решение не
рекомендуется, так как может приводить к ошибкам, несовместимости и
потере скорости.
Работы по поддержке libdvdnav
проводились, но эта часть кода
никогда не была доведена до ума, и на данном этапе заброшена, не работает.
Старая поддержка DVD - ОПЦИОНАЛЬНО
Это может оказаться полезным, например, при просмотре зашифрованных
VOB-файлов с жесткого диска. Cкомпилируй и установи libcss
(версию 0.0.1, не в коем случае не более позднюю). Если MPlayer ее не
обнаружит, добавь -csslib /path/to/libcss.so
. Для использования
необходимы привилегии администратора или suid root на выполняемом файле.
Диски DVD используют сектора размером в 2048 байтов с ECC/CRC. На них обычно единственная файловая система UDF на одной дорожке, которая содержит различные файлы (коротенькие .IFO и .BUK и длинные (порядка гигабайта) .VOB). Это настоящие файлы, которые можно просматривать/переписывать сo cмонтированного не зашифрованного DVD.
Файлы .IFO содержат информацию для навигации (раздел/ролик/угол/язык и пр.), необходимую для интерпретации содержания .VOB (кино). Файлы .BUK — их дубли. Эти файлы содержат адреса в секторах, так что для исполнения навигации и расшифровки DVD, нужен доступ к файлам на уровне секторов.
Из-за этого старая поддержка DVD нуждается в cмонтированной файловой системе и посекторному доступу к устройству. К сожалению, для этого нужны привилегии администратора (под Linux). Проблема решается двумя способами:
Иногда пользователям закрыт доступ к /dev/dvd, так что авторы libdvdread исполнили некий эмуляционный слой, который конвертирует секторные адреса в названия файла и офсет, таким образом эмулируя непосредственный доступ на монтированной файловой системе или на жестком диске.
libdvdread также принимает точку монтирования вместо устройства, и получает
его название из /proc/mounts
. Этот метод придуман для
Solaris-ов, где данные названия присваиваются динамически.
Устройство DVD по умолчанию — /dev/dvd
. Если у тебя это не
так, то сделай символический линк или добавь правильное название в командной
строке после ключа -dvd-device
.
Это, как и взлом ключей зашифрованных DVD происходит при помощи
отпатченого libdvdcss. Выбор метода осуществляется через переменную
окружения DVDCSS_METHOD
. Возможные значения: key
,
disk
, или title
.
Если ничего не предписано, делаются следующие попытки (по умолчанию: key, title request):
~/.mplayer/DVDKeys
(быстро ;-)ioctl()
. Региональная защита проигрывателей RPC-2
осуществляется именно на этом этапе; может не сработать на подобных
проигрывателях. При удачи, ключи роликов расшифровываются при помощи
ключа диска и ключа шины.С дисководами RPC-1, региональная защита осуществляется программно. Дисководы RPC-2 защищены аппаратными средствами, разрешающими менять регион всего 5 раз. Рекомендуется перегрузить RPC-1 в firmware если у тебя дисковод RPC-2 с этого сайта. Если для твоего дисковода нет апгрейда, используй для изменения региона дисковода regionset (под Linux). Осторожно: Изменить регион можно всего 5 раз.
Полный список возможных опций можно прочитать в man. Синтаксис для обычного Видео-CD (VCD):
mplayer -vcd <дорожка> [-cdrom-device <устройство>]
Пример: mplayer -vcd 2 -cdrom-device /dev/hdc
Устройство VCD по умолчанию — /dev/cdrom
. Если у тебя это не
так, то сделай символический линк или добавь правильное название в командной
строке после ключа -cdrom-device
.
Замечание: Некоторые дисководы SCSI (по крайней мере Plextor и некоторые изделия Toshiba) работают ужасно плохо при чтении VCD. Это объясняется неполным исполнением ioctl CDROMREADRAW для этих дисководах. Если ты имеешь некоторые познания в сфере программирования SCSI, пожалуйста помоги нам в исполнении общей поддержки SCSI для VCD.
Диски VCD состоят из одной или нескольких дорожек:
-vcd 2
.Про файлы .DAT:
Файл в примерно 600 мегабайтов на первой дорожке не настоящий. Это так называемый ISO-переход, для доступа к другим дорожкам, не поддерживаемый драйвером файловой системы iso9660 в оригинальном ядре Linux. Драйвер для такого доступа входит в PowerDVD для Linux. Альтернативами для копирования VCD может послужить новый драйвер cdfs (не входит в официальное ядро) который показывает дорожки на диске как файлы образов или cdrao, приложения для побитного чтения/копирования CD.