Pull to refresh

Компиляция 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'.
Приятного просмотра.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.