18 KiB
Описание
Настройки mpv
Навигация
- TODO
- Функционал
- Обрезка локальных видео
- Установка yt-dlp
- Скачивать и клипать онлайн видео и стримы
- Включение нескольких звуковых дорожек
- Скопировать данные о видео
- Установка ff2mpv
- Бинды стандартного mpv
- Остальные бинды
- Известные баги
TODO
- Функционал плейлиста, очереди и "смотреть позже"
- Смотреть торренты без скачивания
- Возможность копировать ссылку ютуба с таймкодом
- Мб сделать поддержку онлайн видео в simple-cut.lua, если будет желание и если это возможно
- Мб сделать отображение миниатюр онлайн видео, при наведении на таймлайн, из локального кеша, а не подгружая по 30 секунд каждый кадр из инета. Не знаю возможно ли это
Функционал
- Я использую тему uosc со своим дополнением, которое позволяет включать несколько звуковых дорожек разом
- Я написал свой скрипт обрезки локальных видео simple-cut.lua
- Настроен yt-dlp для просмотра онлайн видео с любого сайта, который поддерживается yt-dlp, используя куки браузера firefox. Так же позволяет ставить на паузу стримы, продолжая просмотр со старого места и перематывая стримы даже там, где это делать нельзя
- Используется скрипт
clipshot.lua
для создания скринов в буфер обмена при нажатииc
- Вместе с темой uosc используется
thumfast.lua
для миниатюр видео при наведении на таймлайн - Вместе с темой uosc используется
quality-menu.lua
для правильного выбора качества аудио и видео при просмотре онлайл видео - Если хочется открывать онлайн видео из браузера через mpv, то есть такое решение
- Есть возможность сохранять и перематывать лайв стримы и делать клипы онлайн видео
- Копировать в буфер обмена имя файла, путь, таймкод, текст субтитров, продолжительность видео, метаданные. Делается через
copyStuff.lua
simple-cut.lua
Скрипт для создания клипов. Чтоб можно было обрезать видео во время просмотра. Ниже бинды:
g
- установить начальный таймкод клипаh
- установить конечный таймкод клипаG
- установить начало видео в качестве начального таймкодаH
- установить конец видео в качестве конечного таймкодаCtrl+r
- создать клип в .mp4 форматеAlt+r
- создать клип с расширением и качеством исходного файла
yt-dlp
Из коробки он работать не будет. Чтоб работал, его надо установить следующим образом:
sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
sudo chmod a+rx /usr/local/bin/yt-dlp
streamsave.lua
Это плагин, который позволяет записывать данные из кеша на диск, что позволяет скачивать онлайн видео и стримы. Например, при просмотре стрима на твиче нельзя перематывать этот самый стрим. Но через mpv он кешируется и ту часть, которая была просмотрена, можно перематывать, клипать и скачивать себе на пк даже в том случае, если на самом твиче не сохраняются записи и запрещено делать клипы.
Изначально в mpv весь кеш сохраняется в оперативной памяти, что приводит к большой нагрузке на пк. Я включил настройку, которая выгружает весь кеш на диск. Не знаю будут ли с этим проблемы на HDD, но на SSD всё работает отлично и сам плеер потребляет очень мало ресурсов. Чтоб сохранить видео, скрипту надо указать начальную и конечную точки, таймкоды, что именно надо сохранить. Я выбрал минимальную версию скрипта streamsave.lua
, у которого есть три вида указания таймкодов:
continuous
- Устанавливает начальную точку в ноль (начало видео), но конечная точка не ставится. Он будет бесконечно записывать в файл, пока видео не закончится или пока не будет закрыт плеер, или пока не будет нажат бинд остановки записи кеша на диск. Что это значит? Если хочется сохранить всё видео/стрим целиком, то надо использовать этот вариант, ведь он записывает видео от начала и до тех пор, пока есть что прогружать. Например, если смотреть стрим, он будет его записывать до тех пор, пока плеер грузит этот стрим (можно даже ставить на паузу, кешировать новые данные он всёравно продолжит)current
- Устанавливает начальную точку в ноль, а конечную точку на текущую позицию воспроизведения. Если хочется сохранить видео от начала и до просмотренного момента, то надо использовать этот вариантab
- Это обычное обрезание видео. При нажатии на кнопкуl
ставится начальная точка. При втором нажатии на кнопкуl
ставится конечная точка. Обе эти точки будет видно на таймлайне и при просмотре видео, скорее всего, будет воспроизводиться только этот кусок на репите, чтоб можно было увидеть именно этот отрывок. Если нажатьl
третий раз, то все таймкоды сбросятся и надо будет клипать по новой
Среди этих трёх вариантов, в стоке используется первый. Все три варианта, описанные выше, ничего не записывают на диск. Они лишь указывает начальную и конечную точки для записи видео в будущем. А чтоб именно начать запись на диск, надо использовать бинды, которые я опишу ниже:
Ctrl+z
- Начать запись на диск. Если выбран режимab
, то он сделает клип и закончит на этом. Если выбран режимcontinuous
, то записы будет идти "бесконечно", как было сказано в описании работы этого режимаAlt+z
- Переключать режим записи на диск. Речь про те три режима, которые описаны над биндамиCtrl+x
- Останавливает запись кеша на диск для режимаcontinuous
. Например, если я вижу, что онлайн видео, которое я смотрю, целиком закешировалось (это видно по цвету таймлайна), и я хочу скачать это видео, то я жмуCtrl+z
, чтоб начать запись, а потом, через несколько секунд, жмуCtrl+x
, чтоб запись закончить и у меня был готовый локальный файл до того, как я закрою плеер или закончу смотреть видеоl
- Ставит начальные и конечные точки для режимаab
Alt+x
- Понятия не имею что оно делает, по описанию не понял. Вот оригинальное описание того, что делает этот бинд - aligns loop points to keyframes (pressing again will restore the initial loop points)
Включение нескольких звуковых дорожек
Я немного изменил menus.lua
в визуальной теме uosc
. Теперь там появилась возможность включать несколько звуковых дорожек разом. Израдка это может вызывать визуальные артефакты видеоряда в течении 1-2 секунд. Не знаю от чего это зависит. Вот как это работает:
- Если просто нажимать на звуковую дорожку в меню выбора аудио, то она будет переключаться. Если была активна - выключится, если была не активна - включится
- Если хочется не переключать, а активировать одну конкретную звуковую дорожку, то на неё надо нажать с зажатым
Ctrl
- Если хочется выделить несколько звуковых дорожек, или быстро их переключать, но бесит, что меню выбора вечно закрывается, то просто выбирай дорожки с зажатым
Shift
. Тогда меню выбора звуковой дорожки не будет закрываться при выборе нового элемента
copyStuff.lua
Бинды для копирования данных о видео:
Ctrl + f
- Имя файла или ссылка на видеоCtrl + p
- Полный путь до файлаCtrl + t
- Текущий таймкод видео, который ты смотришь (HH:MM:SS.MS)Ctrl + s
- Текущий текст субтитровCtrl + d
- Продолжительность видеоCtrl + m
- Метаданные видео
Установка ff2mpv
Сначала это расширение в браузер ставишь. Потом надо гит клон в любой каталог:
git clone https://github.com/woodruffw/ff2mpv
cd ff2mpv
После этого надо активировать их установочный скрипт с нужными параметрами запуска.
./install.sh chromium
./install.sh chrome
./install.sh brave
./install.sh edge
./install.sh firefox
Если в списке нет нужного браузера, то надо ставить для кастом браузера, с указанием того, на чём он основан и с путём:
./install.sh custom-chromium $HOME/.config/chromium
./install.sh custom-firefox $HOME/.mozilla
В моём случае надо было указать команду так:
./install.sh custom-firefox $HOME/.librewolf
Бинды стандартного mpv
Тут будут бинды для стандартного mpv плеера, которые я чаще всего использую. Полный список биндов можно увидеть тут
Бинд | Действие |
---|---|
[ and ] |
Плюс минус 10% скорости видео |
{ and } |
В два раза ускорить/замедлить видео |
Backspace |
Сбросить скорость видео |
q |
Закрыть плеер |
Лево и Право |
Перемотка на 5 секунд. С шифтом на 1 секунду |
Низ и Верх |
Перемотка на минуту. С шифтом на 5 секунд |
p или Пробел или ПКМ |
Пауза |
. |
Один кадр вперёд |
, |
Один кадр назад |
Скрол вертикальный |
Редачить громкость |
Скрол горизонтальный |
Перемотка видео |
f |
Фулскрин |
Esc |
Выйти из фулскрина |
s |
Сделать скрин в ~/Pictures/mpv |
L |
Зациклить видео |
r and R |
Двигать субтитры вверх и вниз |
Остальные бинды, в одном месте для удобства
Если надо скачать видос, то ctrl + z
, когда весь видос закешировался, то ctrl+x
. Если надо клип онлайн видоса, то alt+z
для смены режима на a-b loop, потом l
ставит начальную точку, повторное нажатие вторую точку, третье нажатие отменяет выделение. Чтоб выделение заклипать, тоже ctrl+x
. Если после этого захотелось скачать весь видос, то надо два раза нажать на alt+z
для включения нужного режима
Если клипать локальные видосы, то там g
начало, h
конец. Если нажать G
, то начальный таймкод будет ноль, а для H
конечный таймкод в конце видео. Рендерить в сильно ужатом mp4 можно через ctrl+r
, чтоб в дс удобно кидать без подписки. Рендерить в исходном качестве можно через alt+r
На F6
включена нормализация громкости голосов
Известные баги
Из-за моего скрипта, на выбор нескольких звуковых дорожек, нельзя менять качество аудио при стриминге. Чтоб это исправить, закомментируй строки 170-215
и расскоментируй строку 216
в файле scripts/uosc/lib/menus.lua
. Тогда всё должно снова заработать
Если хочешь всегда видеть интерфейс, а не только при наведении на нужную часть экрана, то в файле script-opts/uosc.conf
надо заменить proximity_in
на 174 строке на 9999
Если у тебя видеокарта нвидия, то в mpv.conf
надо убрать vaapi
в значении hwdec
Если хочешь сделать паузу на лкм, а не пкм, то в файле inputs.conf
я вставил и закомментировал стандартные бинды для кнопок мыши. Можешь их изменить, сделав игнор на пкм и паузу на лкм.