Skip to content

Latest commit

 

History

History
288 lines (208 loc) · 15.1 KB

File metadata and controls

288 lines (208 loc) · 15.1 KB

Realtime RIFE Portable Setup for MPV (MPC-HC) + VapourSynth + vs-mlrt

English | Русский

Пошаговая инструкция по настройке полностью портативной сборки для realtime-интерполяции видео через RIFE в MPV.

Important

Инструкция ориентирована на NVIDIA RTX и OS Windows, поэтому в interpolation.vpy используется Backend.TRT (TensorRT) — самый производительный бэкенд для карт NVIDIA RTX.


Warning

На RTX 3070(без андервольта или разгона 240w) с TensorRT realtime-интерполяция доступна:

  • x2: source ≤ 1080p ~30 fps - любая базовая модель; source == 1440p ~24 fps - 4.17_v2_light, 4.6v2.
  • x3: source ≤ 1080p ~30 fps 4.4v2;

На менее производительных картах стоит рассмотреть альтернативы:

  • Lossless Scaling
  • SVP (optical flow интерполяция)
  • Интерполяция в файл с последующим просмотром:
    • Flowframes
    • enhancr
    • Отправлять вывод VapourSynth в ffmpeg, а потом через mkvtoolnix заменить видеоряд в исходном .mkv

Содержание

Структура каталогов

C:\MPV_VS\                           ← корень (путь без пробелов и кириллицы)
├── MPV\
│   ├── mpv.exe                      ← mpv player
│   └── portable_config\             ← конфиг mpv
│       ├── mpv.conf
│       ├── input.conf
│       └── vs\
│           └── interpolation.vpy
│
└── VS\                              ← Python + VapourSynth + vs-mlrt
    ├── python.exe
    ├── pythonYYY.dll
    ├── pythonYYY._pth               ← отредактирован (шаг 1)
    ├── pythonYYY.zip
    ├── pip.pyz                      ← создаётся pip (шаг 2)
    ├── Lib\site-packages\           ← (шаг 3.1)
    │   └── vapoursynth\...
    ├── portable.vs                  ← из архива VS Portable (шаг 3)
    ├── VSScript.dll                 ← из архива VS Portable (шаг 3)
    ├── VSPipe.exe                   ← из архива VS Portable (шаг 3)
    ├── прочие файлы vapoursynth
    ├── vs-coreplugins\
    ├── vsmlrt.py                    ← (шаг 4.2)
    ├── vs-plugins\                  ← распакованный vs-mlrt (шаг 4.1)
    │   ├── vstrt.dll / vsort.dll    ← зависит от бэкенда
    │   ├── LSMASHSource.dll         ← (шаг 4.3)
    │   ├── прочие DLL бэкенда
    │   └── models\
    │       └── rife\                ← модели RIFE (шаг 4.4)
    │           ├── rife_v4.17_lite.onnx
    │           └── rife_v4.25.onnx
    ├── sdk\
    └── wheel\
        └── vapoursynth-XX-cpYYY-abi3-win_amd64.whl

Пошаговая установка

1. Python Embeddable

Warning

⚠️ Версия Python должна быть НЕ НИЖЕ версии в имени VapourSynth wheel-файла. Например: для VapourSynth64-Portable-R73.zip → wheel → vapoursynth-73-cp312-abi3-win_amd64.whl минимальная версия Python 3.12. Для файла vapoursynth-73-cp38-cp38-win_amd64.whl cp38-cp38 означает что версия Python исключительно 3.8

  • Скачать Python 3.xx.x → "Windows embeddable package (64-bit)" с python.org
  • Распаковать содержимое в C:\MPV_VS\VS\
  • Обязательно отредактировать файл python312._pth — раскомментировать последнюю строку:
 python312.zip
 .
-#import site
+import site
+Lib/site-packages

⚠️ Без этого pip не сможет установить пакеты, а site-packages не будет виден интерпретатору.


2. pip.pyz

  • Скачать pip.pyz и положить в C:\MPV_VS\VS\

3. VapourSynth Portable

  • Скачать последний VapourSynth Portable (.zip)
  • Распаковать в C:\MPV_VS\VS\ — появятся подкаталоги sdk\, vs-plugins\, wheel\, vsgenstubs4 ...

3.1 Установка VapourSynth Python-модуля

Открыть cmd в C:\MPV_VS\VS\ и выполнить:

python.exe pip.pyz install wheel/vapoursynth-XX-cpYYY-abi3-win_amd64.whl

⚠️ Заменить XX-cpYYY на скачанную версию VS. Точное имя файла видно в wheel\.


4. Установка vs-mlrt

Important

Для бэкендов ORT CUDA и TensorRT версия драйвера NVIDIA должна соответствовать требованиям конкретного релиза vs-mlrt. Проверяйте release notes. Например, для vs-mlrt v15.15 требуется CUDA 13, а значит драйвер NVIDIA >= 581.80.

4.1 Скачать архивы бэкенда

Скачать архивы vsmlrt-windows-x64-tensorrt.v*.7z.001 и vsmlrt-windows-x64-tensorrt.v*.7z.002 с vs-mlrt releases.

Распаковать в C:\MPV_VS\VS\vs-plugins\.

4.2 vsmlrt.py

vsmlrt.py входит в архив бэкенда и после распаковки лежит в vs-plugins\. Его необходимо переместить на уровень выше — в C:\MPV_VS\VS\, чтобы Python-интерпретатор мог его импортировать:

C:\MPV_VS\VS\vs-plugins\vsmlrt.py   →   C:\MPV_VS\VS\vsmlrt.py

4.3 Установка плагинов

Скачать dll-файлы из релизов каждого плагина и поместить в C:\MPV_VS\VS\vs-plugins\:

L-SMASH-Works LSMASHSource.dll

Из архива нужен только файл *.dll — остальное можно не извлекать.

4.4 Дополнительные модели RIFE

Скачать и распаковать onnx-файлы в C:\MPV_VS\VS\vs-plugins\models\rife\ rife_v4.25 [rife_v4.17_lite](https://github.com/AmusementClub/vs-mlrt/releases/download/external-models/ rife_v4.17_lite.7z)

Дополнительные версии (например rife_v4.26, rife_v4.25_heavy): External Models.

Распаковать с сохранением структуры в C:\MPV_VS\VS\vs-plugins\models\:

C:\MPV_VS\VS\vs-plugins\models\rife\rife_v4.25.onnx
C:\MPV_VS\VS\vs-plugins\models\rife_v2\rife_v4.25.onnx

Tip

По моим внутренним тетам v2 версии на ~17-23% производительнее.


5. PATH

Добавить C:\MPV_VS\VS\ в системный PATH, чтобы vspipe и python были доступны из любого каталога.

Вариант A — через powershell (рекомендуется):

$userPath = [Environment]::GetEnvironmentVariable("PATH", "User"); [Environment]::SetEnvironmentVariable("PATH", "$userPath;C:\MPV_VS\VS\", "User")

Вариант B — через GUI:

Win + Rsystempropertiesadvanced → "Переменные среды" → Path (пользовательская) → "Создать" → C:\MPV_VS\VS\

Вариант C — через cmd:

Warning

Команда setx обрезает значение PATH до 1024 символов. Если ваш PATH длинный — используйте вариант A или B.

setx PATH "%PATH%;C:\MPV_VS\VS\"

После изменения PATH необходимо перезапустить терминал, чтобы изменения вступили в силу.


6. MPV

  • Скачать mpv
  • Распаковать в C:\MPV_VS\MPV\
  • Создать каталоги:
C:\MPV_VS\MPV\portable_config\
C:\MPV_VS\MPV\portable_config\vs\

При наличии каталога portable_config рядом с mpv.exe, mpv использует его вместо %AppData%\mpv. Путь ~~/ в конфигах будет указывать на portable_config\.

Important

В репозитории MPV-Config можно найти авторскую конфигурацию MPV.


7. Конфигурация MPV и скрипт интерполяции

Tip

Использовать backend TRT_RTX вместо TRT не имеет смысла — производительность ниже, RGBH и fp16 недоступны, portable-установка усложняется, а выигрыш в скорости компиляции движка для конечного пользователя несущественен.

Выберите вариант для активации интерполяции:

  • auto - включает интерполяцию при старте для всех источников <= 1080p30fps
  • manual - ручная активация по F1

Скачать и разместить файлы:

interpolation.vpy — готовый скрипт интерполяции TensorRT для NVIDIA RTX
⚠️ по умолчанию скрипт использует модель rife_v4.25, если с ним воспроизведение не работает используйте более лёгкую модель RIFE.

Файл Режим Куда положить
interpolation.vpy all C:\MPV_VS\MPV\portable_config\vs\
mpv.conf auto C:\MPV_VS\MPV\portable_config\
mpv.conf manual C:\MPV_VS\MPV\portable_config\
input.conf manual C:\MPV_VS\MPV\portable_config\

Warning

Первый запуск может быть долгим(до 5 минут), из-за компиляции движка. Наберитесь терпения.


8. MPC-HC

Если MPV плеер по каким-либо причинам не подходит, можно использовать MPC-HC:

  • скачать
  • Распаковать в C:\MPV_VS\MPC-HC\
  • Скачать скрипт интерполяции interpolation.vpy и поместить в C:\MPV_VS\MPC-HC\_vapoursynth
  • скачать SynthFilters.zip и извлечь из архива vapoursynth_filter_64.ax в C:\MPV_VS\MPC-HC\_vapoursynth
  • скачать vapoursynth_filter.ini и поместить в C:\MPV_VS\MPC-HC
  • Запустить MPC-HC плеер и открыть настройки:
    • External filters:
      • нажать Add filter -> Browse и выбрать C:\MPV_VS\MPC-HC\_vapoursynth\vapoursynth_filter_64.ax
      • выбрать добавленный фильтр VapourSynth Filter и активировать Prefer
      • двойным кликом по VapourSynth Filter открыть параметры фильтра и нажав Browse выбрать скрипт интерполяции interpolation.vpy
    • Internal filters -> Video decoder
    • сначала попробовать Hardware decoder: d3d11 и Hardware Device to use: Automatic(CopyBack).
    • если d3d11 не работает, выбрать Hardware decoder: DXVA2(copy-back) и Hardware Device to use: Automatic
  • Подтвердив настройки, при следующем запуске видео фильтр будет автоматически применён.

Warning

В MPC фильтр будет применяться для всего контента. Поэтому скрипт отличается от того что используется для MPV, и содержит проверку разрешения экрана и максимальный поддерживаемый fps источника. Параметры MAX_FPS_ в скрипте необходимо настроить под себя, потому что дефолт может ограничивать возможности вашего железа.


Tip

Если возникнут проблемы с настройкой — не стесняйтесь, создавайте issue.