Просмотр DVD фильмов на FreeBSD


Dru Lavigne
перевод Станислава Лапшанского
Впервые опубликован: http://www.computerra.ru.


В сегодняшней статье мы поговорим о проигрывании DVD-дисков. Я продемонстрирую вам четыре плейера, которые так или иначе справляются с этой задачей. Поскольку мои изыскания базируются на информации, почерпнутой из соответствующего раздела руководства администратора (см. http://www.freebsd.org/handbook/video-playback.html), то вам, вероятно, тоже не помешает его прочитать.

С проигрыванием DVD на компьютере тесно связаны два понятия, о которых вы должны иметь представление. Во-первых, это так называемые коды регионов (зон). (Перед дальнейшим чтением я очень рекомендую ознакомиться с отличной статьей Алексея Шишкова "Как сделать DivX из DVD", см. http://www.computerra.ru/offline/2002/463/20678/, особенно с той ее частью, которая посвящена избавлению вашего DVD-привода от функции региональной защиты - прим. переводчика .) Практически каждый купленный вами DVD-диск имеет фиксированный региональный код, описывающий ореол легального распространения данного релиза DVD-диска. Код региона можно обнаружить на тыльной стороне коробки из-под диска, обычно он находится внизу, рядом с другими значками Dolby Digital, названием студии и рейтингом фильма. Так как фильмы в разных регионах мира выпускаются в разное время, региональные коды используются для предотвращения продажи DVD-дисков до даты официального релиза. Обычно это не является проблемой, кроме случая, когда вы купили DVD во время заграничной поездки и, после возвращения, неожиданно обнаруживаете, что у вас дома диск невозможно использовать.

Поскольку большинство портов предназначенных для проигрывания DVD по умолчанию настроены на первый регион, и вам может потребоваться поменять это значение, для этого я собрала список номеров регионов с расшифровкой их географии в этой (чрезвычайно мрачной - прим. переводчика ) таблице:Код региона Географическое расположение
1 Канада, США и их территории
2 Япония, Европа, Южная Африка, Ближний Восток, Египет
3 Юго-восточная Азия, Западная Азия
4 Австралия, Новая Зеландия, Океания, Центральная Америка, Мексика, Южная Америка
5 Россия, Индия, Пакистан, Африка (кроме Египта), Северная Корея, Монголия
6 Китай
7 Резерв
8 Самолеты, корабли


Вторым немаловажным понятием является CSS (Content Scrambling System - Система шифрования содержимого). Многие DVD (обычно те, которые имеют региональный код) зашифрованы для предотвращения незаконного тиражирования дисков пользователями. Это означает, что для нормального просмотра содержимого диска, аппаратный DVD проигрыватель должен иметь соответствующее программное обеспечение для расшифровки DVD. Тут все становится печальным и мрачным. Поскольку разрешение этой проблемы находится в руках судей, а я не являюсь адвокатом, я оставляю исследование этого вопроса на ваше усмотрение. Будете вы смотреть шифрованные DVD на вашем компьютере или нет, решать вам. Поиск на Google фразы "dvd css", дает много пищи для размышлений. Так или иначе шифруются не все DVD. Когда я прошлась по моей коллекции DVD, я обнаружила, что зашифрованы примерно 75% дисков.

Проигрывание DVD на компьютере до сих пор является занятием для экспериментаторов, поэтому ваши достижения на этом поприще могут сильно зависеть от процессора, марки видеокарты и настроек видеорежима на вашем компьютере. Очень вероятно, что ваши результаты будут отличаться от моих, поэтому отнеситесь к этой статье с зерном сомнения и постарайтесь уделить немного времени собственным экспериментам. Я настоятельно рекомендую вам, чтобы и ваша FreeBSD, и ваша коллекция портов были самыми свежими. Так же пользуйтесь самой последней версией XFree86 и не забудьте оптимизировать систему для проигрывания DVD:
переконфигурировать ядро с поддержкой CPU_ENABLE_SSE
в файле /boot/loader.conf включена опция dma
настроены системные переменные в файле /etc/sysctl.conf
на устройство /dev/acd0c назначены права 666

Пошаговые инструкции для реализации такой оптимизации были приведены в статье "Звук во FreeBSD".

Если вы не собираетесь удовлетворяться "умолчальными" параметрами принятыми в DVD плеерах, а заняться их тонкой настройкой, то следующие ссылки будут отличным введением в терминологию DVD и хорошим навигатором в куче устройств ввода-вывода:
the xine website, см. http://xinehq.de/index.php/patents
MPlayer - The Movie Player for Linux, см. http://www.mplayerhq.hu/homepage/index.html

Я очень рекомендую почитать сайт MPlayer'а. Ему стоит посвятить вечер.

Теперь, войдите в систему под суперпользователем и создайте следующие символические ссылки:
ln -s /dev/acd0c /dev/dvd
ln -s /dev/racd0c /dev/rdvd

Одним из первых наблюдений, которые я сделала, начав проигрывать DVD диски на моем компьютере, было то, что большинство из моих дисков зашифрованы при помощи CSS. Мне повезло и самый первый DVD, который я попробовала посмотреть, оказался нешифрованным. А вот следующий DVD был зашифрован, что заставило меня поразмышлять о том, что иногда вещи, кажущиеся простыми, в одночасье становятся очень сложными. Во время демонстрации возможностей каждого проигрывателя, я расскажу об отличиях между результатами проигрывания обоих дисков.

Вот четыре порта, способные проигрывать DVD диски: vlc, xine, mplayer и ogle. Моими критериями выбора лучшего плеера были:
Отсутствие рывков и пропаданий звука или видео во время проигрывания диска
Работоспособность плеера "из коробки", без утомительного чтения массы документации
Симпатичный внешний вид и поддержка скинов.
vlc

Пожалуй хватит теории, давайте перейдем к практике. Начнем с плеера "vlc":
cd /usr/ports/graphics/vlc
make install clean

Исполняемый файл устанавливается в /usr/local/bin/vlc. В настоящий момент "vlc" не умеет пользоваться скинами, однако он имеет вполне пристойный пользовательский интерфейс, который, к тому же очень интуитивен. Просто вставьте в DVD привод DVD диск, нажмите на кнопку "Disk" в окне программы и выберите раздел диска, с которого вы собираетесь начать просмотр.

Если во время просмотра DVD вы обнаружите, что на экране видно только две трети фильма, то значит разрешение вашего экрана слишком велико. Нажмите комбинацию "Ctrl+Alt+Серый минус". При помощи этой нехитрой комбинации вы можете постепенно уменьшать разрешение до тех пор, пока не найдете подходящего для просмотра DVD.

Я обнаружила, что при использовании настроек "из коробки", в плеере "vlc" имеет место пропадание звука, а так же отставание его от видео на одну-две секунды. Шифрованные DVD проигрываются еще хуже, так что смотреть их невозможно. В настроечном окошке Settings -> Preferences имеется огромное количество опций, однако всякий раз, когда я проносила указатель мыши над кнопками выбора опций, я получала сообщение, начинающееся словами: "по умолчанию, выбирается самый лучший модуль". Таким образом мне не удалось изменить предложенные по умолчанию настройки. Как выяснилось из vlc FAQ (см. http://www.videolan.org/doc/faq/en/videolan-faq-en.html), прерывистый звук во время проигрывания дисков является известной проблемой, над устранением которой уже ведутся работы. Для себя я решила на некоторое время отложить "vlc", для того чтобы через несколько месяцев вернуться к нему и посмотреть на изменения, произошедшие за это время.
xine

Следующим я попробовалаа xine:
cd /usr/ports/graphics/xine
make install clean

Сам по себе xine может проигрывать только нешифрованные DVD. Однако к нему существуют штепсели, которые позволяют так же смотреть и шифрованные DVD:
/usr/ports/graphics/xine_d4d_plugin
/usr/ports/graphics/xine_d5d_plugin

И вот еще штепсель, при помощи которого осуществляется поддержка меню в DVD-фильме:
/usr/ports/graphics/xine_dvdnav_plugin

В процессе тестированияа я установил все четыре порта. Xine устанавливается в /usr/X11R6/bin/xine, при этом каждый установленный штепсель отображается в виде кнопки на основном окне xine. Интерфейс xine поддерживает скины, которые можно загрузить с сайта http://xinehq.de/index.php/patents. Если вы нашли интересный скин, то проделайте следующее:
cd ~/.xine
mkdir skins

Затем загрузите скин в каталог ~/.xine/skins. Скины xine серьезно меня напрягли. Автор каждого скина считал своим долгом изменить местонахождение и название кнопок, а так же поменять настройки. Некоторые скины не были интуитивно понятны. Часто я не знала, к чему приведет нажатие той или иной кнопки. Иногда все заканчивалось сообщением "xine engine error", которое невозможно было убрать, кроме как убив процесс xine.

Еще более ужасные ощущения мне пришлось испытать при попытке проиграть DVD-диски. Иногда нажатие на кнопку "DVD", а затем на "Play", запускало проигрывание незашифрованного DVD-диска, а иногда только нажатие кнопки "MLR", а затем "DVD" и "Play". Время от времени бывали ситуации, когда нажав все, что только можно я, в результате, получала только зависшую программу.

С кнопкой "NAV", которая появилась после инсталляции штепселя "dvdnav", мне повезло больше. Этот штепсель добавляет новые функции для получения названия DVD и поддержки мыши в DVD-меню. До его установки мне приходилось непродуктивно тратить время на выяснение того, какая кнопка вернет меня из главного меню в фильм.

Проигрывание нешифрованных DVD при помощи xine выявило проблему с точностью до наоборот присутствующую в vlc: звук был удовлетворительным, а вот видео слегка заикалось и шло не всегда синхронно со звуком.

Для проигрывания зашифрованных DVD, я попробовала воспользоваться кнопками D4D и D5D. Если при нажатии кнопки "DVD" я получала сообщение "xine engine error", то вероятнее всего, это оказывался шифрованный DVD-диск. Использование кнопки "D4D" приводило исключительно к ошибке защиты памяти. При нажатии кнопки "D5D", несколько минут уходило на расшифровку ключей. Получившееся в результате видео было просто великолепным. Я забыла, насколько разрешение компьютерного монитора лучше, по сравнению с телевизионным. Качество звука менялось от чистейшего до заикающегося. С досады я едва не выкинула компьютер из окна! Я думаю, что перед тем, как еще раз попробовать xine, надо слегка подождать, пока доведут до ума его штепсели.
MPlayer

Затем я протестировала MPlayer. Этот порт идет с большим количеством опций, большинство из которых уже включено или автоматически будет включено в зависимости от возможностей вашего компьютера. Несмотря на это, включение некоторых вещей вы должны указать явно:
WITH_GUI #собирать графический интерфейс
WITH_LIVE #включает поддержку потокового
# контента с сайта live.com
WITH_TDFXFB #включает поддержку чипов Voodoo 3/Banshee


У меня нет видеокарты Voodoo и я не интересуюсь live.com. Но вот поддержку графического интерфейса я включу. Вот так:
cd /usr/ports/graphics/mplayer
make WITH_GUI=yes install clean

Я могу использовать и другой метод указания опций:
make -DWITH_GUI install clean

После окончания установки я покинула аккаунт суперпользователя. После этого, зайдя в тот же каталог, уже под своим обычным пользователем, я выполнила команду:
make install_user

Так как я собрала графический интерфейс, для запуска MPlayer я воспользуюсь файлом /usr/local/bin/gmplayer. Если вы решили обойтись без графики, запускайте /usr/local/bin/mplayer.

Графический интерфейс MPlayer'а поддерживает скины, поэтому я собрала и их:
cd /usr/ports/graphics/mplayer-skins
make install clean


Меня спросили, какие скины я хочу установить. Я выбрала все. При первом запуске MPlayer, я был поражена его интерфейсом. Именно так должен выглядеть DVD проигрыватель. Остальные плееры не идут ни в какое сравненье!

Щелчок правой кнопкой мыши в любом месте плеера давал мне возможность сменить скин, войти в окно настройки программы или открыть DVD диск. Я подумала: "Великолепно, я нашла плеер с отличным и интуитивно понятным интерфейсом". К сожалению, мой энтузиазм был недолог.

Я начала с нешифрованного DVD, который начал проигрываться с четким видеоизображением и чистым звуком. По прошествии около 20 секунд, на экран было выдано очень длинное сообщение об ошибке, смысл которого сводился к тому, что у меня слишком медленная машина. Подавив раздражение от столь вопиюще глупого предположения, я послушно остановила DVD, записала предложенные в сообщении об ошибке действия и, в соответствии с ними, исправила настройки программы. Внесенные изменения только ухудшили ситуацию: теперь звук и изображение стали заикаться, при этом появлялось тоже самое сообщение об ошибке.

Не испугавшись, я начала методично менять настройки, по одной опции за раз. Максимум, чего мне удалось добиться от настроек "no sound", "chopper sound" и "perfect sound", - двух минут нормальной работы. После исчерпания всех возможных вариантов одиночных настроек, я стала их комбинировать. Тут я решила посмотреть документацию. Недостатка в ней не было. Есть подробная страница руководства man mplayer, и еще более длинная /usr/local/share/doc/mplayer/documentation.html. Однако в определенный момент моих исследований мне вдруг стало ясно, что я делаю слишком много работы для обычного проигрывания DVD-диска.

В отчаянном стремлении достигнуть успеха, я попробовала запустить MPlayer без графического интерфейса, надеясь на то, что он просто конфликтует с моей системой:
mplayer -dvd l


Безрезультатно. Единственная разница была в том, что мерзкое сообщение об ошибке тихонько выдавалось в окне xterm, а не всплывало поперек фильма. Так что мне пришлось с грустью проститься с замечательным графическим интерфейсом и поместить MPlayer в мой список вещей, к которым я собираюсь вернуться через некоторое время.
ogle

Наконец, я взялась за ogle. По умолчанию ogle использует интерфейс командной строки, однако существует разновидность порта, который компилирует простенький графический интерфейс.
cd /usr/ports/graphics/ogle-gui
make install clean

Программа помещается в /usr/local/bin/ogle. Интерфейс не имеет ничего такого, о чем стоило бы написать, он опрятен и интуитивен. Для проигрывания DVD надо пройти в меню File -> Open disk. Ogle автоматически устанавливает поддержку меню, так что вы можете выбрать необходимый пункт после начала фильма.

Я начала с проигрывания нешифрованного диска, и, к моему удивлению, великолепное видео точно совпадало с кристально чистым звуком. Ни пятен, ни заиканий. С трудом веря в свое счастье, я вставила зашифрованный DVD. После нескольких минут, требующихся на расшифровку, я опять получила прекрасное видео и идеальный звук. Это произошло, когда я уже почти совсем разочаровалась в идее просмотра DVD на компьютере. Ogle удовлетворяет двум первым моим критериям: проигрывание без заиканий "из коробки", без утомительного чтения документации и кучи настроек, лишь при нажатии кнопки "Play". На самом деле я не знаю, ошибка это или намеренно введенная функция, но при нажатии в меню ogle Edit -> Properties, ничего не происходит. Недостаток один - программа не поддерживает скины.

Ну вот и все результаты моих исследований проигрывания DVD на FreeBSD. Я помню, что в прошлой статье обещала описать RealPlayer и некоторые другие программы, но описание DVD заняло намного больше места, чем я предполагала и поэтому описание RealPlayer'а и компании переносятся в следующую статью.

http://www.onlamp.com/pub/a/bsd/2002/10/03/FreeBSD_Basics.html.

Обновлено: 12.03.2015