V2 models for some reason have jiggling, the more to the right and down, the worse the effect. Almost unnoticeable for 1080p, but very annoying for 1440p and 4K (both native and downscaled to 1440p, here's the example - https://cdn.discordapp.com/attachments/ … WGll8w.mp4). For this one, I'm running Game of Thrones S1 E1 at 4K on 3440x1440 (so SVP downscales to 2560x1440) at x2 framerate on 2080 Ti with 4.4v2, 4.6v2, 4.9v2 and 4.13_litev2. There's no such effect on V1 models (tried all same versions)

odedg wrote:

What is the difference between 4.9 and 4.12 lite versions ?
If I would guess lower picture quality better performance ?
And if so is it easier on CPU or GPU or Both ?

4.12 lite works a bit better on hardsubs and character borders, and a bit slower than 4.9, but 2080 Ti is still capable of 1080p24 x3 with Anime4K (to 2560x1440)

1. вместе с SyncPlay, устанавливаемая с SVP сборка mpv откликается только при наличии --input-ipc-server=mpvpipe, игнорируя mpvSockets. При этом вне SyncPlay всё работает через сокеты, как и надо. Сторонняя сборка (установленная с chocolatey в данном случае) никак с SyncPlay в этом плане не спорит.
демонстрация: https://youtu.be/3pa291O30q0

2. после старта видео SVP фиксирует положение на паузе ли, дорисовка кадров при этом работает как надо, но вот обнаружение рамок на "паузе" работать не хочет.
Для аниме (где рамки могут несколько раз за серию появляться, исчезать, меняться в размере) из-за наличия паузы для переинициализации, что ещё более неприятно при совместном просмотре. На такой случай я отключаю обрезку рамок в SVP и использую https://github.com/Ashyni/mpv-scripts/b … c-crop.lua
Тут суть проблемы больше состоит в том, что SVP вариант обрезки для фильмов и сериалов подходит лучше (требуется всего одна пауза в начале видео + например в 2 сезоне Локи при 3440x1440 мониторе из 3840x2160 получается 3168x1440, когда как без обрезки от SVP обрезаться уже будет с 2560x1440 (т.е будут потеряны детали). Отключение уменьшения размера видео же приведёт к слишком повышенной нагрузке на железо, 2080ти уже не вытягивает x2 с RIFE)
В mpv <0.36 (с chocolatey ставится 0.35.1) отсутствует нормальная работа с Dolby Vision, приходится использовать mpv, который установлен вместе с SVP, а прибавив проблему с пункта 1, при "видео на паузе" приходится целиком перезаходить в SyncPlay. Раньше можно было перезапустить SVP при видео не на паузе, но сейчас при таком варианте SVP намертво зависает до закрытия плеера
демонстрация: https://youtu.be/bcMcHrVLicA

3. с давним обновлением приложенного mpv до 0.36 добавлялся баг с зависанием плеера намертво при старте воспроизведения с внешними субтитрами/озвучками, самый последний апдейт этот баг исправил, так что этот вопрос пропал

ЗЫ. на дропы кадров смотреть не нужно, захват мониторов в OBS почему-то сильно снижает производительность, но при просмотре я не стримлю и не записываю, так что кадры не выпадают
Ну и вопрос на засыпку, можно ли добиться при --video-sync=display-resample почти полного отсутствия mistimed и delayed кадров?

Содержимое папки AppData\Roaming\mpv: https://cdn.discordapp.com/attachments/ … 392/mpv.7z

dlr5668 wrote:

4.9 v2 works just fine here

How to set up 4.9v2 here? Imagine you've just installed svp with rife from utilities, what steps will you do next?

Drakko01 wrote:

What about use this method instead of renaming

I use this method, works for v1 as should, but v2 models fail to build cache

[11/04/2023-07:20:20] [W] Could not read timing cache from: C:\Users\TECHNO~1\AppData\Local\Temp\Program Files (x86)/SVP 4/rife\models\rife\2eceb28c.engine.cache. A new timing cache will be generated and written.
[11/04/2023-07:20:20] [E] Error[4]: [network.cpp::nvinfer1::Network::validate::3100] Error Code 4: Internal Error (input: for dimension number 1 in profile 0 does not match network definition (got min=11, opt=11, max=11), expected min=opt=max=7).)
[11/04/2023-07:20:20] [E] Error[2]: [builder.cpp::nvinfer1::builder::Builder::buildSerializedNetwork::751] Error Code 2: Internal Error (Assertion engine != nullptr failed. )
[11/04/2023-07:20:20] [E] Engine could not be created from network
[11/04/2023-07:20:20] [E] Building engine failed
[11/04/2023-07:20:20] [E] Failed to create engine from model or file.
[11/04/2023-07:20:20] [E] Engine set up failed
&&&& FAILED TensorRT.trtexec [TensorRT v8501] # C:/Program Files (x86)/SVP 4/rife\vsmlrt-cuda\trtexec --onnx=C:/Program Files (x86)/SVP 4/rife\models\rife\rife_v4.9.onnx --timingCacheFile=C:\Users\TECHNO~1\AppData\Local\Temp\Program Files (x86)/SVP 4/rife\models\rife\2eceb28c.engine.cache --device=0 --saveEngine=C:\Users\TECHNO~1\AppData\Local\Temp\Program Files (x86)/SVP 4/rife\models\rife\2eceb28c.engine --shapes=input:1x11x1088x1920 --fp16 --tacticSources=-CUBLAS,-CUBLAS_LT,-CUDNN,+EDGE_MASK_CONVOLUTIONS,+JIT_CONVOLUTIONS --useCudaGraph --noDataTransfers --noTF32 --inputIOFormats=fp16:chw --outputIOFormats=fp16:chw

cws wrote:

I think in `def RIFE()` of `vsmlrt.py`, you can set `_implementation` to 2, and it'll look for the model in the `C:\Program Files (x86)\SVP 4\rife\models\rife_v2` directory.

Tried this, rife just stops working after that. Tried using with newer vsmlrt.py (with 4.8 defined), same behavior (on both 4.8 and 4.9). Can you share your setup? The tree of C:\Program Files (x86)\SVP 4\rife\models and your vsmlrt.py. Or your command to build engine if you don't use SVP's variant



UPD. Also tried building manually with using 7 planes instead of 11, placed generated files to folder where others are, but that doesn't work

17:33:09.966 [i]: VideoPlayer: mpv [mpv.exe] connected, waiting for the video info...
17:33:10.500 [i]: VideoPlayer: mpv 0.35.1 /via 'mpvSockets/20840'
17:33:11.036 [i]: Media: video 1920x1080 [PAR 1.000] at 23.976 fps
17:33:11.036 [i]: Media: codec type is AVC, YUV/4:2:0/8 bits/BT.709 BT.709
17:33:11.045 [i]: Playback: starting up...
17:33:11.049 [i]: Playback [6baaeb05]: Frame server (64-bit) C:\Program Files (x86)\SVP 4\mpv64\vapoursynth.dll
17:33:11.050 [i]: Playback [6baaeb05]: resulting video frame 1920x1080
17:33:11.052 [i]: Playback [6baaeb05]: 3 acceptible profiles, best is 'Алгоритм RIFE' [600]
17:33:11.054 [i]: Playback [6baaeb05]: enabled while video is playing
17:33:11.058 [i]: Playback [6baaeb05]: playing at 71.928 [23.976 *3/1] 
17:33:11.620 [E]: Playback [6baaeb05]: VS - ^^^^^^^^^^
17:33:11.620 [E]: Playback [6baaeb05]: VS - File 'C:\Program Files (x86)\SVP 4\rife\vsmlrt.py', line 920, in RIFEMerge
17:33:11.620 [E]: Playback [6baaeb05]: VS - return inference_with_fallback(
17:33:11.620 [E]: Playback [6baaeb05]: VS - ^^^^^^^^^^^^^^^^^^^^^^^^
17:33:11.620 [E]: Playback [6baaeb05]: VS - File 'C:\Program Files (x86)\SVP 4\rife\vsmlrt.py', line 1631, in inference_with_fallback
17:33:11.620 [E]: Playback [6baaeb05]: VS - raise e
17:33:11.620 [E]: Playback [6baaeb05]: VS - File 'C:\Program Files (x86)\SVP 4\rife\vsmlrt.py', line 1610, in inference_with_fallback
17:33:11.620 [E]: Playback [6baaeb05]: VS - return _inference(
17:33:11.620 [E]: Playback [6baaeb05]: VS - ^^^^^^^^^^^
17:33:11.620 [E]: Playback [6baaeb05]: VS - File 'C:\Program Files (x86)\SVP 4\rife\vsmlrt.py', line 1574, in _inference
17:33:11.620 [E]: Playback [6baaeb05]: VS - clip = core.trt.Model(
17:33:11.620 [E]: Playback [6baaeb05]: VS - ^^^^^^^^^^^^^^^
17:33:11.620 [E]: Playback [6baaeb05]: VS - File 'src\\cython\\vapoursynth.pyx', line 2857, in vapoursynth.Function.__call__
17:33:11.620 [E]: Playback [6baaeb05]: VS - vapoursynth.Error: operator (): expects 7 input planes
17:33:11.624 [E]: Playback [6baaeb05]: VS - could not init VS
17:33:11.634 [E]: Playback [6baaeb05]: VS - Script evaluation failed:
17:33:11.634 [E]: Playback [6baaeb05]: VS - Python exception: operator (): expects 7 input planes
17:33:11.634 [E]: Playback [6baaeb05]: VS - Traceback (most recent call last):
17:33:11.635 [E]: Playback [6baaeb05]: VS - File 'src\\cython\\vapoursynth.pyx', line 3121, in vapoursynth._vpy_evaluate
17:33:11.635 [E]: Playback [6baaeb05]: VS - File 'src\\cython\\vapoursynth.pyx', line 3122, in vapoursynth._vpy_evaluate
17:33:11.635 [E]: Playback [6baaeb05]: VS - File 'C:\Users\TechnoStone\AppData\Roaming\SVP4\scripts\6baaeb05.py', line 78, in <module>
17:33:11.635 [E]: Playback [6baaeb05]: VS - smooth = interpolate(clip)
17:33:11.635 [E]: Playback [6baaeb05]: VS - ^^^^^^^^^^^^^^^^^
17:33:11.635 [E]: Playback [6baaeb05]: VS - File 'C:\Users\TechnoStone\AppData\Roaming\SVP4\scripts\6baaeb05.py', line 57, in interpolate
17:33:11.635 [E]: Playback [6baaeb05]: VS - smooth = RIFE(input_m,multi=rife_num,model=rife_mnum,backend=trt_backend)
17:33:11.635 [E]: Playback [6baaeb05]: VS - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
17:33:11.635 [E]: Playback [6baaeb05]: VS - File 'C:\Program Files (x86)\SVP 4\rife\vsmlrt.py', line 1046, in RIFE
17:33:11.635 [E]: Playback [6baaeb05]: VS - output0 = RIFEMerge(

Теперь работает как надо big_smile

Ладно, простейший шейдер работает (на примере инвертирования), но почему-то Anime4K не работает
https://youtu.be/Up9u_CCpVtg

1. шейдеры перестали работать (применяю Anime4K - вообще никакой разницы)
Провёл сравнение на отдельных версиях плеера:
рандомный билд 0.34 под Dolby Vision - работают шейдеры (но конкретный билд не совместим с SVP, плеер вылетает при активном режиме DV и прикрученным к нему SVP)
0.35 с mpv io - не работает воспроизведение, вылет плеера при открытии файла
0.35 v3 с mpv io - шейдеры работают
2. касательно Dolby Vision - корёжит цвета с активным SVP, но прочитал английскую часть форума, и https://www.svp-team.com/forum/viewtopi … 244#p81244 работает как часы

Chainik wrote:

можно просто профилями обойти - новый профиль, не увеличивать частоту кадров, плюс еще красный кирпич нажать, и условие - кодек видео = mjpeg
или "расширение файла = flac", эффект тот же, что больше нравится...

Теперь всё прекрасно, спасибо, выручил) Думаю неплохо бы подобное по умолчанию предлагать

Chainik wrote:

в предложенном примере это не просто "обложка" (т.е. картинка), а целое видео с кодеком mjpeg

А вот например раздельно файл и обложка рядом (только распаковать сперва, иначе mpv не подгрузит сам обложку из жпега рядом): https://cdn.discordapp.com/attachments/ … 08/test.7z

Chainik wrote:

почему не подходит? он точно такой же

Так, ладно, как он стал версии 0.34, теперь подходит. Есть несколько плагинов для которых это минимальная версия, а у SVP на тот момент была 0.32 или 0.33. Переехал, удалил внешний mpv, снёс svp 4\mpv64 из PATH и PYTHONPATH, программы на своих версиях питона работают теперь как надо

Открытым остаётся вопрос аудио с обложками
https://youtu.be/ruN-pPl10xs

Проблема первая:
Если открыть в mpv файл музыки, а внутри есть обложка или рядом есть файл обложки, то воспроизведение замирает пока не перемотаешь куда угодно. Неприятно когда есть плейлисты
Демонстрация: https://cdn.discordapp.com/attachments/ … T10t2e.mp4
Тестовый файл: https://cdn.discordapp.com/attachments/ … terer.flac

Проблема вторая:
Без добавления SVP 4\mpv64 в PATH и PYTHONPATH не работает сам SVP в соответствующем плеере, установленном отдельно (используется по причинам работы с плагинами, Syncplay, yt-dlp и др, для чего устанавливаемый вместе с SVP не подходит)
Но если добавить, то любой софт, использующий Python версии не 3.9, или даже если 3.9, использующий свой набор скриптов, работает некорректно. Например Blender, который в последней версии имеет с собой 3.10, в итоге не может ничего экспортировать, наткнувшись на 3.9, устанавливаемый с mpv
https://cdn.discordapp.com/attachments/ … CNU2N1.png
Добавление стороннего 3.10 в PYTHONPATH ничего толком не меняет, либо если выше 3.9, работает svp, не работает софт, либо если 3.10 выше, работает софт, но не работает svp

> больше проблем (с ложным срабатыванием), чем наоборот.
А если реализовать с галочкой? Искать ли отличные от чёрных полей или нет. Забыл уточнить конкретный пример, что если в сцене поля меняют цвет с некоторой периодичностью, то самый беспроблемный вариант это отключить автообнаружение и обрезать силами плеера (w и e по умолчанию у mpv). Кстати а что насчёт альтернативного варианта вместо пересчёта всей цепочки отдавать команду плееру изменять pan scan? Раз Syncplay может кучей всего управлять, значит mpv довольно гибок на внешнее управление

> выключить автообрезку
ммм рамки со всех сторон, 21:9 мониторы бесполезны тогда, 21:9 моменты смотреть в уменьшенном варианте

И ещё вспомнил вопрос, забыл его в самом начале указать. Насчёт SVPcode, можно ли реализовать очередь для пошагового перекодирования чего-либо? Заметил например у себя относительно частый сценарий 24-(RIFE AI)->48-(кастомный профиль)->144, но в итоге всё затягивается тк до того как RIFE доделает файл в свои 30-35 фпс на 3070, пройдёт немало времени, а .SVP.temporary файл запихивать не вариант, приходится ждать и потом вручную запихивать на второй заход. Вариант "сделай сразу 24->144" не канает, слишком сильные артефакты получаются, а уровни подавления это метание из крайности "артефакты" в крайность "где плавность?". Да и после RIFE разницы между соседними кадрами меньше, надписи поверх перестают дёргаться в углах. Что-нибудь по типу "закинул файл, выбрал профиль, а рядом с кнопкой "перекодировать" кнопка "перекодировать результат", ну или что-то наподобие... (Хотя находится то, с чем RIFE справиться не может, это когда сильно текстурированные объекты в большом количестве двигаются в разных направлениях). Можно сделать что-то наподобие ориг>промежуточный1>промежуточный2>...>сведённый итоговый, заодно меньше времени на сведение потрачено будет, тк не на каждом шагу, а только в итоге

1. Есть ли возможность сделать обнаружение не только чёрных полей, но и белых, например, или других цветов (тёмно-серые итд)?
оригобрезано
2. Есть ли возможность сделать смену активной площади (аля "момент когда оно нашло поле и отрезало его") без паузы в видео?
Если очень грубо "попросить", то приводим пример Ultrawidify, хоть он и работает иначе, но никаких пауз не появляется. А вот в случае с SVP оно неадекватно работает с нестабильными потоками, которые от пауз ломаются, и появляются неудобства при совместном просмотре через, например, Syncplay, когда у нескольких человек активен SVP, и возникает проблема секунд на 5, пока у всех обрежет и обменяется кусками "N поставил на паузу, N снял с паузы". А если смотреть не один фильм, где оно в самом начале один раз, а аниме, например, где могут меняться поля в ходе серии, могут в опенинге/эндинге итд, то это превращается в пытку

https://i.imgur.com/vxtZril.jpg
вот такое умудрился несколько дней назад поймать и заскриншотить)
RTX 3070, Optical Flow включен

На примере Nekopara (1 серия от анилибрии, 2:50 - https://anilibria.tv/upload/torrents/10228.torrent ), последнее, где видно переход - 3.6, на 3.7 уже не видно. Использовал MPC только для перемотки с шагом в 1 кадр
https://youtu.be/d4-cETv--ok - вот кусок процесса

15

(1 replies, posted in Эксплуатация SVP)

Есть ли способ использовать SVP с SyncPlay? в нём выбрал плеер по пути "C:\Program Files (x86)\SVP 4\mpv64\mpv.exe", он запускается, работает, функцию исполняет. но SVP не работает. Если просто плеер запустить по тому же пути без SyncPlay, то SVP работает. Все кастомные фильтры по сочетаниям из настроек mpv работают в обоих случаях

PS. в расширенных настройках надо добавить в аргументы запуска плеера "--input-ipc-server=mpvpipe" без кавычек и всё работает smile