AudionAudion

mpv — плеер и его конфиг

mpv.md

mpv — плеер и его конфиг

mpv в панели media — плеер для тех, кому нужен максимум качества картинки и аппаратного декодирования. Он не показывает своих кнопок и меню (управление — клавишами и экранными кнопками по наведению мыши), зато рендерит видео на уровне, до которого обычным плеерам далеко. Плата за это — конфигурируется mpv адски подробно. Поэтому в сборке он идёт уже с настроенным конфигом; этот документ разбирает, что в нём стоит и почему.

Как открыть

Кнопка ведёт не на сам mpv.exe, а на обёртку Run\mpv.cmd. Она делает две вещи: задаёт MPV_HOME (где лежит конфиг) и запускает mpv из папки того файла, что открывают — благодаря этому скриншоты ложатся рядом с видео (см. ниже).

Где живёт

(Run\Launcher.cmd → «Обновить программы»). Берётся сборка zhongfly/mpv-winbuild — свежий mpv под Windows x86_64.

обновление подменяет папку программы целиком и унесло бы конфиг. Обёртка указывает на него через MPV_HOME, поэтому в %APPDATA%\mpv mpv ничего не пишет — набор остаётся переносимым.

Что стоит в конфиге и почему

Всё это — штатные опции mpv из его официального руководства. Ничего необычного, только собранное воедино и с разумными значениями. Файл сам снабжён комментариями — здесь подробнее.

Аппаратное декодирование

vo=gpu-next
gpu-api=auto
hwdec=auto
hwdec-codecs=all

hwdec=auto перекладывает раскодирование видео с процессора на видеокарту — столько, сколько она умеет:

Что видеокарта не тянет, декодирует процессор — файл всё равно играет, просто без разгрузки GPU. vo=gpu-next — современный рендерер mpv на libplacebo, он и отвечает за качество вывода.

Качество вывода

profile=high-quality

Встроенный профиль mpv: включает лучшие алгоритмы масштабирования, сглаживание градиентов (дизеринг) и устранение полос на градиентах (дебандинг). Отдельно перечислять их незачем — профиль делает это сам.

Плавность движения

video-sync=display-resample
interpolation=yes
tscale=oversample

Фильм идёт в 24 кадра в секунду, монитор обновляется 60 или 144 раза — числа не делятся нацело, и на длинных панорамах картинка едет лёгкими микрорывками. Эти три строки синхронизируют видео с монитором и подмешивают промежуточные кадры, чтобы движение шло ровно.

Оговорка: это на вкус. Кому-то плавность нравится, кто-то видит в ней «эффект мыльной оперы», и она чуть нагружает видеокарту. Не нравится — уберите строку interpolation=yes.

Кэш

cache=yes
demuxer-max-bytes=256MiB
demuxer-readahead-secs=20

mpv читает вперёд примерно 20 секунд (до 256 МБ) и держит их в памяти. Смысл — для потоков по сети и файлов с медленных носителей (Wi-Fi, флешка, сетевая шара): перемотка мгновенная, при заминке чтения картинка не дёргается. Для локального SSD роли не играет и не мешает.

Звук и субтитры

alang=rus,ru,jpn,jp,eng,en
slang=rus,ru,eng,en

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

Скриншоты — рядом с файлом

screenshot-format=png
screenshot-high-bit-depth=yes
screenshot-template="%F-shot-%n"

Клавиша s сохраняет кадр в PNG с полной битностью (16 бит — важно для HDR и 10-битного видео). Файл появляется в папке того видео, что смотрите, с именем вида ИмяФильма-shot-1.png. Это работает вместе с обёрткой: она запускает mpv из папки открытого файла, а screenshot-directory намеренно не задан — mpv кладёт снимок в текущую папку.

Как поменять

Правится один файл — Ware\mpv-config\mpv.conf. Обычный текст. Две оговорки из опыта:

дописанный в конце строки со значением, — считает его частью значения;

без кавычек mpv.conf принимает % за служебный синтаксис.

Полный список всех опций mpv — в официальном руководстве. Горячие клавиши по умолчанию: s — скриншот, space — пауза, стрелки — перемотка, f — полный экран, 9/0 — громкость, [/] — скорость, v — субтитры вкл/выкл.

Все проекты