Видео в Linux

Снова возвращаемся к теме того, чем же смотреть видео в нашей любимой операционной системе. Здесь я хочу рассказать про несколько стандартных видеоплееров и о выборе профессионалов — MPlayer'e.
Итак, что же мы имеем для просмотра видеоматериалов? Ну, во-первых, есть штатный для KDE aKtion — видеоплеер широкого назначения. Считывает форматы AVI, MPEG, Quick Time, а также FLI/FLC анимации. Позволяет масштабирование (оригинальный размер, удвоенный, максимальный, а также полноэкранное воспроизведение — любой из них может быть установлен по умолчанию). Имеет регулятор громкости. Есть возможность захвата кадров (в формате BMP и еще нескольких). Довольно много всяких настроек. Все эти действия доступны по щелчку правой клавишей мыши. А на панели инструментов — только открытие файла, воспроизведение/пауза, стоп, вперед и назад, то и другое — только на один кадр, переместиться в произвольное место ролика нельзя. Другой недостаток — очень сильная пикселизация, наступающая после паузы и особенно перемотки вперед и назад. Но в целом программа не уступает ActiveX-плееру из Windows.
Однако этой программы не хватает. Она не умеет воспроизводить VideoCD. Оказалось, aKtion не понимает, что dat-файл не что иное, как тот же mpeg. Однако на сей предмет из Сети (например, с http://linux.freeware.ru) можно скачать пару программ — mtv и Xtheater, специально предназначенных для воспроизведения VideoCD.
Текстовая mtvp имеет кучу всяких параметров, но практически работает до безобразия просто: в командной строке вводится (при вставленном, разумеется, VideoCD, но монтировать его не обязательно)
mtvp vcd:#
где # — номер трэка (=порядковому номеру dat-файла на диске).
Есть еще полезная опция -df, которая запускает фильм в полноэкранном режиме (в комментарии добавлено — "если возможно"). Качество видео — вполне приличное. И звуковое сопровождение — нормальное. Обобщенный формат запуска программы:
mtvp {option} [URL]
поскольку, кроме видеодисков, она может воспроизводить mpeg-файлы с локального диска и из Сети — с http- или ftp-серверов. А полный список опций можно, как обычно, получить, введя в терминале
mtvp -h
Разумеется, программа не свободна от недостатков. Самый бросающийся в глаза — полное отсутствие средств управления (стоп, пауза, перемотка и тому подобное): если вы запустили видеодиск, вам придется смотреть его с начала до конца (или закрывать окно просмотра).
Но в целом программа вполне пригодна для использования. И не относится к ресурсопожирающим: даже при максимизации окна она не тормозит выполнение других приложений (на Celeron — Pentium-II — Pentium-III).
Графический вариант (mtv) требует платной регистрации. В противном случае звуковое сопровождение ограничивается 30 секундами. Само по себе видео, впрочем, крутиться продолжает. Так что если нет необходимости в звуке, этой программой можно пользоваться, поскольку она имеет средства управления — остановка, пауза, перемотка вперед и назад, в том числе — с помощью ползунка — зуммирование, регуляция звука и баланса (разумеется, не работающие в незарегистрированной версии).
Второе средство для просмотра VideoCD — Xtheater. В соответствии с названием, работает в графическом режиме. Визуально представляет собой панель с минимальными средствами управления: воспроизведение, пауза, остановка, перемотка вперед, открытие файла. Имеется регулятор громкости (внизу) и полоса прокрутки (вверху). Никакой из других форматов видео- и аудио-файлов, кроме MPEG-1, программой посмотреть не удалось. Хотя в описании сказано, что программа эта предназначена для воспроизведения различных потоковых форматов.
Ну, а теперь представляю вам самую надежную и классную программу для просмотра видео. Встречайте, перед вами MPlayer.
MPlayer (www.mplayerhq.hu) выгодно отличается от всех программ для просмотра видео своей стабильностью и безотказной работой. Взять его можно здесь: mplayerhq.hu/MPlayer/cvs/MPlayer-current.tar.bz2. Дистрибутив распространяется ТОЛЬКО в исходнике, то бишь его надо откомпилировать. Процесс максимально автоматизирован, нужно только запустить скрипт конфигурации и потом сделать make, make install.
Для успешной компиляции вам нужны: binutils, gcc, make — и желательна мультимедийная библиотека SDL (www.libsdl.org). Скрипт конфигурации реагирует на параметры — можно задать поддержку инструкций 3DNow!, MMX, SSE, включить графический интерфейс (под движок Gtk) и тому подобное. SDL рекомендуется использовать по той причине, что через SDL видео выводится в масштабируемом окне и безо всяких глюков. Вас интересует полноэкранный режим? Разумеется, он работает. Более того — инженерная мысль дошла даже до возможности рендеринга в ТЕКСТОВОМ режиме (через библиотеку aalib, опция "-vo aa").
Собственно говоря, только дай MPlayer монитор, и он на нем что-нибудь да нарисует. Если монитора нет, будет выдавать видео прямо в файлы, например, формата PNG. Если монитор все-таки есть, то можно показывать видео через упомянутую выше SDL (по идее, это обеспечивает максимальную совместимость с видеосервером), OpenGL-рендер, SVGAlib, x11, видеокарты конкретных марок: Matrox G200 и G400, Voodoo2 и 3...
Что до звуковых подсистем, то MPlayer умеет общаться со следующими: с официальной звуковой системой ОС Linux OSS, с драйвером SDL (который поддерживает изменение частоты оцифровки и взаимодействует со звуковыми серверами-демонами ESD и aRts), а также с ALSA. Короче говоря, что-то одно да будет работать наверняка. Под OSS можно вытянуть звук даже из устройства под названием PCSpeaker.
MPlayer, как вы поняли, может работать в двух режимах: с графическим интерфейсом и без оного. Хотя управление клавиатурой в опытных руках происходит со скоростью мысли, но графический интерфейс программы поддерживает скины, а скины к MPlayer красивые.
MPlayer благодаря CVS развивается активнее плееров под Windows. Работа над проектом кипит день и ночь — можете убедиться в этом сами на странице mplayerhq.hu/cgi-bin/cvsweb.cgi/main/ DOCS/documentation.html, где находится информация об обновлениях в главной CVS-ветке версий MPlayer.
Самое важное — если у вас возникают проблемы с определением компилятора, то скрипт конфигурации следует запускать с параметром -disable-gcc-checking. Это особенно касается gcc версии 2.96. Разработчики MPlayer рассказывают о версии 2.96 плохие вещи: оказывается, она не обращает внимания на инструкции MMX, SSE и 3DNow! — то есть не ругается, не пишет об ошибках, а просто игнорирует их!
В любом случае плеер работает. Главное знать, что именно вы делаете, запуская его. Например, под KDE и SDL запущенный в режиме GUI плеер при переключении в fullscreen попросту прибивает X-сервер и выбрасывает вас в логин. А чтобы такого не случилось, требуется запускать MPlayer вот таким образом: mplayer -gui -vo sdl -fsmode 1.
И еще о KDE: следует выключить его звуковой сервер (aRts) — он только мешает работе плеера (и не только этого, но и других мультимедийных приложений). Хотя можно этого и не делать, но тогда звуковой поток MPlayer придется выводить на SDL (параметр ao sdl) или с опцией artsdsp.
Еще пара слов об MPlayer. Он умеет: в DVD-видео показывать некоторые сцены под разными углами обзора (если таковая возможность присутствует в фильме — кстати, Zoom Player тоже с этим работает), направлять видео на порт видеокарты TV-Out, "граббить" видео с TV-тюнера и компрессировать его с помощью MEncoder (в формат DivX4), на "нижнем" уровне поддерживать специфику карт Matrox, 3dfx и Radeon. Присутствует взаимодействие с LIRC.
MPlayer способен показывать: Video CD, DVD, RIFF AVI (реальный формат сжатия зависит от кодека — это может быть и DivX, и Indeo5, и MPEG1), ASF/WMV (в основном — потоковое видео), QuickTime / MOV (кроме нового образца, где формат эксклюзивный, его умеет играть только оригинальный Apple QuickTime Player) и VIVO.
Видеокодеки, взятые из Windows (MPlayer работает и с ними), можно скачать (mplayerhq.hu/MPlayer/releases/ w32codec-0.60.zip) и установить. Более подробно о кодеках читайте в документации к плееру, там есть файл codecs.html, оттуда качайте по ссылкам нужные вам кодеки и инструкции по их установке. Ваши усилия вознаградятся таким небывалым счастьем, как нормальное DivX-видео в Linux.

Сравнение

Под Windows 98 я взял стандартную "виндовую" программу "Системный монитор" (System Monitor) и, запуская на разных плейерах один и тот же фильм, смотрел параметр "использование процессора" в процентах. В качестве тестового фильма использовался "Бойцовский клуб", 640 x 272, 24 кадра в секунду. Все плейеры работали в оконном режиме, без масштабирования изображения, с отключенными фильтрами и эффектами, если таковые были доступны.

Загрузка процессора

Плейер   Диапазон загрузки, % Средняя загрузка, %
Windows Media Player 7   27-72 64
BSPlayer   4-27 8
SASAMI   49-67 58
Zoom Player   56-65 61
MPlayer   18-37 24

При этом работал еще маленький текстовый редактор, на потребление ресурсов почти не влияющий. Конфигурация машины такова: Athlon Thunderbird 900, 256 метров оперативки, CD-ROM Teac 24х со включенным DMA-режимом. (Для тех, кто не в курсе: включение этого режима (Панель управления > Система > Устройства > Устройство чтения компакт-дисков > название вашего CD-ROM > Настройка > Параметры) ускоряет передачу данных с CD.

Если галочка на DMA-режиме устанавливаться не захочет, значит, виновата материнская плата или драйверы к ней. Либо у вас CD-ROM времен царя Гороха...) MPlayer в "линуксе" (Mandrake 8.0) я тестировал, разумеется, отдельно: под средой KDE 2.2 с мониторинговой утилитой XOSVIEW.

Из приведенной таблицы с очевидностью следует, что самым экономным оказался BSPlayer, потом идет MPlayer (и это при куче запущенных "линуксовых" сервисов!), а уж за ними более прожорливые видеоплейеры, чемпионом среди которых "неожиданно" оказался тот самый Windows Media Player, который большинство ленится заменить на что-нибудь более продвинутое.

Резюме: лучше пользоваться плейерами хорошими, чем разными. Ведь мало кому приходит в голову, скажем, рисовать с помощью входящего в комплект Windows растрового редактора Paint, когда есть Photoshop и GIMP (www.gimp.org). Так же и в случае с видео - совсем другой кайф, когда смотришь фильм с помощью многофункционального плейера с изящным скином...


X-Stranger aka Змитраченок Дмитрий Константинович