- Электрический блогнот
- мои заметки на полях
- mpv player — а как смотреть кино
- История
- Преимущества
- Установка
- Готовые пакеты
- Ubuntu
- CentOS
- Windows
- Android
- Сборка из исходников
- Просмотр фильма
- Использование CPU
- Использование GPU
- GUI для mpv
- gnome-mpv
- SMPlayer
- Выводы
- mpv (Русский)
- Contents
- Установка
- Графические оболочки
- Настройка
- Пример файла input.conf
- mpv и управление PulseAudio/ALSA mixer’ом с версии 0.18.1
- Скрипты
- Javascript
- mpv-stats
- mpv-webm
- Советы и рекомендации
- Аппаратное декодирование
- Высокое качество воспроизведения
- Воспроизведение с предыдущего места
- Звук слишком тихий
- Быстрое переключение между соотношениями сторон
- Отрисовка на корневом окне
- Использование как плагин браузера
- Использование mpv для проигрывания музыки
- Просмотр стримов
- Устранение проблем
- Начальная отладка
- Исправление отрывистого воспроизведения и разрыва кадров
- Проблемы с композитными менеджерами
- Невозможно изменить громкость
Электрический блогнот
мои заметки на полях
mpv player — а как смотреть кино
- тот к которому он привык;
- тот который он настроил под себя любимого;
- player, который не подведет.
И вопрос «а как смотреть кино» для него давно уже закрыт.
Но прогресс не стоит на месте, появляется новый софт, новые подходы к обработке изображений, старые библиотеки получают обновления. Поэтому предлагаю взглянуть на один opensource проект, который получил широкое распространение в узких кругах:-)
Встречайте, mpv media player.
История
История mpv player начинается с 2012 года, когда группа энтузиастов решила делать свой вариант проигрывателя медиафайлов. Но начали делать не с нуля, а «форкнули» великий и могучий MPlayer, который на тот момент был стандартом «de facto» для просмотра видюшек в мире бесплатного софта. Иными словами взяли исходные коды MPlayer и на основе их начали строить свое приложение. В мире открытого софта это обычная практика и ничего зазорного в этом нет. Главное соблюсти все формальности с лицензионными соглашениями.
Mpv активно развивается. Следующая команда показывает нам, что за 2 неполных месяца с начала года было сделано 248 commit’ов, что косвенно указывает на активную разработку. Самая свежая стабильная версия датируется 14/02/2018.
MPlayer уже давно не выпускал обновлений (последняя стабильная версия датируется 16/02/2016). В девелоперской ветке идут какие-то движения, но не так активно, как хотелось бы:
всего лишь 8 commit’ов.
Преимущества
Основным преимуществом mpv для меня являются:
- поддержка всевозможных видеоформатов (все кодеки берутся из FFmpeg);
- нет необходимости устанавливать приложение (скачал файл и сразу пользуйся);
- поддержка видеоускорителей;
- работа с Vaporsynth ( об этом позже);
- поддержка Linux и Windows;
- поддержка пользовательских скриптов (интерфейс, видеофильтры, статистика);
Ну и как бонус, внушающий доверия и придающий весомости и серьезности всему проекту это библиотеки. Mpv по сути является framework’ом поэтому пользователю предоставляется не только возможность скачать player и смотреть фильмы, но и воспользовавшись библиотеками написать свой media player (кстати, многие так и поступили). а потом продать его.
Установка
Установка MPV ничем не отличается от установки других медиаплейеров. Можно устанавливать готовые пакеты (Linux, Windows), а можно и собрать из исходников.
Готовые пакеты
Ubuntu
Установка в Ubuntu не вызывает никаких вопросов. Последовательность действий стандартная: добавили репо, проапдейтили, установили пакет.
CentOS
Те же действия и в CentOS:
Windows
MPV под Windows распространяется в виде исполняемого файла и нескольких вспомогательных библиотек. Установщика как такового нет. Ничего инсталлировать не нужно. Скачиваем необходимую сборку с этой страницы: https://mpv.srsfckn.biz/. И сразу же можно смотреть кино:
Просто запустите mpv.exe и в появившееся окно перетащите мышкой файл с фильмом.
Android
Mpv имеет свой порт под Android. Скачать приложение можно с Play Market:
Сборка из исходников
Тут самое интересное 🙂 MPV зависит от нескольких пакетов, например FFmpeg и libass. Прежде чем собрать MPV придется сначала собрать и установить в системе зависимости. А потом зависимости зависимостей и так далее. Это же Linux 🙂 Чтобы не возиться с этим можно скачать из сети сборочный скрипт, который сам все это сделает (ну почти все).
Но до скрипта, необходимо установить NVidia драйверы и SDK. Это только в том случае если вы хотите просматривать фильмы с использованием gpu.
Качаем самый свежий SDK для вашей платформы:
И затем запускаем инсталлятор, который все сделает сам:
Качаем скрипт с github, о котором я говорил выше и который поможет нам со сборкой mpv из исходников:
Скрипт сам «подтянет» необходимые зависимости, но что-то придется установить самостоятельно:
Переходим в папку mpv-build
И запускаем процесс сборки на 4-х ядрах:
Во время сборки скрипт выкачивает самые свежие версии библиотек, собирает их, а затем статически (что значит «статически» можно прочитать здесь) собирает mpv используя эти библиотеки.
Во время сборки mpv из исходников на экране появится вот такое summary, ваша задача, чтобы здесь не было красных строк (просто нужно доустановить пакеты). Дело в том, что mpv соберется и с красными строками, но какой-то функционал будет утерян.
Результатом работы скрипта будет один файл: mpv. Находится он здесь:
Размер файла внушительный, потому что все кодеки были «влинкованы» в player:
Просмотр фильма
Теперь самое интересное — а как смотреть кино?
Использование CPU
Для просмотра фильма с помощью mpv в командной строке достаточно набрать:
Но я рекомендую записывать log файл, чтобы в случае проблем можно было найти причину ошибки:
Если запускать mpv с настройками по умолчанию (без использования дополнительных ключей), то раскодированием видеопотока будет заниматься процессор. Если процессор маломощный то он может не справиться с decoding’ом и движение в кадре будет дерганным, появятся дропы «drops». Не справляясь с нахлынувшей на него информацией процессор начнет пропускать кадры. Например, в следующем примере видно, как Intel i-7 не может обработать все кадры 4k video и начал «drop»-ать. Вот, например, вывод команды mpv в консольке:
Записанный log файл показывает, что для раскодирования фидео был выбран центоальный CPU и строка «Using software decoding» прямо указывает на это:
Использование GPU
Mpv позволяет задействовать мощности графического ускорителя для просмотра фильма. Всю работу по раскодированию видео потока берет на себя графическое ядро. На системах со слабым центральным процессором (CPU) помощь gpu может оказаться существенной, особенно при просмотре 4K видео. Фактически можно избавиться от «drop»-ов, как в случае с использованием CPU.
В mpv за поддержку gpu отвечает ключ «hwdec». При «—hwdec=auto» mpv сам найдет оптимальный способ запуска на графическом ускорителе:
В output никаких «drop»-ов. А в логе строчка » Using hardware decoding (nvdec)» явно указывает на то, что мы задействовали нашу видеокарту дле раскодирования видеопотока:
Помимо просмотра лог файла есть еще один способ, что был задействован gpu. Для этого во время просмотра фильма запустите «nvidia-smi» с ключиком dmon. В колонке «dec» будет указан % нагрузки на gpu при раскодировании video:
GUI для mpv
На базе библиотеки mpv построено ряд media player’ов с привычной графичской оболочкой. Так что если вас не прельщает запуск player’а из консоли с кучей параметров, то есть привычный метод с GUI (окошечки, кменюшечки и кнопочки) 🙂
Простенький player с минимальным набором регулируемых опций. Подойдет начинающим пользователям. Инсталляционные пакеты для Linux и Windows можно найти здесь:
http://bakamplayer.u8sand.net/installation.php
gnome-mpv
Такой же лаконичный, как и предыдущий. Минимум настроек. Зато входит в стандартный репозитарий Ubuntu.
SMPlayer
По сравнению с предыдущими плеерами на базе библиотеки mpv этот просто монстр. Позволяет настраивать, как внешний (шкурки), так и продвинутые опции видеодекодера. Есть сборки для Linux и Windows:
Выводы
В этой статье мы познакомились с mpv player’ом — бесплатной программой для проигрывания видео и аудио контента. Рассмотрели способы установки под Linux и Windows. Собрали mpv player из исходников. Рассмотрели способ просмотра видео с помощью графического ускорителя.
Что не вошло в этот обзор:
- использование скриптов для настройки интерфейса и свойств видеодекодера;
- настройка продвинутых параметров mpv для графического ускорителя;
- расширенные опции при сборке из исходников;
- связка с Vaporsynth.
Источник
mpv (Русский)
Перевод этой статьи или раздела не отражает оригинальное содержание.
mpv — мультимедийный плеер, основанный на mplayer и mplayer2. Плеер поддерживает обширный набор видеоформатов, аудио- и видеокодеков и форматов субтитров. Всеобъемлющий (однако не исчерпывающий) список различий между mpv и вышеупомянутыми плеерами доступен тут.
Contents
Установка
Графические оболочки
mpv предоставляет элегантный интерфейс OSC, появляющийся при движении курсора. Однако, существуют также графические интерфейсы, рассчитанные на более обширную аудиторию:
- Baka MPlayer — мультимедийный плеер, основанный на libmpv. Qt 5.
https://github.com/u8sand/Baka-MPlayer/ || baka-mplayer-gitAUR
- bomi — мощный и лёгкий универсальный мультимедиа проигрыватель. (Qt 5).bomi был ранее известен как CMPlayer.
https://bomi-player.github.io/ || bomi-gitAUR , bomi-gitAUR
- Celluloid — простой интерфейс для mpv (GTK+ 3), бывший GNOME MPV.
https://gnome-mpv.github.io/ || celluloid-gitAUR replaced by celluloid
- Deepin Movie — видеоплеер для рабочего окружения Deepin на основе mpv.
https://www.deepin.org/en/original/deepin-movie/ || deepin-movie
- Kawaii-Player — аудио/видео и мультимедийный проигрыватель (на основе mpv) с возможностью трансляции с ПК на ПК (PC-to-PC), а также с функциями портативного медиасервера и сервера потокового вещания.
https://github.com/kanishka-linux/kawaii-player || kawaii-playerAUR
- KittehPlayer — YouTube-подобный видеоплеер на основе Qt, QML и mpv.
https://github.com/purringChaos/KittehPlayer || kittehplayer-gitAUR
- Media Player Classic Qute Theater — клон Media Player Classic, переписан на Qt и основан на mpv.
https://gitlab.com/mpc-qt/mpc-qt || mpc-qtAUR , mpc-qt-gitAUR
- mpv — очень простой графический интерфейс для MPV. Может быть запущен с помощью mpv —player-operation-mode=pseudo-gui .
https://mpv.io/ || mpv
- SMPlayer — мультимедийный плеер с дополнительным функционалом (CSS-темы, интеграция с YouTube и другое) (Qt 5). Может также использовать MPlayer в качестве альтернативы.
https://www.smplayer.info/ || smplayer
- xt7-player-mpv — графическая оболочка на Qt/Gambas для MPV, обладающая богатым набором настраиваемых опций, включая фильтры и драйверы, поддержкой плагинов LADSPA, а также управлением библиотекой или плейлистом, YouTube, интернет-радио, подкасты, DVB-T и многое другое.
https://github.com/kokoko3k/xt7-player-mpv || xt7-player-mpv-gitAUR
Настройка
Настройки mpv находятся в файлах mpv.conf (общие), input.conf (сочетания клавиш) и lua-settings/osc.conf (наэкранное меню). Полный список параметров доступен в mpv(1) или GitHub docs. Если не установлена переменная окружения XDG_CONFIG_HOME , будут использоваться файлы настроек пользователя, расположенные в каталоге
/.config/mpv . Системные файлы настроек располагаются в /etc/mpv .
Пример файла input.conf
Скопировав следующее в
/.config/mpv/input.conf , можно добавить ряд полезных сочетаний клавиш в mpv, таких как поворот видео на 90 градусов, масштабирование и панорамирование.
mpv и управление PulseAudio/ALSA mixer’ом с версии 0.18.1
Данная опция применима только если вы используете pulseaudio с mpv ( -ao=pulse или ao=pulse в mpv.conf ) или если вы хотите управлять громкостью ALSA mixer с помощью mpv.
Добавьте следующее в
/.config/mpv/input.conf , чтобы изменять громкость приложения в PulseAudio / ALSA посредством клавиш в mpv (и наоборот):
Опционально измените клавиши громкости выше на любые другие.
Скрипты
mpv поддерживает большое количество скриптов, которые расширяют его функциональность. В нем даже есть внутренние сочетания клавиш для Lua и Javascript (добавленные недавно).
Чтобы установить скрипты, поместите их в папку
/.config/mpv/scripts/ (возможно, ее нужно будет сначала создать), после чего они будут автоматически загружены при запуске mpv (это поведение может быть изменено в настройках). Некоторые скрипты поставляются со своими собственными инструкциями по установке и настройке, обращайте на это внимание. Какие-то скрипты могут быть старыми, сломанными или уже не поддерживаться.
Javascript
В связи с тем, что поддержка Javascript появилась относительно недавно, скриптов еще не очень много, но существует документация для всех, кто заинтересован создать свой.
Скриптов на Lua для mpv достаточно много. Если хотите написать свой, соответствующая документация может быть найдена здесь.
mpv-stats
mpv-stats (или просто stats) это Lua-скрипт, который выводит большое количество текущей статистики, показывающей состояние работы mpv в момент воспроизведения. Он очень полезен, чтобы убедиться, что ваше оборудование справляется с настройками, и для сравнения различных конфигураций. Т.к. он находится в активной разработке, вам может понадобиться установить mpv-git AUR , чтобы использовать его.
mpv-webm
mpv-webm (или просто webm) это очень простой в использовании Lua-скрипт, который позволяет создавать webm ролики во время просмотра видео. Он многофункционален и не имеет никаких дополнительных зависимостей (полностью полагается на mpv).
Советы и рекомендации
Аппаратное декодирование
В отличие от mplayer и mplayer2, mpv имеет встроенную поддержку VA-API и VDPAU. Чтобы указать способ декодирования, запустите mpv с опцией —hwdec=’метод’ . Полный список всех доступных методов вы найдете в man-странице mpv(1) , поискав описание опции —hwdec= . Чтобы не указывать метод при каждом запуске mpv, добавьте опцию hwdec=’метод’ в ваш файл настроек.
Когда используется аппаратное декодирование, видеовывод (параметр —vo=’драйвер’ ) должен быть равен opengl или opengl-hq (или vdpau , если указан hwdec=vdpau ).
Если аппаратное декодирование недоступно, mpv автоматически переключится на программное декодирование.
Аппаратное декодирование включено по умолчанию для кодеков h264, vc1, wmv3, hevc, mpeg2video and vp9. Однако, можно указать кодеки вручную (например, —hwdec-codecs=h264,mpeg2video ) или включить аппаратное декодирование для всех кодеков ( —hwdec-codecs=all ).
Подробную информацию вы можете найти на страницах options.rst и vo.rst.
Высокое качество воспроизведения
Профиль opengl-hq это набор настроек, обеспечивающий высокое качество видео. Он использует видеодрайвер OpenGL и включает различные опции, избранные разработчиками mpv. Чтобы использовать его, укажите его в файле конфигурации.
Этот профиль включает фильтр deband , который значительно уменьшает количество видимых артефактов, но незначительно размывает некоторые мелкие детали. На практике это чаще всего повышает качество — единственной причиной его отключения может быть производительность.
Если он приводит к низкой производительности, вы можете легко его отключить.
Профиль opengl-hq по умолчанию использует фильтр масштабирования spline36 , обеспечивая быстродействие и среднее качество видео. Для наилучшего качества стоит использовать ewa_lanczossharp , если ваше оборудование достаточно мощное.
Воспроизведение с предыдущего места
Стандартной комбинацией клавиш для выхода из mpv с сохранением текущей позиции является Shift+q . Это можно изменить, добавив строку quit_watch_later в файл настроек сочетаний клавиш.
Чтобы всегда сохранять текущую позицию при выходе, запустите mpv с опцией —save-position-on-quit или добавьте save-position-on-quit в файл конфигурации.
Звук слишком тихий
Установите параметр softvol-max=значение в вашем файле настроек на желаемый уровень, например softvol-max=600 . Дополнительно (или вместо этого), вы можете воспользоваться компрессором аудиосигнала с af=acompressor .
Быстрое переключение между соотношениями сторон
Начиная с версии 0.8.0, вы можете переключаться между соотношениями сторон, используя Shift+a .
Альтернативно, добавьте следующую строку в ваш файл input.conf :
Теперь вы cможете переключаться между перечисленными соотношениями сторон по нажатию F2 .
Отрисовка на корневом окне
Запустите mpv с опцией —wid=0 файл.mp4 . Таким образом mpv будет отрисован в фоне экрана (окне с идентификатором 0).
Использование как плагин браузера
С помощью mozplugger AUR mpv можно использовать для воспроизведения видео в поддерживаемых браузерах. Инструкции по настройке смотрите на странице Browser plugins#MozPlugger. Плагин в связке с пользовательским скриптом ViewTube позволяет использовать mpv для просмотра видео на различных сайтах, заменяя интегрированный в сайт плеер.
Использование mpv для проигрывания музыки
Разработка скриптов Lua в mpv по состоянию на 30 ноября 2014 не имеет формальной документации, но есть примеры в TOOLS/lua из репозитория mpv. А в этой статье (англ.) представлен скрипт music.lua, в котором показано, как при помощи скриптов добавить функциональность в mpv, которая делает его удобнее в качестве проигрывателя музыки.
Просмотр стримов
Устранение проблем
Начальная отладка
Если у вас возникают проблемы с воспроизведением в mpv (или он совсем не работает), то первые три вещи, которые вы должны сделать, это:
- Запустите mpv из командной строки. Там появится сообщение об ошибке.
$ mpv video.mkv - Проанализируйте файл журнала mpv. В нем может быть тяжело разобраться, но если что-то сломалось, там вы сможете это увидеть.
$ mpv —log-file=./log video.mkv - Запустите mpv со стандартными настройками. Если воспроизведение заработает, то проблема где-то в вашем файле конфигурации (возможно, ваше оборудование недостаточно мощное для таких настроек).
$ mpv —no-config video.mkv
Если mpv запускается, но не работает достаточно хорошо, то четвертая вещь, на которую стоит обратить внимание — установить скрипт mpv-stats и использовать его для отладки работы плеера.
Исправление отрывистого воспроизведения и разрыва кадров
По умолчанию mpv использует настройки вывода OpenGL на аппаратном обеспечении, которое их поддерживает. В таких случаях, как попытка воспроизведения видео на 4K-дисплее с использованием карты Intel HD4XXX или аналогичной, вы обнаружите, что воспроизведение видео отрывистое, вплоть до того, что местами может останавливаться совсем, и с разрывами кадров при использовании любых параметров opengl. Если у вас возникают какие-либо из этих проблем, использование видеовывода XV (XVideo) может помочь:
Это VO устарело и вызовет проблемы в последних версиях mpv. В частности, наэкранное меню может выглядеть размытым.
Можно увеличить производительность воспроизведения еще больше (особенно на более слабом оборудовании), но в большинстве случаев это значительно снижает качество видео.
Следующие параметры можно попробовать, чтобы улучшить производительность воспроизведения:
Проблемы с композитными менеджерами
Композитные оконные менеджеры, такие как KWin или Mutter, могут вызвать проблемы в плавности воспроизведения. В таких случаях можно установить x11-bypass-compositor=yes , чтобы mpv также отключил композитинг окон при воспроизведении в оконном режиме (если поддерживается композитным менеджером).
При использовании KWin и аппаратного декодирования вы также можете установить x11-bypass-compositor=no , чтобы оставить композитинг включенным в полноэкранном режиме, так как повторное включение композитинга после выхода из полноэкранного режима может приводить к зависанию в течение определенного периода времени.
Невозможно изменить громкость
Вращайте колесико мыши над значком громкости.
Источник