Универсальный способ, как делать клипы с twitch/wasd/goodgame стримов/водов с помощью mpv + yt-dlp + ffmpeg. Подсосов Мэда тред эдишн.
Сразу стоит приготовиться к тому, что гайд немного пердольный. Но по сравнению с другими способами он имеет преимущества.
Проблемы с функционалом сайта:
- клип долго создаётся и его нужно ещё сохранить к себе на комп, чтобы запостить,
- не всегда сайт даёт это сделать (например wasd),
- если прозевал момент, то уже не получится отмотать и сделать (goodgame).
Проблемы с записью экрана:
- нужно записывать продолжительный отрывок и потом из него вырезать, что долго, либо опять же подгадывать момент и обратно промотать не получится,
- лишний оверхед по памяти, запись ненужного и тд.
Соответственно способ предложенный ниже позволит создавать клипы быстро, мгновенно их сохраняя с любого сайта + будут доступны для перемотки последние ~30 минут онлайна стрима, что позволит комфортно выбрать рамки клипа. Никаких онлайн сервисов, только локальные программы.
Установка
Речь будет идти о Windows 10. Те у кого Linux сами думаю смогут разобраться. Все программы ниже standalone и portable - скачал, распаковал и сразу можно запускать без установки.
mpv
Это видеоплеер с легковесной оболочкой, но огромными возможностями для найстроки через конфиг. Скачиваем отсюда самую свежую версию https://sourceforge.net/projects/mpv-player-windows/files/64bit/ (ссылка отсюда https://mpv.io/installation/). Распаковываем куда удобнее (лично у меня папка с mpv лежит в папке юзера C:\Users\<username>
).
yt-dlp
Программа которая позволяет скачивать видео, открывать стримы с множества сайтов (её удобство вы ещё оцените, когда понадобиться скачать клип с твича например или видео с ютуба). Скачиваем отсюда https://github.com/yt-dlp/yt-dlp/releases yt-dlp.exe
и кладём в распакованную папку mpv. Получится, что mpv.exe
и yt-dlp.exe
находятся в одной папке.
ffmpeg
Комбайнер по работе с видео/картинками. Скачиваем отсюда https://github.com/BtbN/FFmpeg-Builds/releases (ссылка отсюда https://ffmpeg.org/download.html#build-windows) посленюю версию ffmpeg-master-latest-win64-gpl.zip
. Распаковываем куда удобнее (опять же у меня лежит в C:\Users\<username>
).
Добавляем в переменные среды.
Для удобства добавляем в переменные среды, чтобы можно было в любом месте из консоли вызывать бинарнии. Поиск - win + r: "Изменение переменных среды текущего пользователя". В открывшемся окне в верхнем поле нажимаем на Path и после кнопку "изменить" и после кнопку "создать". Вписываем в поле путь до папки с mpv.exe
(у меня C:\Users\<username>\mpv-x86_64-20191027-git-8e50d7a\
). Аналогично делаем для ffmpeg.exe
(у меня это C:\Users\<username>\ffmpeg-20191028-68f623d-win64-static\bin
). Сохраняем, закрываем.
Теперь проверяем, что всё работает. Нажим win + r (я так кстати абсолютно все программы на компьютере открываю) в поиске вбиваем PowerShell. В окне консоли по очереди вбиваем mpv
, ffmpeg
, yt-dlp
. Каждую из них он должен видеть.
Настройка mpv
В папке с mpv.exe
создаем два текстовых файла input.conf
(файл с биндами), mpv.conf
(файл с настройками плеера).
В mpv.conf
вставляем опции:
script-opts=ytdl_hook-ytdl_path=yt-dlp
cache=auto
demuxer-max-bytes=500000000
demuxer-seekable-cache=auto
demuxer-readahead-secs=360000
Как можно понять из названия опций они регулирует размер кэша плеера для онлайн видео. Чем больше вы сделаете цифры, тем больше стрима будет деражать в оперативке плеер. Редактируйте исходя из размера вашей оперативки. У меня 16гб, 500000000 байтов это 500 мегабайт. Можно было бы выставить гораздо больше, но на практике и этого хватало.
В input.conf
добавляем строчку:
D ab-loop-align-cache; ab-loop-dump-cache "cache_dump.mkv"
В ab-loop-align-cache; ab-loop-dump-cache "cache_dump.mkv"
l ab-loop
д ab-loop
Теперь при нажатии на shift + d плеер будет дропать выставленный отрезок кэша. Что и нужно
Использование на практике
Итак всё готово к использованию. Создаем какую-нибудь папку, куда будут сохраняться клипы. Открываем её в проводнике. Нажимаем правой клавишей с зажатыи shift по пустому пространству. Выбираем "открыть окно powershell здесь".
Дальше варианты могут быть следующие:
https://www.twitch.tv/guit88man # если онлайн стрим на твиче
https://wasd.tv/guitman # оонлайн стрим на васде
https://hls.goodgame.ru/hls/191540.m3u8 # онлайн стрим на гудгейме. К сожалению yt-dlp не умеет в гудгейм, а значит ссылку на стрим нужно достать из консоли разработчик -> сеть -> филтр m3u8
https://www.twitch.tv/videos/1518354588 # вод на твиче
https://wasd.tv/guitman/videos?record=1043398 # вод на васде
https://www.youtube.com/watch?v=MYto_2FP6G8 # любой видос на ютубе включая стрим
Берем соотвествующую нужную нам ссылку и вписываем в консоли:
mpv <URL>
Откроется плеер с этим видосом. Как это работает? mpv через yt-dlp достает видео с сайта и шлет поток в mpv. Поэтому <URL>
в общем-то может быть любым из этого списка https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md
Итак у нас открылся плеер. Полоса посередине таймлайн бара внизу означает, что эта часть стрима находится в кэше среди неё мы можем свободно перемещаться через стрелочки (просто стрелочки - обычный прыжок, шифт + стрелочки - маленький прыжок).
Мы приметили кусок стрима, который хотим сохранить. Перематываемся в начало отрезка - жмём l. Перематываемся на конец - снова жмём l. После этого плеер зацикливается на этом отрезке (следующее нажатие l уберёт это). Теперь жмём shift + d - и в папку сохраняется cache_dump.mkv
с этим отрезком.
Дальше открываем ещё одно окно PowerShell в этой папке и пишем:
ffmpeg -i cache_dump.mkv -c copy 1.mp4
ffmpeg просто без кодирования мгновенно перекладывает видеопоток в нужный нам формат mp4.
Всё. Можно клип постить на сосач.
Advanced
Любые вопросы по гайду или в целом по mpv или другим любым видеоплеерам можно задавать в соответствующем треде в /s (последний на момент написания https://2ch.hk/s/res/3150125.html)
Что можно ещё сделать дополнительно к этому гайду:
- в mpv бинды зависят от раскладки, при этом в винде10 в мпв не получится нажатием клавиш сменить раскладку, так как mpv перехватит это нажатие. Можно либо дублировать бинды на русском, либо сменить мышкой раскладку, либо можно зафиксировать чтобы mpv запускалось с английской раскладкой вот так https://2ch.hk/s/res/3150125.html#3158215
- научиться юзать плагины для mpv. соотвественно пригодятся следующие:
- https://github.com/christoph-heinrich/mpv-quality-menu смена качества стрима/видео, чтобы клип уложился в лимит
- https://github.com/ekisu/mpv-webm плагин оболочка для ffmpeg, чтобы можно было в пару простых движений сжать клип, обрезать его (например до вебки стримера)
- разобраться в настройках mpv (их оч много).