Проигрыватель MPV - новый перспективный форк Mplayer и Mplayer2. Bomi — мощный медиаплеер на базе mpv

Описание

Проектом MPV ведётся разработка нового открытого видеоплеера, построенного на основе ответвления от кодовой базы MPlayer2. Код проекта распространяется под лицензией GPLv3. «Из коробки» поддерживает аппаратное ускорение видео с помощью vdpau и vaapi.

Установка MPV с графическим интерфейсом

Только для Ubuntu 12.10 и новее

Из ppa-репозитория можно установить версию с графическим интерфейсом . Для установки достаточно добавить ppa в список репозиториев:

sudo add-apt-repository ppa:mc3man/ mpv-tests

И установить из него плеер:

sudo apt-get update && sudo apt-get install mpv

Проигрывание видео из командной сроки осуществляется командой:

Mpv "имя видеофайла"

При отсуствии файла конфигурации - создайте его:

touch ~/ .config/ mpv/ config

    Для видеокарт Nvidia и AMD со свободным драйвером:

save-position-on-quit=yes fullscreen =yes #Выбор оптимального декодера hwdec =vdpau subcp =enca:ru:utf8

    Для видеокарт Intel:

#Запоминание позиции при выходе save-position-on-quit=yes #Запуск проигрывания в полноэкранном режиме fullscreen =yes #Выбор оптимального декодера hwdec =vaapi #Исправление проблемы с Windows-кодировкой субтитров subcp =enca:ru:utf8

MPV и H.265 на проприетарном драйвере Nvidia

Так как на момент последнего редактирования этого пункта (9 мая 2017 года) vdpau даже на самых новых видеокартах не умеет работать с профилями H.265, отличными от HEVC_MAIN, то для проигрывания таких файлов при помощи видеокарты можно использовать cuda-декодер. Для этого можно запускать mpv так

Mpv "имя файла" -hwdec =cuda

Или даже прописать в конфиг

hwdec =cuda

Установка плеером по умолчанию

Для установки MPV плеером по умолчанию нужно перейти в Параметры системы → Сведения о системе → Приложения по умолчанию , а затем указать для Видео плеер MPV .

Основные сочетания клавиш (по умолчанию)

Перемотка

    ← → - Перемотка назад/вперед на 5 секунд.

    Shift + ← Shift + → - Перемотка назад/вперед на 1 секунду.

    ↓ - Перемотка назад/вперед на 1 минуту.

    Shift + Shift + ↓ - Перемотка назад/вперед на 5 секунд.

Субтитры

    Ctrl + ← Ctrl + → - Предыдущие/следующие субтитры. Подлежит некоторым ограничениям и иногда может не работать.

    V - Включает/выключает субтитры.

    J / J - Прокрутка доступных субтитров.

    X Z - Регулировка задержки субтитров на +/- 0.1 секунду.

Скорость воспроизведения

    [ - Уменьшает скорость воспроизведения на 10%.

    ] - Увеличивает скорость воспроизведения на 10%.

    { - Уменьшает скорость воспроизведения в 2 раза.

    } - Увеличивает скорость воспроизведения в 2 раза.

    ← Backspace - Устанавливает нормальную скорость воспроизведения.

Управление воспроизведением

    Шаг вперед. Однократное нажатие приостановит воспроизведение. Последующие нажатия будут проигрывать по одному следующему кадру.

    Шаг назад. Однократное нажатие приостановит воспроизведение. Последующие нажатия будут проигрывать по одному предыдущему кадру.

    < > - Перемещение назад/вперёд по списку воспроизведения.

    ↵ Enter - Следующая позиция в списке воспроизведения.

    P / ␣ Space - Пауза/возобновление воспроизведения.

    Q - Остановка воспроизведения и выход.

    Q - Как q , но сохраняет текущую позицию. При повторном открытии файла воспроизведение по возможности будет начато с того места, где была нажата Q .

Управление звуком

Причиной создания форка послужила , помимо прочего, излишне консервативная политика 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 в рамках данной статьи нет никакого смысла, по причине их абсолютной необъятности.

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

SMPlayer теперь может работать как с MPlayer, так и с MPV. Что такое MPlayer и МPV?

SMPlayer не может самостоятельно проигрывать файлы. Для этого ему нужен движок воспроизведения . До сих пор SMPlayer использовал только MPlayer в качестве движка воспроизведения. Но теперь можно использовать и MPV.

Что такое MPV?

mpv - это плеер с новыми возможностями и исправлениями, основанный на MPlayer.

Наиболее интересные возможности:

  • Возможность отображать пару субтитров одновременно
  • Проигрывание видео с сайтов YouTube, DailyMotion, Vimeo, Vevo и многих других.
  • Поддержка линковки в MKV
  • Точная перемотка
  • Встроенная поддержка VAAPI и VDA. Улучшенный VDPAU
  • Улучшеная возможность создания скриншотов.
  • Кадр назад

Как установить MPV

Windows

Устанощик для Windows позволяет выбрать движок воспроизведения для установки. Просто кликните по "Движку воспроизведения" и выберите MPV.

Linux

Посетите http://mpv.io/installation/ , чтобы получить последнюю версию MPV для вашего дистрибутива.
Пользователи Ubuntu 12.04 (Precise) и 14.04 (Trusty) могут найти MPV 0.15.0 в


Для просмотра фильмов на компьютере у каждого пользователя есть свой любимый player:
  • тот к которому он привык;
  • тот который он настроил под себя любимого;
  • player, который не подведет.

И вопрос «а как смотреть кино» для него давно уже закрыт.
Но прогресс не стоит на месте, появляется новый софт, новые подходы к обработке изображений, старые библиотеки получают обновления. Поэтому предлагаю взглянуть на один opensource проект, который получил широкое распространение в узких кругах:-)

Встречайте, mpv media player .

История

История mpv player начинается с 2012 года, когда группа энтузиастов решила делать свой вариант проигрывателя медиафайлов. Но начали делать не с нуля, а «форкнули» великий и могучий MPlayer , который на тот момент был стандартом «de facto» для просмотра видюшек в мире бесплатного софта. Иными словами взяли исходные коды MPlayer и на основе их начали строить свое приложение. В мире открытого софта это обычная практика и ничего зазорного в этом нет. Главное соблюсти все формальности с лицензионными соглашениями.

Mpv активно развивается. Следующая команда показывает нам, что за 2 неполных месяца с начала года было сделано 248 commit’ов, что косвенно указывает на активную разработку. Самая свежая стабильная версия датируется 14/02/2018.

Git clone https://github.com/mpv-player/mpv.git git log --since="2018-01-01" | egrep "Author:" | wc -l

MPlayer уже давно не выпускал обновлений (последняя стабильная версия датируется 16/02/2016). В девелоперской ветке идут какие-то движения, но не так активно, как хотелось бы:

Svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer svn log --limit 100 | egrep 2018 | wc -l 8 commit"ов

всего лишь 8 commit’ов.

Преимущества

Основным преимуществом mpv для меня являются:

  • поддержка всевозможных видеоформатов (все кодеки берутся из );
  • нет необходимости устанавливать приложение (скачал файл и сразу пользуйся);
  • поддержка видеоускорителей;
  • работа с Vaporsynth (об этом позже);
  • поддержка Linux и Windows;
  • поддержка пользовательских скриптов (интерфейс, видеофильтры, статистика);

Ну и как бонус, внушающий доверия и придающий весомости и серьезности всему проекту это библиотеки. Mpv по сути является framework’ом поэтому пользователю предоставляется не только возможность скачать player и смотреть фильмы, но и воспользовавшись библиотеками написать свой media player (кстати, многие так и поступили). а потом продать его.

Установка

Установка MPV ничем не отличается от установки других медиаплейеров. Можно устанавливать готовые пакеты (Linux, Windows), а можно и собрать из исходников.

Готовые пакеты

Ubuntu

Установка в Ubuntu не вызывает никаких вопросов. Последовательность действий стандартная: добавили репо, проапдейтили, установили пакет.

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

CentOS

Те же действия и в CentOS:

Yum -y install http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm yum update yum install vlc smplayer ffmpeg mpv

Windows

MPV под Windows распространяется в виде исполняемого файла и нескольких вспомогательных библиотек. Установщика как такового нет. Ничего инсталлировать не нужно. Скачиваем необходимую сборку с этой страницы: https://mpv.srsfckn.biz/. И сразу же можно смотреть кино:

Просто запустите mpv.exe и в появившееся окно перетащите мышкой файл с фильмом.

Android

Mpv имеет свой порт под Android. Скачать приложение можно с Play Market:

https://play.google.com/store/apps/details?id=is.xyz.mpv&hl=ru

Сборка из исходников

Тут самое интересное 🙂 MPV зависит от нескольких пакетов, например FFmpeg и libass. Прежде чем собрать MPV придется сначала собрать и установить в системе зависимости. А потом зависимости зависимостей и так далее. Это же Linux 🙂 Чтобы не возиться с этим можно скачать из сети сборочный скрипт, который сам все это сделает (ну почти все).

Но до скрипта, необходимо установить NVidia драйверы и SDK. Это только в том случае если вы хотите просматривать фильмы с использованием gpu.

Качаем самый свежий SDK для вашей платформы:

https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64

И затем запускаем инсталлятор, который все сделает сам:

Cuda_9.1.85_387.26_linux.run

Качаем скрипт с github, о котором я говорил выше и который поможет нам со сборкой mpv из исходников:

Git clone https://github.com/mpv-player/mpv-build.git

Скрипт сам «подтянет» необходимые зависимости, но что-то придется установить самостоятельно:

Sudo apt-get install autoconf automake libfribidi-dev libasound2-dev libegl1-mesa-dev libfontconfig-dev libfreetype6-dev libfribidi-dev libgl1-mesa-dev libtool libx11-dev libxext-dev libxinerama-dev libxrandr-dev libxv-dev pkg-config python x11proto-core-dev nasm yasm libxss-dev

Переходим в папку mpv-build

Cd mpv-build

И запускаем процесс сборки на 4-х ядрах:

./rebuild -j4

Во время сборки скрипт выкачивает самые свежие версии библиотек, собирает их, а затем статически (что значит «статически» можно прочитать ) собирает mpv используя эти библиотеки.

Во время сборки mpv из исходников на экране появится вот такое summary, ваша задача, чтобы здесь не было красных строк (просто нужно доустановить пакеты). Дело в том, что mpv соберется и с красными строками, но какой-то функционал будет утерян.

Результатом работы скрипта будет один файл: mpv. Находится он здесь:

Cd mpv/build

Размер файла внушительный, потому что все кодеки были «влинкованы» в player:

Просмотр фильма

Теперь самое интересное — а как смотреть кино?

Использование CPU

Для просмотра фильма с помощью mpv в командной строке достаточно набрать:

./mpv ~/sample4kvideo.mp4 --log-file mpv.log

Если запускать mpv с настройками по умолчанию (без использования дополнительных ключей), то раскодированием видеопотока будет заниматься процессор. Если процессор маломощный то он может не справиться с decoding’ом и движение в кадре будет дерганным, появятся дропы «drops». Не справляясь с нахлынувшей на него информацией процессор начнет пропускать кадры. Например, в следующем примере видно, как Intel i-7 не может обработать все кадры 4k video и начал «drop»-ать. Вот, например, вывод команды mpv в консольке:

$ ./mpv ~/sample4kvideo.mp4 --log-file mpv.log can"t find selected font provider AV: 00:00:24 / 00:01:47 (23%) A-V: 0.421 Dropped: 8 Audio/Video desynchronisation detected! Possible reasons include too slow hardware, temporary CPU spikes, broken drivers, and broken files. Audio position will not match to the video (see A-V status field). AV: 00:00:33 / 00:01:47 (31%) A-V: 0.403 Dropped: 22 Audio/Video desynchronisation detected! Possible reasons include too slow hardware, temporary CPU spikes, broken drivers, and broken files. Audio position will not match to the video (see A-V status field). AV: 00:00:34 / 00:01:47 (31%) A-V: 0.573 Dropped: 28

Записанный log файл показывает, что для раскодирования фидео был выбран центоальный CPU и строка «Using software decoding» прямо указывает на это:

[ 0.149][v] Using software decoding. [ 0.149][v] Detected 8 logical cores. [ 0.149][v] Requesting 9 threads for decoding. [ 0.151][v] Selected codec: h264 (H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10)

Использование GPU

Mpv позволяет задействовать мощности графического ускорителя для просмотра фильма. Всю работу по раскодированию видео потока берет на себя графическое ядро. На системах со слабым центральным процессором (CPU) помощь gpu может оказаться существенной, особенно при просмотре 4K видео. Фактически можно избавиться от «drop»-ов, как в случае с использованием CPU.

В mpv за поддержку gpu отвечает ключ «hwdec». При «—hwdec=auto» mpv сам найдет оптимальный способ запуска на графическом ускорителе:

./mpv --hwdec=auto --vo=opengl ~/sample4kvideo.mp4 --log-file mpv.log

В output никаких «drop»-ов. А в логе строчка » Using hardware decoding (nvdec)» явно указывает на то, что мы задействовали нашу видеокарту дле раскодирования видеопотока:

[ 0.287][i] Using hardware decoding (nvdec). [ 0.287][v] Decoder format: 3840x2160 cuda bt.709/bt.709/bt.1886/limited/auto CL=mpeg2/4/h264 (auto 0.000000/0.000000/0.000000) [ 0.287][v] 3840x2160 cuda bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264

Помимо просмотра лог файла есть еще один способ, что был задействован gpu. Для этого во время просмотра фильма запустите «nvidia-smi» с ключиком dmon. В колонке «dec» будет указан % нагрузки на gpu при раскодировании video:

GUI для mpv

На базе библиотеки mpv построено ряд media player’ов с привычной графичской оболочкой. Так что если вас не прельщает запуск player’а из консоли с кучей параметров, то есть привычный метод с GUI (окошечки, кменюшечки и кнопочки) 🙂

Baka

gnome-mpv

Такой же лаконичный, как и предыдущий. Минимум настроек. Зато входит в стандартный репозитарий Ubuntu.

Sudo apt-get update sudo apt-get install gnome-mpv

SMPlayer

По сравнению с предыдущими плеерами на базе библиотеки mpv этот просто монстр. Позволяет настраивать, как внешний (шкурки), так и продвинутые опции видеодекодера. Есть сборки для Linux и Windows:

https://www.smplayer.info/en/downloads

Выводы

В этой статье мы познакомились с mpv player’ом — бесплатной программой для проигрывания видео и аудио контента. Рассмотрели способы установки под Linux и Windows. Собрали mpv player из исходников. Рассмотрели способ просмотра видео с помощью графического ускорителя.

Что не вошло в этот обзор:

  • использование скриптов для настройки интерфейса и свойств видеодекодера;
  • настройка продвинутых параметров mpv для графического ускорителя;
  • расширенные опции при сборке из исходников;
  • связка с Vaporsynth.