screenshot-amistad-hdtv-720p-x264mkv-smplayer

В Ubuntu 9.04 по умолчанию с трудом воспроизводятся 720p и 1080p (FullHD) фильмы. Для решения данной проблемы стоит пересобрать mplayer из svn с поддержкой ffmpeg-mt для многопоточного декодирования фильмов.

Для начала нобходимо установить утилиты для сборки программного обеспечения из исходных кодов:

$ sudo apt-get install build-essential checkinstall subversion git-core libgpac-dev

Так-же существуют рекомендации использовать свежие исходники x264 для новых версий mplayer.
Для успешной его сборки треуется свежий yasm. Шаги по установке:

$ cd $HOME
$ wget http://www.tortall.net/projects/yasm/releases/yasm-0.7.2.tar.gz
$ tar xzvf yasm-0.7.2.tar.gz
$ cd yasm-0.7.2
$ ./configure
$ make
$ sudo checkinstall -D --pkgname=yasm --fstrans=no --pakdir "$HOME/Desktop" \
--maintainer "$USER" --pkgversion "0.7.2" --backup=no \
--deldoc=yes --deldesc=yes --delspec=yes --default

И сам x264:
$ sudo apt-get purge x264 libx264-dev
$ cd $HOME
$ git clone git://git.videolan.org/x264.git
$ cd x264
$ ./configure --prefix=/usr --enable-shared
$ make
$ sudo checkinstall -D --pkgname=x264 --fstrans=no --pakdir "$HOME/Desktop" \
--maintainer "$USER" --pkgversion "1:0.svn`date +%Y%m%d`-0.0ubuntu1" --backup=no \
--deldoc=yes --deldesc=yes --delspec=yes --default

Установка пакета кодеков:
$ cd $HOME
$ wget http://www.mplayerhq.hu/MPlayer/releases/codecs/all-20071007.tar.bz2
$ sudo mkdir -pv /usr/lib/codecs
$ tar xjvf all-20071007.tar.bz2
$ sudo cp -v $HOME/all-20071007/* /usr/lib/codecs

Создаем симлинк для шрифтов для корректного отображения субтитров:

$ mkdir -v $HOME/.mplayer
$ ln -sv /usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf ~/.mplayer/subfont.ttf

Устанавливаем все библиотеки необходимые для сорки mplayer:
$ sudo aptitude build-dep mplayer

Вытягиваем свежую версию mplayer из svn:
$ cd $HOME
$ svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer

Скачиваем ffmpeg-mt (ffmpeg multi thread):
$ cd $HOME
$ git clone http://git.gitorious.org/ffmpeg/ffmpeg-mt.git

Вытягивает старую версию ffmpeg, она необходима для избежания ряда ошибок компиляции на устранение которых было потрачено много времени =) :


$ cd $HOME
$ wget http://www.ffmpeg.org/releases/ffmpeg-0.5.tar.bz2
$ tar -jxvf ffmpeg-0.5.tar.bz2

Копируем свежие библиотеки в директорию с исходниками mplayer:
$ cd mplayer
$ rm -rf libavcodec libavformat libavutil #удаляем билиотеки которые шли в комплекте с mplayer
$ cp -a ../ffmpeg-mt/libavcodec . #копируем свежие библиотеки
$ cp -a ../ffmpeg-mt/libavformat .
$ cp -a ../ffmpeg-mt/libavutil .
$ cp -a ../fmpeg-0.5/libswscale .

Конфигурируем и собираем mplayer:

$ cd $HOME/mplayer
$ ./configure --enable-gui
$ make
$ sudo make install
$ make clean

Если у вас не будет собиратся mplayer и будет ругаться на CODEC_ID_PCM_BLURAY, избавиться от этого можно закоментировав соответствующюю строку в файле ./libmpdemux/mp_taglists.c ({ CODEC_ID_PCM_BLURAY, MKTAG(‘B’, ‘P’, ‘C’, ‘M’)} ). Не знаю на что это повлияет, но иного выхода собрать плеер я не нашел.

А теперь в чем приемущество:
$ mplayer -vc ffh264 -lavdopts threads=2 filename.mkv

В данном случае будет выделено два процесс для декодирования фильмов, что существенно повышает производительность mplayer на многоядерных системах.

Приятного просмотра!

5 комментариев на «Установка mplayer из svn с поддержкой ffmpeg-mt (многопоточность)»

  1. Заметка конечна полезная, но ещё бы лучше завернуть это хозяйство в deb и куда нить заапрувить

  2. D4rk4:

    Нехватает libxv-dev для поддержки XV.
    И конфигурить лучше с ключами —enable-menu —enable-xv —prefix=/usr —enable-gui

  3. bvitaly:

    1) обновление библиотеки all-20071007 -> all-20100303
    wget http://www.mplayerhq.hu/MPlayer/releases/codecs/all-20071007.tar.bz2 ->
    wget http://www.mplayerhq.hu/MPlayer/releases/codecs/all-20100303.tar.bz2

    и соответственно
    tar xjvf all-20071007.tar.bz2 ->
    tar xjvf all-20100303.tar.bz2

    sudo cp -v $HOME/all-20071007/* /usr/lib/codecs ->
    sudo cp -v $HOME/all-20100303/* /usr/lib/codecs

    2) Исправление ошибки
    cp -a ../fmpeg-0.5/libswscale .
    cp -a ../ffmpeg-0.5/libswscale .

    3)
    Была ошибка make mplayer

    , так как ругалась av_probe_input_format2

    в файле demux_lavf.c закоментировать

    // priv->avif= av_probe_input_format2(&avpd, probe_data_size > 0, &score);

  4. energoFX:

    ubuntu 10.04 — всё шло нормально до конфигурации и сборки mplayer, make завершается «Ошибка 1″. Весь процесс шёл с установленным родным. Удалил его в конце, когда стало выдавать ошибки. Оживите тему и , по возможности, помогите..

Оставить комментарий