Мой старенький Mac mini (1.66ГГц Intel Core Duo) всегда тормозил при воспроизведении FullHD фильмов. Максимум на что его хватало — это фильмы с разрешением 720p. Из-за особенностей большинства плееров и кодеков, используемых в них, для декодирования задействовалось только одно ядро процессора.
У проекта FFmpeg есть многопоточная версия FFmpeg-mt, которую можно и нужно использовать, например, в MPlayer для того, чтобы загрузить процессор работой по максимуму.
Итак, прежде чем приступить к сборке, нам понадобятся несколько инструментов:
- Apple Developer Tools (так же есть на любом DVD с Mac OS X)
- Subversion (консольная версия есть в комплекте Apple Developer Tools)
- Git
Всю сборку я буду проводить на рабочем столе.
cd ~/Desktop/
Загружаем исходники MPlayer из репозитория.
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
Загружаем исходники FFmpeg-mt.
git clone http://git.gitorious.org/ffmpeg/ffmpeg-mt.git
Теперь, чтобы использовать библиотеки FFmpeg-mt, заменим три папки libavcodec, libavformat и libavutil в исходниках MPlayer.
cd mplayer
rm -rf libavcodec libavformat libavutil
cp -R ../ffmpeg-mt/libavcodec .
cp -R ../ffmpeg-mt/libavformat .
cp -R ../ffmpeg-mt/libavutil .
Можно приступать к конфигурации и сборке проекта.
./configure --enable-menu --enable-apple-remote
make
sudo make install
Осталось сделать несколько косметических манипуляций. Нужно указать какой шрифт использовать для OSD и субтитров.
ln -s /Library/Fonts/Arial\ Unicode.ttf ~/.mplayer/subfont.ttf
Так же нужно немного отредактировать конфигурационный файл.
nano ~/.mplayer/config
В файле набираем:
lavdopts=threads=2:skiploopfilter=all
vf=yuy2
fs=yes
Эти настройки декодера предписывают ему использовать два потока и пропустить некоторые процедуры улучшения картинки. Так же для меня было оптимально использовать принудительную конвертацию видео в YUY2, что дает не большой прирост в скорости.
В целом обновленная версия показала прирост в производительности на 60% в сравнении с однопоточным декодером.
Обновление : отличный GUI MPlayer OSX Extended уже содержит сборку mplayer с многопоточным декодированием.
Коментарии к заметке
Фильмы в FullHD отлично проигрываются с помощью Plex Media Center. Интерфейс и навигация по разделам плеера не совсем в духе Apple, но пользоваться можно.