Обзор Mplayer
АрхивЛинуксоид (архив)Краткий обзор возможностей программы Mplayer - одного из самых продвинутых проигрывателей видео под Linux.
Данный текст не является переводом FAQ по mplayer или манов, это просто описание некоторых возможностей mplayer и примеры его использования. Все что я описал в этом тексте, мною проверено и оценено на основании моего личного опыта.
Так как при помощи mplayer я смотрю только фильмы в формате Divx ;), то все ниже изложенное следует относить прежде всего к видео в формате Divx ;).
Проигрывание видео в Linux, так уж сложилось, до недавнего времени было занятием не самым приятным, особенно на слабых машинах, со слабой видео-картой. Максимум на что можно было рассчитывать имея в запасе конфигурацию pentium-166 и STrio64, это просмотр видео в формате mpeg2, в оконном режиме. Во многом такая неблагоприятная ситуация складывалась из-за отсутствия поддержки аппаратного масштабирования, прямого доступа к видео-памяти, отсутствия хороших драйверов для видео-карт. Однако с появлением XFree86 версии 4 и таких расширений как Xv, DGA, а также после того как фирмы производители видео-карт начали писать высококачественные драйверы для своих продуктов под операционную систему Linux, ситуация кардинально изменилась.
Итак, сейчас имею следующую конфигурацию: Duron 700Mhz, 128Mb, SoundBlaster Live, RivaTNT2 M64 with TvOut, инфро-красный порт IrMate 210B. Ранее правда было AMD-K6 450Mhz, 64Mb, SoundBlaster Live, RivaTNT2 M64 with TvOut.
Железо как видите далеко не самое новое, особенно видео-карта, но она обладает весьма солидным достоинством – это TvOut, так как позволяет смотреть фильмы на большом экране телевизора.
В качестве проигрывателя видео я использую mplayer, и объясню почему. Mplayer очень развитой, и настраиваемый проигрыватель, он позволяет просматривать огромное количество форматов видео и аудио, за счет широкого спектра поддерживаемых кодеков (в нем есть поддержка замечательного набора кодеков libavcodec, но о них позже), разнообразные режимы вывода видео (через framebuffer, vesa, Xv, GL, DGA), поддержка подсистемы lirc, качественные OSD для отображения субтитров, текущей позиции и.т.д, постоянно расширяющийся набор возможностей, благодаря активной разработке.
Чтобы смотреть фильмы с нормальной скоростью и качеством вам необходимо иметь настроенную видео-карту, драйвер которой поддерживает Xv, также неплохо было бы поставить SDL версии 1.1.7 и выше, если хотите смотреть фильмы через SDL.
Для того чтобы начать просмотр фильма необходимо набрать в командной строке следующее:
mplayer some.avi
В mplayer реализована развитая система переключения кодеков и фильтров используемых при просмотре видео и прослушивании аудио треков, например обычный divx можно просматривать используя разные кодеки:
divx – это кодек Windows подгружаемый через часть кода wine. Кодек так себе, не самый быстрый, не самый качественный. Середнячок.
ffdivx – самый быстрый кодек, собираемый из исходников причем с оптимизацией под конкретный тип процессора. Большой прирост в производительности можно получить на процессорах с поддержкой технологии 3DNow. Этот кодек идеально подходит для слабых процессоров, таких как K6. Сам использую его до сих пор, среди недостатков, отсутствие встроенных средств, улучшения качества картинки (размывка квадратов, и.т.д), что с успехом можно достичь используя внешние фильтры, например запустив mplayer с параметром -vop pp=<n> (чем больше параметр <n>, тем сильней влияние фильтра, максимум 6). Также не внутренних средств для изменения яркости, контрастности, цветности.
divx4 – нативный кодек, гораздо медленнее ffdivx, но обладает встроенными средствами улучшениями качества изображения, задается через параметр pp ( mplayer some.avi -vc divx4 -pp 10 ), также mplayer имеет возможность динамически менять параметр pp во время проигрывания фильма в зависимости от загрузки процессора. Включается этот режим через команду autoq=<n>, где n – максимально допустимое значение параметра pp. Также этот фильтр может менять яркость, контрастность, цветность. Скачать этот кодек можно здесь, существует две базовые версии divx4 и divx5. Советую использовать версию divx4 – в ней меньше глюков, в версии divx5 иногда можно наблюдать маленькие белые квадратики бегущие по экрану.
Переключаться между указанными кодеками можно командой -vc <имя кодека>, -vc help выведет вам полный список поддерживаемых кодеков.
Теперь примеры решения проблем разного рода.
Видео: Иногда попадаются фильмы с широкоформатным изображением и хочется изображение немного растянуть по вертикали, это возможно сделать несколькими способами:
- Например исходное разрешение 512x320, а нужно 512x380
mplayer some.avi -y 380
В этом случае картинка не вырезается а просто растягивается, теряя свои пропорции. - mplayer some.avi -panscan <n>
<n>параметр от 0.0 до 1.0, чем больше параметр n тем больше картинка приближается к формату 4:3, при этом сохраняются пропорции но часть картинки вырезается по горизонтали. - Надоедливые черные полосы сверху и снизу видео. Есть целый ряд фильмов закодированных уже с черными полосами, (от конторы Digital Force) т.е допустим разрешение видео 640x480, а реально картинка с фильмом широкоформатная имеет разрешение 640x320, все остальное пустые черные полосы. Эти полосы просто так забивают шину при передачи данных видео-карте. Их можно вырезать используя внешний фильтр -vop crop. Но для этого сперва лучше запустить mplayer следующим образом:
mplayer some.avi -vop cropdetect -ss 0:2:00
После этого по mplayuer начнет проигрывание с 2 минуты, и будет сканировать картинку на пустые черные поля, найдя их выдаст строку типа этой:
crop area: X: 0..479 Y: 0..319 (-vop crop=480:320:0:0)
(У вас будут совершенно другие параметры)
Теперь нужно запустить mplayer с выданным нам параметром:
mplayer some.avi -vop crop=480:320:0:0
Все черных полей как не бывало. Это очень может помочь владельцам слабых видео-карт. - Низкое качество картинки, большие квадраты и.т.д. Для борьбы с этими неприятными дефектами, в mplayer есть развитая система фильтров, например попробуйте следующие команды:
mplayer some.avi -vc ffdivx -pp 0x7f
mplayer some.avi -vc ffdivx -vop pp=6
Можно комбинировать например:
mplayer some.avi -vc ffdivx -vop pp=6 -pp 0x7f
Если в качестве кодека используете divx4, то можно следующее:
mplayer some.avi -vc divx4 -autoq 10
mplayer some.avi -vc divx4 -autoq 10 -pp 0x7f
или даже так, но не советую ;)
mplayer some.avi -vc divx4 -autoq 10 -pp 0x7f -vop pp=6 - Темный фильм, хочется сделать поярче, а монитор не позволяет (старый или еще чего), а смотрю через кодек ffdivx. В Mplaer с версии 0.90-pre7 появились внешние фильтры контрастности и яркости, подключить их можно так:
mplayer some.avi -vop eq=<b>:<c>
b и c параметры от 0 до 100.
Аудио Наряду с видео-фильтрами вызываемыми через команду -vop, в mplayer имеются также и аудио фильтры включать которые можно через команду -aop.
- Самый часто используемый мной фильтр включается вот так:
mplayer some.avi -aop list=surround,volume:volume=100 -channels 4
Так как у меня 4-х канальный звук, то я создаю из стерео звучания, псевдо-квадро звук и пускаю его по четырем звуковым каналом. Разница есть и причем весьма заметная. Даже если у вас всего 2 колонки, попробуйте запустить mplayer вот так:
mplayer some.avi -aop list=surround -channels 2
Думаю вы тоже заметите разницу.А volume:volume=100 я добавляю потому, что когда я включаю все 4 звуковых канала, то хардварный миксер перестает работать. - Слишком тихий звук в фильме. Миксер и колонки на максимуме, а звук все равно тихий… Знакомая ситуация, бывает и такое. Попробуйте набрать что-нибудь вроде:
mplayer some.avi -aop volume:volume=200
или даже:
mplayer some.avi -aop volume:volume=300
Смотрите не оглохните.
Вот пожалуй и все, что хотел рассказать про mplayer, все остальное читайте в FAQ и мане ;)
Домашняя страница mplayer: www.mplayerhq.hu