Как стать автором
Обновить

Компиляция MPlayer с поддержкой многопоточного декодирования.

Данная статья является вольным переводом-компиляцией 2х статей Compiling mplayer with multi-core decoding support и Install the svn Mplayer under Intrepid Ibex.
Ничего страшного ниже написано не будет. Все — что ни на есть Ubuntu Way ).
Все что потребуется сделать — это собрать MPlayer из svn заменив исходники ffmpeg содержащиеся в нем на исходники из ffmpeg-mt.
Установка производилась на свежепоставленный intrepid.

Для установки потребуются репозитории: Restricted, Universe и Multiverse.
Берем с яндекс зеркал:

deb http://mirror.yandex.ru/ubuntu/ intrepid main restricted
deb-src http://mirror.yandex.ru/ubuntu/ intrepid restricted main multiverse universe
deb http://mirror.yandex.ru/ubuntu/ intrepid-updates main restricted
deb-src http://mirror.yandex.ru/ubuntu/ intrepid-updates restricted main multiverse universe
deb http://mirror.yandex.ru/ubuntu/ intrepid universe
deb http://mirror.yandex.ru/ubuntu/ intrepid-updates universe
deb http://mirror.yandex.ru/ubuntu/ intrepid multiverse
deb http://mirror.yandex.ru/ubuntu/ intrepid-updates multiverse
deb http://mirror.yandex.ru/ubuntu/ intrepid-security main restricted
deb-src http://mirror.yandex.ru/ubuntu/ intrepid-security restricted main multiverse universe
deb http://mirror.yandex.ru/ubuntu/ intrepid-security universe
deb http://mirror.yandex.ru/ubuntu/ intrepid-proposed restricted main multiverse universe
deb http://mirror.yandex.ru/ubuntu/ intrepid-backports restricted main multiverse universe
deb http://mirror.yandex.ru/ubuntu/ intrepid-security multiverse


+ подключаем medibuntu:

Код:
$ sudo wget http://www.medibuntu.org/sources.list.d/intrepid.list --output-document=/etc/apt/sources.list.d/medibuntu.list
$ sudo apt-get update && sudo apt-get install medibuntu-keyring && sudo apt-get update

Соответственно обновляемся.

Далее все по порядку:

________________________________________________________________________________
1.Установка необходимых пакетов для сборки:

Код:
$ sudo apt-get install build-essential checkinstall subversion git-core yasm

________________________________________________________________________________
2.Установка кодеков:

Код:
$ mkdir ~/temp
$ cd ~/temp
$ sudo mkdir -pv /usr/local/lib/codecs ls
$ wget ftp://ftp.mplayerhq.hu/MPlayer/releases/codecs/all-20071007.tar.bz2
$ tar xjvf all-20071007.tar.bz2
$ sudo cp -v all-20071007/* /usr/local/lib/codecs

________________________________________________________________________________
3.Установка шрифта для субтитров:

MPlayer должен знать местоположение в TrueType шрифта, чтобы показать фильм с субтитрами.
Создадим симлинк на выбранный нами шрифт(скорей всего уже присутствует в системе, но для пущей уверенности установим):

Код:
$ sudo apt-get install ttf-bitstream-vera
$ mkdir -v ~/.mplayer
$ ln -sv /usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf ~/.mplayer/subfont.ttf

________________________________________________________________________________
4. Установка x264

Версия x264 в репозитории Ubuntu слишком стара для MPlayer поэтому необходимо будет загрузить его копию с x264 GIT репозитория:

Код:
$ git clone git://git.videolan.org/x264.git
$ cd x264
$ ./configure --enable-shared
$ make
$ sudo checkinstall --fstrans=no --install=yes --pakdir "$HOME/temp" \
--maintainer "$USER" --pkgname=x264 --pkgversion "1:0.svn`date +%Y%m%d`-0.0ubuntu1" \
--backup=no --deldoc=yes --deldesc=yes --delspec=yes --gzman --default
$ make clean

________________________________________________________________________________
5.Установка Live555 для проигрывания потокового аудио и видео.

Код:
$ cd ..
$ wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz
$ tar xvf live555-latest.tar.gz
$ cd live
$ ./genMakefiles linux
$ make
$ sudo cp -r ../live /usr/lib


________________________________________________________________________________
6. Скачаем несолько dev'ов :):

Код:
$ sudo apt-get install em8300-headers gawk gettext html2text intltool-debian \
ladspa-sdk libaa1-dev libartsc0 libartsc0-dev libasound2-dev libatk1.0-dev libaudio-dev \
libaudio2 libaudiofile-dev libavahi-client-dev libavahi-common-dev libcaca-dev \
libcairo2-dev libcdparanoia0-dev libcucul-dev libdbus-1-dev libdbus-glib-1-dev \
libdirectfb-dev libdirectfb-extra libdts-dev libdv4-dev libenca-dev libenca0 \
libesd0-dev libexpat1-dev libfaac-dev libfaac0 libfontconfig1-dev libfreebob0 \
libfreetype6-dev libfribidi-dev libggi-target-x libggi2 libggi2-dev libggimisc2 \
libggimisc2-dev libgif-dev libgii1 libgii1-dev libgii1-target-x libgl1-mesa-dev \
libglu1-mesa-dev libglu1-xorg-dev libgtk2.0-dev libice-dev libschroedinger-dev \
libjack-dev libjack0 libjpeg62-dev liblzo-dev liblzo1 liblzo2-2 liblzo2-dev libmad0 \
libmad0-dev libmail-sendmail-perl libmp3lame-dev libmp3lame0 libmpcdec-dev libmpcdec3 \
libncurses5-dev libogg-dev libopenal-dev libopenal1 libpango1.0-dev libpixman-1-dev \
libpng12-dev libpopt-dev libpthread-stubs0 libpthread-stubs0-dev libpulse-dev \
libpulse-mainloop-glib0 libsdl1.2-dev libslang2-dev libsm-dev libsmbclient-dev \
libspeex-dev libsvga1 libsvga1-dev libsys-hostname-long-perl libsysfs-dev \
libtheora-dev libtwolame-dev libtwolame0 libvorbis-dev libx11-dev libxau-dev \
libxcb-render-util0-dev libxcb-render0-dev libxcb-xlib0-dev libxcb1-dev \
libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev \
libxft-dev libxi-dev libxinerama-dev libxrandr-dev libxrender-dev libxt-dev libxv-dev \
libxvidcore4 libxvidcore4-dev libxvmc-dev libxvmc1 libxxf86dga-dev libxxf86vm-dev \
mesa-common-dev po-debconf sharutils x11proto-composite-dev x11proto-core-dev \
x11proto-damage-dev x11proto-fixes-dev x11proto-input-dev x11proto-kb-dev \
x11proto-randr-dev x11proto-render-dev x11proto-video-dev x11proto-xext-dev \
x11proto-xf86dga-dev x11proto-xf86vidmode-dev x11proto-xinerama-dev \
xtrans-dev zlib1g-dev libamrnb-dev libamrwb-dev libstdc++5


Все это будет весить около 35 мегабайт и прибавит вашему MPlayer оромное количество функций.
Вы можете дополнить этот список по своему вкусу :).

________________________________________________________________________________
7.Скачиваем исходный код MPlayer из SVN:

Код:
$ cd ..
$ svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer


________________________________________________________________________________
8.Теперь настало время скачать исходники ffmpeg-mt.

Код:
$ git clone http://git.gitorious.org/ffmpeg/ffmpeg-mt.git

________________________________________________________________________________
9.Меняем библиотеки.

Для того чтобы использовать загруженные исходники ffmpeg-mt, Вы должны заменить три каталога в исходниках MPlayer на каталоги из ffmpeg-mt — это «libavcodec», «libavformat» и «libavutil».

Код:
$ cd mplayer
$ rm -rf libavcodec libavformat libavutil
$ cp -a ../ffmpeg-mt/libavcodec .
$ cp -a ../ffmpeg-mt/libavformat .
$ cp -a ../ffmpeg-mt/libavutil .

Теперь у Вас есть исходный код MPlayer в котором присутствуют необходимые нам библиотеки.

________________________________________________________________________________
10.Устонавливаем MPlayer.

Код:
$ ./configure
$ make
$ sudo checkinstall -D --install=yes --fstrans=no --pakdir "$HOME/temp" \
--pkgname mplayer --backup=no --deldoc=yes --deldesc=yes --delspec=yes --default \
--pkgversion "3:1.0~svn-`grep "#define VERSION" version.h | cut -d"-" -f2`"
$ make distclean


________________________________________________________________________________
11.Устонавливаем GUI.

Установим SMPlayer из репозиториев Ubuntu.

Код:
$ sudo apt-get install smplayer

________________________________________________________________________________
12.Смотрим что у нас получилось.

Код:
$ mplayer -vo help
$ mplayer -ao help
$ mplayer -vc help
$ mplayer -ac help
$ mencoder -ovc help
$ mencoder -oac help

SMPlayer доступен из меню Applications -> Sound & Video -> SMPlayer
В консоли сам плеер запускаем командой 'mplayer', а кодировщик командой 'mencoder'.
Приятного просмотра.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.