Видео плеер mpv

2023-03-21

linux

Очень классный и минималистичный, а также кастомизируемый видеоплеер

Скачаваем

sudo pacman -S mpv

Можно запустить тест который будет показывать за что отвечает та или иная клавиша если вы её нажмете в mpv. Просто запустите mpv с данными параметрами

mpv --input-test --force-window --idle

#  Минимально базовая настройка

  1. Сохранять позицию воспроизведение при выходе

    В mpv.conf прописываем

    # Сохранить позицию воспроизведение при выходе
    # Сохранять в директорию
    save-position-on-quit
    watch-later-directory=~/.config/mpv/watch_later
    
  2. Управление громкостью колёсиком мыши

    В input.conf прописываем

    AXIS_UP add volume 3
    AXIS_DOWN add volume -3
    

#  Разное

  1. Показать статистику видео

    Нажмите i чтобы она на секунду появилась или нажмите Shift + i чтобы включить на постоянку

    image

#  Запускать видео из браузера в mpv

ff2mpv - это полезное расширение для (Firefox, Chromium, Brave и т.д), позволяет легко запускать видео из браузера в mpv

Устанавливаем расширение на ваш браузер

Клонируем репо и выполняем конечную установку для вашего браузера

git clone https://github.com/woodruffw/ff2mpv
cd ff2mpv

./install.sh firefox или ./install.sh chromium

Готово! Расширение теперь работает

#  Просмотр онлайн торренты с озвучкой и оформленными субтитрами вместе через mpv

Цель этого метода:

Сделать так чтобы можно было просматривать онлайн торренты с 100gb+ с полным комфортом (если ваш инет это позволяет). Также плюсом этого метода заключается в том что нет необходимости качать видеофрагменты на диск. Качать можно только Сабы и Озвучку на диск, что является жирным плюсом

ВАЖНО: в mpv.conf должно быть прописано

# Автоматически подхватывать папку с аудио дорожкой при совпадении с названием видеоматериала-
audio-file-auto=fuzzy

# Автоматически подхватывать папку с субтитрами при совпадении с названием видеоматериала
sub-auto=fuzzy

Этапы:

  1. Первое что нужно сделать это скачать lua скрипт показанный в этом разделе
  2. Далее идём на любой трекер, находим BDRemux или Blue-Ray раздачу с высоким разрешением, с отдельными дорожками и сабами
  3. Качаем только отдельно субтитры и озвучку
  4. И копируем magnet ссылку
  5. После открываем терминал и вводим схоже с показанным

Вводим

mpv "magnet URL" -audio-file-paths="Путь к скачанной папке с озвучкой" -sub-file-paths="Путь к скачанной папке с субтитрами"

image

Как видно из этого output’а терминала (+) - значит что аудиодорожка и субтитры были добавлены

Если аудиодорожка не добавляется, попробуйте перекачать торрент с внешними дорожками и сабами

#  Специальные оформленные шрифты

До

image

После

image

Они обычно вот так поставляются в торрент раздачах

image

Создаёте папку fonts (соблюдая регистр)

mkdir ~/.config/mpv/fonts

И закидываем всё из папки раздачи Fonts в ~/.config/mpv/fonts. Проверяем, всё должно сработать как показано на скринах До и После

К сожалению в mpv пока что нет похожей реализации как -audio-file-paths и -sub-file-paths

НО есть возможность с этим lua скриптом и версий mpv которая поддерживает опцию sub-fonts-dir (поддерживается только одна директория), если запустить на обычной версии mpv вылезает ошибка о несовместимости

[sub_fonts_dir_auto] This version of mpv does not support the sub-fonts-dir option

Возможно скоро появится такая опция

#  Самые полезные Lua скрипты для mpv

Эти скрипты очень продвинут наш плеер, делая его более функциональным

Создайте папку scripts

cd ~/.config/mpv
mkdir scripts

В папку scripts мы будем помещать наши скачанные lua скрипты

После установки скрипта, проверьте его работоспособность в терминале

Введите mpv [путь к видео] и жмите enter, и чекайте терминал

#  mpv_thumbnail_script.lua

mpv_thumbnail_script самый полезный, он отображает миниатюры на видео дорожке при перемещении курсора

Установка:

Скачиваем эти два файла и кидаем их в scripts

  • mpv_thumbnail_script_client_osc.lua
  • mpv_thumbnail_script_server.lua

Также необходимо в mpv.conf перевести пункт osc (ибо как на пикриле скрипт будет жаловаться)

osc=no

image

#  Ускорение процесса

Если у вас мощный проц и он многопоточный, то мы можем сделать наш скрипт ещё быстрее.

Сделайте 2 mpv_thumbnail_script_server но с цифрой в конце

image

Так мы увеличим скорость обработки миниатюр в видео

Готово!

image

#  fuzzydir.lua

fuzzydir это рекурсивный поиск путей звуковых дорожек и субтитров вместо ручного их прописывания путей для каждой папки

Если вам надоело постоянно указывать директорию внешних аудиодорожек и субтитров внутри которой присутствует множество разных, в конфиг файле mpv.conf это можно указать данными опциями

audio-file-paths="Sounds/AniLibria:Sounds/Crunchyroll:Sounds/Студийная Банда"
sub-file-paths="Subtitles/Anime Chap [ENG]:Subtitles/Crunchyroll:Subtitles/RikuSempaiStuff:Subtitles/YakuSub Studio"

Однако так лишь загромождает конфиг файл, и вводить это утомительно.

С данным скриптом закинутым в папку scripts можно просто добавить /** в конце

audio-file-paths="Sounds/**"
sub-file-paths="Subtitles/**"

И всё что в папке Sounds рекурсивно будет добавлено в ваш плеер

#  mpv-webtorrent-hook

mpv-webtorrent-hook позволяет таскать URL magnet прямо в mpv и воспроизводить их, плюсом также можно таскать .torrent файл прямо в mpv и воспроизводить его не скачивая. Внешние сабы и озвучка не подхватываются этим скриптом, только встроенные сабы и озвучка. Поэтому аниме не посмотреть

Установка

Качаем необходимые пакеты

yay -S webtorrent-cli xidel
sudo pacman -S jq

Клонируем репо в папку scripts

cd scripts
git clone https://github.com/noctuid/mpv-webtorrent-hook.git

Запускаю mpv

Копирую и таскаю URL magnet (или .torrent) прЯмо в окно mpv, после чего выполняем действия показанные выше

И всё работает ^_^

Некоторые замечания:

  • Бывает что при повторе mpv вылетает, хз с чем это связано но после ребута всё норм стало (либо не скачаны пакеты)
  • Также в этом скрипте можно добавить свои опции создав конфиг файл, для подробностями сюда

#  Смена директории кэша торрент файлов

Кэш автоматом будет удалятся когда плеер с webtorrent’ом открыт поэтому волноваться не стоит

Создаём конфиг файл и вставляем (я вписал свой hdd диск и всё в порядке)

nvim ~/.config/mpv/script-opts/webtorrent-hook.conf
# change download directory
download_directory=/media/webtorrentcache

#  sponsorblock.lua

sponsorblock всеми любимое расширение для браузеров по блокировке спонсор блоков теперь в mpv, только вот работает оно только только при новом воспроизведении

image

Клонируем репозиторий sponsorblock, вытаскиваем папку sponsorblock_shared и скрипт sponsorblock.lua переместив их в папку scripts

SponsorBlock работает как через терминал mpv <URL> так и простым перетаскиванием видео напрямую открыв mpv

#  youtube-quality.lua

mpv-youtube-quality выбирать качество youtube через mpv на ctrl+f

Установка:

#  autoload.lua

autoload позволяет запускать вместо одного медиафайла а разом несколько на очереди в текущей папке

Поддерживает:

  • Аудио
  • Видео
  • Картинки (фиг знает зачем)

В данном конфиге я убрал автозагрузку изображений отредактировав скрипт закоментировав данные строки

image

#  playlistmanager.lua

playlistmanager позволяет управлять плейлистом, воспроизводя треки из списка. Очень удобен при дополнительном использовании с mpv-webtorrent-hook

Просто копируем lua конфиг в scripts

Редактируем input.conf и вставляем для активации менеджера

# Бинды для playlistmanager.lua
TAB script-binding showplaylist

Нажимает TAB и управляем стрелками

#  reload.lua

reload Полезно когда онлайн-видео застряло во время буферизации или замедленного источника CDN, перезагрузка часто помогает. Этот скрипт обеспечивает автоматическую перезагрузку видео, у которых не было прогресса буфера для некоторого времени, сохраняя текущую позицию времени. Он также добавляет бинд Ctrl + r для перезагрузки видео вручную.

#  pause-indicator.lua

pause-indicator Дайт всплывающий индикатор паузы и воспроизведения по середине, как в ютубе

image