понедельник, 6 декабря 2010 г.

Линковка видео в mplayer

Порой в раздачах сериалов и аниме авторы выкладывают повторяющиеся части (опенинги и эндинги) отдельными файлами, ссылки на которые содержатся в основном видео таким образом,  что при просмотре эти вставки подгружаются в нужных местах. Это позволяет [несильно] сэкономить место и трафик ценой потери универсальности. В Windows один из наиболее популярных проигрывателей - Media Player Classic, вооруженный кодеками K-Lite, умеет делать это автоматически, чего на сегодняшний день нельзя сказать о проигрывателях в Линуксе, в том числе о mplayer. К счастью, оказалось, что версия, собранная из git, уже обладает такой функцией. Ниже приложена инструкция по его установке, написанная здесь одним из пользователей.
Для начала установим пакеты, необходимые для сборки:

apt-get install -y build-essential git-core automake autoconf libtool libfreetype6-dev yasm libass-dev libxss-dev x11proto-scrnsaver-dev
Теперь сделаем папочку, где будем все это собирать. Например: 
mkdir ~/src 
Перейдем в эту папку и склонируем сборочные скрипты:

cd ~/src
git clone git://repo.or.cz/mplayer-build.git
 
И зайдем в полученную папку:

cd mplayer-build
Разрешим использование ffmpeg-mt:
./enable-mt 
И получим всю пачку исходников:

./init --shallow 
Теперь откроем любым редактором файл script/ffmpeg-config
Например так:

gedit script/ffmpeg-config
#вместо gedit - ваш любимый текстовый редактор ©
Тут нас интересует секция

args=['--prefix=%s/build_libs' % mydir,
        '--enable-gpl',
        '--cpu=host',
        '--disable-debug',
        '--enable-pthreads',
        '--disable-shared', '--enable-static',
        '--enable-postproc',
        '--disable-devices', '--disable-ffmpeg',
        '--disable-ffplay', '--disable-ffserver','--disable-ffprobe',
        '--disable-vaapi] 
Изменим слово host в строчке --cpu=host на ваш CPU. Например
в моем случае это стало --cpu=core2
(Это необязательное действие, но оно дает возможность использовать инструкции, специфичные для конкретно вашего процессора и позволяет выйграть пару FPS)
Теперь запускаем собственно сборку и отправляемся пить чай (это небыстрый процесс):

make 
Если сборка завершилась без ошибок, то есть последняя строчка вывода выглядит как-то так:

make[1]: Leaving directory `/home/somebody/src/mplayer-build/mplayer'
а не так

make: *** [libass-config] Error1 
то мы, в общем-то, все самое страшное уже закончили.
На этом шаге уже можно попробовать со всем этим взлететь:

cd /где/там/у/вас/аниме/ ~/src/mplayer-build/mplayer/mplayer -ass -slang rus -alang jap имя_файла
И, о чудо! - линковка сработала, сабы не сбились, все счастливы!
Проверив, что всё работает, можно смело копировать mplayer в /usr/bin, чтобы не морочиться с путями, предварительно сделав бекап.

mv /usr/bin/mplayer /usr/bin/mplayer.bak
cp /home/ИМЯ/src/mplayer-build/mplayer/mplayer /usr/bin/mplayer


Более мудрый автор инструкции советует вместо этого ставить ссылку.

ln -s /home/ИМЯ/src/mplayer-build/mplayer/mplayer /usr/bin/mplayer

P.S. Люди говорят, что mplayer, собранный по этой инструкции, тоже поддерживает линковку.

Комментариев нет:

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