9/12/2006

Установка Mplayer в Linux и Mplayer кодеки

Задача: собрать Mplayer в Linux на примере Debian Linux и установить кодеки для Mplayer.
Решение: по ряду причин этот плеер не включён в основную ветку дистрибутива, но имеется отдельно в исходниках. Для этого потребуется скачать собственно исходники плеера и все его кодеки с официального сайта.

Подготовка
Идём на официальный сайт и скачиваем там архив с программой и, кроме того, архивы с кодеками (они обычно называются essential*.tar.bz2 или вроде того). После скачивания всего добра оттуда готовим систему для установки: нужен компилятор и несколько дополнительных пакетов.
Для сборки плеера из исходников нам нужно поставить пакеты:
# apt-get install gcc g++ make
После этого ставим необходимые для MPlayer пакеты:
# apt-get install libogg0 libogg-dev libvorbis0a libvorbis-dev vorbis-tools libpng12-0 libpng10-dev liblogfile-rotate-perl libconfhelper-perl debhelper fakeroot libgtk1.2 libgtk1.2-dev svgalibg1 svgalibg1-dev libsdl1.2-dev
Некоторые пакеты могут быть уже установлены, другие потребуют обновлённых версий, но набор их остаётся прежним. Далее переходим в каталог /usr/src и создаём там каталог mplayer, где и будем его собирать. Всё почти готово...


Сборка MPlayer в Debian Linux - консольный плеер
Часто все эти графические свистелки только отнимают время и затрудняют работу с плеером. Кроме того, запомнить пару ключей проще, чем тыкаться в бесконечных выпадающих менюшках а-ля-Xine. Ниже описывается процедура сборки консольной версии MPlayer, в следующей секции даются рекомендации по сборке его с GUI.
Итак, переходим в каталог с исходниками MPlayer и разархивируем их в каталог:
#cd /usr/src/mplayer/ && tar -jxvvf * && cd *
После этого в этом же каталоге набираем:
# ./configure
Поползуют выводы конфигуратора: что у вас есть и с поддержкой чего будет компилироваться MPlayer. Если его на этом этапе что-то не устроит - он вылетит и перед кончиной скажет, чего ему не хватило для полного счастья. Недостающее надо поставить, после чего собрать-таки пакет прописыванием следующего заклинания:
# DEB_BUILD_OPTIONS="--disable-runtime-cpudetection" fakeroot debian/rules binary
Вот прямо так и пишите, как здесь, и должно быть вам счастье. По экрану поползут и замелькают строчки компилятора, в которые вчитываться не обязательно. Апофеозом его деятельности будет появившийся в каталоге /usr/src/mplayer заветный файлик mplayerVersion.deb, который мы ставим утилитой dpkg следующим манером:
# dpkg -i mplayerVersion.deb
Но это ещё не всё: у нас только основные кодеки, а дополнительных нет, и разные неправильные ролики мы не увидим. А хотим. Но разве напрасно мы качали кодеки к MPlayer вида all-*.tar.bz2 и essential-*.tar.bz2? Сейчас мы их поставим.


Установка Mplayer кодеков в Linux

Отвечаю на вечный вопрос убунтуйцев и сусеводов - как поставить кодеки Mplayer. Скачиваем архив с кодеками Mplayer, разархивируем кодеки Mplayer и все их сваливаем в каталог /usr/lib/win32 - если такого каталога нет, создаём его.
Теперь (заделываясь рутом или его полномочиями через sudo) идём в каталог /etc и редактируем там файл ld.so.conf вписыванием в него строк:
/usr/lib
/usr/lib/win32
Вот как например этот файл выглядит у меня (это только пример!)
# cat /etc/ld.so.conf

/usr/X11R6/lib
/usr/lib/atlas
/usr/lib
/usr/lib/win32

Вот только после этого действа у меня появились кодеки - и увидел их не только MPlayer, но и Xine, что приятно вдвойне. Так что теперь кодеками Mplayer будут пользоваться оба плеера.

Использование консольного MPlayer - основные команды
Сейчас вы освоите такую экзотику, как консольный плеер. Это просто и при некотором навыке гораздо быстрее графического. Организую это в виде FAQ:

1. Как посмотреть фильм, который находится в каталоге /home/vasya/porno.avi?
В графической консольке (Терминал, xterm) набираем:

mplayer /home/vasya/porno.avi

2. Фильм идёт, но много жрёт процессорного времени (вариант: только в центральной части экрана, а когда разворачиваешь fullscreen - фильм продолжает идти не на весь экран) - что можно сделать?

Попробовать другие методы видеовывода, указав плееру параметр:
mplayer -vo xv /home/vasya/porno.avi И попробовать другие ключи:
-vo sdl
-vo xv
-vo x11
-vo gl
-vo gl2
а так же другие, которыми плеер поделится, если его попросить: mplayer -vo help

3. Фильм идёт рывками, пропуск кадров виден нетрезвым/невооружённым глазом, что делать?
а) попробовать предыдущий рецепт (п.2) и поменять параметр видеовывода, особенно помогает sdl;
б) указать параметр -framedrop или -hardframedrop при которых плеер пытается воспроизводить фильм в максимально пристойном качестве с пропуском кадров;
в) подымать framebuffer, выгружать иксы и смотреть фильмы в чистой консоли (для упёртых фанатов).

4. Видео снято\перекодировано с поворотом - как повернуть видео в mplayer под linux?
Можно попробовать сделать так:

mplayer -vo xv -vf rotate file.avi

должно повернуться против часовой стрелки.


5. Хочу подкрутить яркость/контраст/насыщенность, а на какие кнопки жать в консольном плеере?
На клавиатурные, натурально, о чём, кстати, в man mplayer подробно растолковано. Но для тех, кто мануалов не читает, привожу перевод:
Кнопки 1 и 2 понижают/повышают контраст
Кнопки 3 и 4 понижают/повышают яркость
Кнопки 5 и 6 понижают/повышают оттенки
Кнопки 7 и 8 понижают/повышают насыщенность
Не все эти операции поддерживаются различными методами видеовывода.

6. На какие кнопки жать, чтобы перемещаться по фильму?
На клавиатуре давим:
стрелка < и > передвинуться назад/вперёд на 10 секунд
кнопка перемещения курсора вверх и вниз передвинуться назад/вперёд на 1 минуту
кнопка страница вверх и страница вниз передвинуться назад/вперёд на 10 минут
и читаем-таки маны (man mplayer), в которых это пишут буквально сразу, не откладывая в дальний ящик.

7. Видео и звук рассинхронизируются - как компенсировать?
Снова мучаем клавиатуру:
кнопка + и - компенсировать назад/вперёд десинхронизацию на 0.1 секунд
или прописать параметр -autosync 0

8. У видеофайла неправильное соотношение сторон (не правильный aspect ratio) - как компенсировать?
В консоли запускаем mplayer c параметром -monitoraspect X:Y где вместо X и Y подбираем правильные соотношения экспериментально. Полная строка может выглядеть так: mplayer -monitoraspect 4:4 1984.mpg

И ещё. Если нужно сделать так, чтобы видео воспроизводилось в цикле, пишем команду:
mplayer -loop 0 Image01.avi
Это заставляет Mplayer проиграть файл, потом закрыть его, потом открыть снова и снова проиграть.


Этого должно хватить для более или менее продвинутого использования замечательного плеера MPlayer.


Ссылки:
Лучшая статья по установке MPlayer в Debian, как и все другие толковые руководства по данному вопросу на англицком наречии. Много полезной информации о том, как поставить MPlayer в с графической мордой сказано здесь. Установившим Fedora Core - сюда, убунтуйцев ждут здесь.

23 комментария:

  1. Добрый день!
    Я, если позволите, немного вас покритикую :)
    1. Если mplayer всё равно ставится из исходников, то лучше его брать через CVS (или, возможно, Subversion, я не знаю, что у них сейчас). Почему? Просто в связи с довольно редко выходящими релизами могут быть как баги, так и ещё что-то. Допустим, в версии, которая была до 1.0pre8 (а это latest stable), был какой-то баг с x264 (сейчас уже всех подробностей не помню).
    Возможно, что это не путь debian, но ...
    2. Придирка :) фильм находится в каталоге /home/vasya, но по адресу ~/porno.avi =)
    3. Было бы здорово написать, как использовать mplayer и tvtuner ;) - это для многих тоже важно.

    ОтветитьУдалить
  2. А можно как-нибудь из консольного мплэера регулировать громкость звука? В графической версии для этого надо было включать какую-то галочку, а то фильм очень сильно орал в наушниках :)

    ОтветитьУдалить
  3. Вот это действительно интересная статья - сегодня вечером попробую :)

    Кстати, я Ваш блог в свои ссылки ранее добавлял - даже не думал, что сам буду комментировать сообщения уважаемого virens

    ОтветитьУдалить
  4. Напомню уважаемому virens и другим коллегам о том, что mplayer возможно установить с www.backports.org. По крайней мере в Sarge.
    Это не в смысле, что статья плохая, а так - для порядка. :-)

    ОтветитьУдалить
  5. Извиняюсь, соврал - не с www.backports.org, а /debian.nsu.ru/debian-marillat (как помню - ставил оттуда).

    ОтветитьУдалить
  6. >А можно как-нибудь из консольного мплэера >регулировать громкость звука?

    / и * на numpad'e

    ОтветитьУдалить
  7. Я, если позволите, немного вас покритикую
    С удовольствием: собственно, я этого и жду :-)

    1. Если mplayer всё равно ставится из исходников, то лучше его брать через CVS
    Я что-то неправильно понял, или у команды MPlayer есть версии плеера, отличного от того, что лежит на их главной странице? Там ведь в версии и так написано что-то типа cvs. Если не прав - прошу подробнее. Можно сразу в почту, которая в профиле указана.

    Допустим, в версии, которая была до 1.0pre8 (а это latest stable), был какой-то баг с x264
    Намекаете на установку из testing? Ага... дошло... Можно.

    2. Придирка :) фильм находится в каталоге /home/vasya, но по адресу ~/porno.avi =)
    Это не придирка, а багфикс :-) Учтено, будет исправлено.

    3. Было бы здорово написать, как использовать mplayer и tvtuner ;) - это для многих тоже важно.
    8-0 Не понял? Смотреть телепередачи MPlayer? Киньте ссылочку, не знал. Что-то такое слышал, но подумал, что от лукавого :-)

    Надо будет урвать выходной и внести давно назревающие поправки. Большое за них спасибо!

    ОтветитьУдалить
  8. He1mut said...
    Вот это действительно интересная статья - сегодня вечером попробую :)

    Рад, что нравится - может, будет полезна. О своем опыте отпишите в блоге, мне тоже интересно.

    2anonymous:
    Извиняюсь, соврал - не с www.backports.org, а /debian.nsu.ru/debian-marillat
    Про марилатовские сборки я в курсе, но они меня не впечатлили совершенно: тормозят, были проблемы с GUI и вообще... Всё равно спасибо.


    Anonymous said...
    >А можно как-нибудь из консольного мплэера >регулировать громкость звука?
    / и * на numpad'e

    Надо будет поправить и внести в пост. Спасибо. Было поздно и хотелось спать :-) И ещё раз спасибо, что ответили за меня тов.abc-online!

    ОтветитьУдалить
  9. Всем комментаторам ещё раз большое спасибо за внимание, если что ещё найдёте - пишите смело.
    Благодаря вам материал блога становится всё лучше и лучше :-)

    ОтветитьУдалить
  10. Сейчас посмотрел, там subversion. Я бы сказал, что это не testing, а current. А забрать можно командой [code]svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/[/code]
    Про просмотр tuner'а из mplayer'a напишу, наверное, вечером.

    ОтветитьУдалить
  11. Прошу прощения, но не умею вставлять тег "code" =(

    ОтветитьУдалить
  12. Например:
    mplayer -tv driver=v4l2:alsa:normid=5:freq=191.25 tv://
    Опции я брал из man mplayer :), захватывающий документ. Я как-то написал пост про запись с помощью mencoder, оттуда можно взять ещё некоторые данные. Извините за ссылку на себя :):
    http://cheer78.wordpress.com/2006/06/23/tv-record-via-mencoder/
    P. S. Если кто-нибудь скажет, как вставлять ссылку, буду очень благодарен.

    ОтветитьУдалить
  13. 2Igor:
    Опции я брал из man mplayer :)
    Стало стыдно :-) Ушёл читать ман, скоро попробую на своём тюнере и запостю результаты.
    Спасибо за ссылку на свой блог - очень интересная статья. Частоты каналов даны для Москвы?

    ОтветитьУдалить
  14. Нет, для Петербурга. Для Москвы я не знаю :)

    ОтветитьУдалить
  15. спасибо за статью,
    но что вы думаете по поводу варианта несколько иной сборки официального mplayer под дебианом

    с помощью dpkg-buildpackage -rfakeroot или с помощью
    fakeroot debian/rules binary (рекомендовано авторами проги)

    ОтветитьУдалить
  16. 2 Anonymous
    но что вы думаете по поводу варианта несколько иной сборки официального mplayer под дебианом
    А разница? Будет быстрее работать? Если опищите в почте подробнее - обязательно подумаю :-)

    ОтветитьУдалить
  17. увы, я разницы не знаю. Собрал по вашему рецепту - сборка и установка прошла успешно. Но при работе с тв тюнером с аппаратным мпег2 кодеком мплеер виснет
    хочу отписать авторам, но не понял вот эту строчку, которую надо выполнить согласно
    http://www.mplayerhq.hu/DOCS/HTML/en/bugreports_what.html

    gdb mplayer --core=core -batch --command=command_file > mplayer.bug


    не подскажете, что надо забить вместо "command_file"

    ОтветитьУдалить
  18. http://cheer78.wordpress.com/2006/06/23/tv-record-via-mencoder/

    увы , ссылка не работает
    Error 404 - Not Found

    а хотелось бы почитать про mencoder

    ОтветитьУдалить
  19. перл-морда для использования mplayer'а как тюнера - http://mplayertv.ivanov.eu/download.php (debs inside)

    ОтветитьУдалить
  20. Извините, а можно в консоли посмотреть DVD-меню?

    ОтветитьУдалить
  21. 2 Chpock пишет...

    перл-морда для использования mplayer'а как тюнера - http://mplayertv.ivanov.eu/download.php (debs inside)
    Спасибо, посмотрю.

    2 Анонимный пишет...
    Извините, а можно в консоли посмотреть DVD-меню?
    насколько я знаю, нет. У Mplayer с этим исторические проблемы :-)

    Пост по ходу действия устарел. Будет обновлён при следующей правке.

    ОтветитьУдалить
  22. ИМХО, правильнее ставить кодеки из репозитория, коли таковой имеется:
    deb http://www.debian-multimedia.org etch main

    Тут имеются и w(32/64)codecs и более-менее свежая libdvdcss, без которой не будут играться некоторые DVD (особенно - коммерческие).

    Подробнее: http://linuxhelp.blogspot.com/2007/04/install-multimedia-codecs-libdvdcss-in.html

    ОтветитьУдалить
  23. Господа, а подскажите с какими надо собирать опциями mplayer, чтобы он мог воспроизводить amr и 3gp?

    ОтветитьУдалить