07 декабря 2013

Проигрыватель MPV - новый перспективный форк Mplayer и Mplayer2

Проектом MPV ведётся разработка нового открытого консольного видеоплеера, построенного на основе ответвления от кодовой базы MPlayer2. Причиной создания форка послужила, помимо прочего, излишне консервативная политика MPlayer по поддержанию старого кода, даже если он крайне низкого качества. В рамках проекта MPlayer2 уже проделана большая работа по чистке кодовой базы, но проект MPlayer2 развивается слишком медленно. Можно даже говорить о том, что на сегодня его развитие практически прекратилось.
Целью проекта MPV является создание продукта, в котором будет налажен непрерывный процесс переноса новшеств из репозиториев mplayer-svn и mplayer2, а также увеличена интенсивность разработки, в том числе за счет отказа от обратной совместимости с MPlayer. 

Из отличий от MPlayer2 можно выделить:

- Проведение чистки кодовой базы от устаревших компонентов.
- Интеграция средств для прямого проигрывания контента с популярных медиасайтов (например, "mpv https://www.youtube.com/watch?...");
- Улучшенная реализация вывода с использованием OpenGL;
- Возвращение средств для кодирования видео;
- Улучшенная система отображения информации на экране (OSD), основанная на использовании libass и полностью поддерживающая Unicode;
- Более лаконичный и не перегруженный информацией вывод статистики на консоль;
- Улучшенная поддержка cue-файлов;
- Поддержка вывода цветных субтитров;
- Расширенные возможности по созданию скриншотов и т.д.

Желающие протестировать MPV в Ubuntu 13.10 и 14.04 могут сделать это, установив его следующими командами в терминале:

sudo add-apt-repository ppa:mc3man/mpv-tests
sudo apt-get update
sudo apt-get install mpv



Хотя плеер MPV и является консольным, в отличие от Mplayer и Mplayer2, он практически не нуждается в графической оболочке (вроде SMPlayer), так как управление осуществляется посредством удобной авто-появляющейся прозрачной панели прямо на изображении. Разумеется поддерживаются все стандартные горячие клавиши Mplayer, например:
Клавиша Описание
p Пауза/воспроизведение.
Пробел Пауза/воспроизведение.
Стрелка влево Переход на 10 секунд назад.
Стрелка вправо Переход на 10 секунд вперед.
Стрелка вниз Переход на одну минуту назад.
Стрелка вверх Переход на одну минуту вперед.
< Перейти назад по списку воспроизведения.
> Перейти вперед по списку воспроизведения.
m Выключить звук.
0 Сделать погромче.
9 Сделать потише.
f Переход в полноэкранный режим или обратно.
o Показать статистику OSD.
j Переключение между возможными вариантами субтитров.
# (Shift+3) Переключение между возможными вариантами звуковой дорожки.
I (Shift+i) Показать название файла.
1, 2 Настройка контрастности.
3, 4 Настройка цветовой гаммы.

Проигрыватель после установки встраивается в контекстное меню ПКМ в файловом менеджере для всех мультимедиа-файлов (правый клик на файле).
Настройки основных параметров MPV можно указать в файле /home/имя-пользователя/.mpv/config (либо /home/имя-пользователя/.config/mpv/mpv.conf, в зависимости от версии). Лично я себе составил вот такой простенький конфиг, можете использовать его в качестве примера:

save-position-on-quit=yes
fullscreen=yes
hwdec=vdpau
ao=alsa


Обратите внимание на первую строку - запоминание позиции воспроизведения файла при выходе. "Голый" Mplayer, без оболочки, так не умеет! Более полный список параметров ЗДЕСЬ. Описывать все функции и возможности MPV в рамках данной статьи нет никакого смысла, по причине их абсолютной необъятности.

Всем любителям здорового минимализма.
Удачи в экспериментах  

26 комментариев :

  1. Спасибо. Однако как раз в консоли посмотреть видео пока не удаётся, в отличии от mplayer(2).

    ОтветитьУдалить
    Ответы
    1. В каком смысле не удается? Что mpv /path/to/file , что mplayer /path/to/file, работает одинаково - запускается окошко с видео. В чём проблема-то?

      Удалить
    2. Проблема в том что видео не проигрывается в самой консоли. В той которая по alt+F7 выход, а ctrl+alt+F2 вход. Работает mplayer -vo fbdev или fbdev2, а mpv -vo fbdev только звук.

      Удалить
    3. Мсье гурман :). Ну, возможно, в mpv этот самый fbdev просто по другому называется, в силу отказа от совместимости.

      Удалить
  2. Ubuntu 12.04
    sudo add-apt-repository ppa:cellstorm/test
    sudo apt-get update
    sudo apt-get install mpv

    ОтветитьУдалить
    Ответы
    1. Благодарствую, про этот репозиторий для Precise был не в курсе.

      Удалить
    2. Да, спасибо. Для 12.04 замаялся искать

      Удалить
  3. Не понятно зачем ТАК извращаться ? Просто любой воспроизводитель уже не "катит" ?Вы чё с ума посходили?

    ОтветитьУдалить
    Ответы
    1. Не понял, где Вы увидели извращение? Количество строковых опций и горячих клавиш пугает или что? Я Вас удивлю, у того же VLC их не меньше...

      Удалить
  4. Мне очень понравился - минималистичный и быстрый. 5!

    ОтветитьУдалить
  5. а регулировку громкости на колесико мышки вместо перемотки как повесить и Пауза/Воспроизведение на левую кнопку мыши? А так очено понравился

    ОтветитьУдалить
  6. Какой у mpv аналог mplayer -ss (начать воспроизведение с указанного времени)? Или плохо искал, или его нет :( Это жуткий недостаток, если выкинули опцию...

    ОтветитьУдалить
    Ответы
    1. Как ТАКОЕ можно выкинуть. Плохо искали. Я поискал в https://github.com/mpv-player/mpv/blob/master/DOCS/man/en/options.rst ровно минуту и вот:

      --start=

      Seek to given time position.

      The general format for absolute times is [[hh:]mm:]ss[.ms]. If the time is negated with -, the seek is relative from the end of the file.

      Удалить
    2. P.S. Раз уж зашла речь, укажу, что допускается также поиск позиции в % от длины (start=pp%) и по главам (start=#c).

      Удалить
    3. Спасибо за --start=, но работает только с локальным видео, видимо поломали при обновлении до 0.3.4.1 или сборке:
      [ffmpeg] ?: https protocol not found, recompile with openssl or gnutls enabled.
      [ffmpeg] [ffmpeg] Protocol not found. Make sure ffmpeg/Libav is compiled with networking support.
      Failed to open https://www.youtube.com/watch?v=fvbNAPu9ERo.

      Удалить
    4. Проверил. Да, действительно, ютюб не воспроизводит. В то время как в Manjaro Linux собранный из AUR mpv у меня отлично работает, кстати сказать. Думаю всё-таки, что причина не в извечно кривом Убунтовском ffmpeg, а в сборке mpv. Есть шанс, что в следующих версиях поправят.

      Удалить
  7. «управление осуществляется посредством удобной авто-появляющейся прозрачной панели прямо на изображении»
    У меня почему-то нет панели на изображении. Мышью всё переклацал, горячие клавиши попробовал.

    ОтветитьУдалить
    Ответы
    1. Сложно сказать. Я сейчас использую Arch, поэтому мне проверить не на чем :( Вообще, эта панель написана на языке lua, возможно, в системе каких-то lua-библиотек не хватает (забыли добавить в зависимости при сборке пакета mpv?). Попробуйте поискать в Synaptic методом тыка и доустановить вручную - гарантий никаких, но вдруг поможет?

      Удалить
    2. Спасибо за ответ.
      Всё проще. Добавил PPA, обновил программу — панелька появилась. В дефолтных репах была старая версия.

      Удалить
  8. А какой опцией его запускать сразу на всех виртуальных рабочих столах ?

    ОтветитьУдалить
  9. У вас там ошибка в адресе настроек конфигурационного файла, должно быть /home/имя-пользователя/.config/mpv/config

    ОтветитьУдалить
    Ответы
    1. Ошибки нет, расположение действительно поменялось, на момент написания статьи все было правильно, насколько я помню :) В man mpv и сейчас написано, что конфиг пользователя располагается в ~/.mpv/config. И кстати, если его там создать, он даже будет работать, должен, по крайней мере :). Но я наверное сделаю поправку в статье, спасибо.

      Удалить
  10. Ответы
    1. Это несколько улучшает качество изображения за счет включения цепочки высококачественных фильтров, но сильно влияет на производительность (будьте готовы к увеличению нагрузки на CPU и повышенному нагреву видеокарты). Эквивалентно следующим настройкам
      mpv --vo=opengl:scale=spline36:cscale=spline36:dscale=mitchell:dither-depth=auto:fancy-downscaling:sigmoid-upscaling:pbo:deband

      Удалить