Nice one Chainik. I think that better reflects the excellent improvements you've made to supporting other players etc.

VS core instead of ffdshow and avisynth is usable though?

...if, like me, you only want the vapour synth support then it should allow me to untick ffdshow and avisynth if I have chosen the VS core.

The current workaround is to cancel the ffdshow and avisynth spin-off installs but it would be cleaner if it worked as per the above, since it wasn't clear if cancelling these installs would have some other effect on the install process - it seems not.

Thanks!

I built a custom Slingbox player on Windows using libmpv and got it working nicely with SVP.

Only problem is, if some kind of network turbulence occurs that knocks the AV out of sync, it never recovers. This only seems to happen when SVP is enabled.

Is it possible that due to what SVP is doing that it could interfere with mpv's ability to re-sync the video and audio?

Has much testing been done with SVP and live streams?

Yep, Intel NUC 5th Gen Haswell (54250WYK) is decoding 1080p60 HEVC just fine for me.

Encoding on the other hand needs some more serious hardware, either a decent CPU or a recent NVidia desktop card (960 GTX upwards I think).

IMO MistahBonzai's post is unduly pessimistic regarding the hardware required.

6

(8 replies, posted in Using SVP)

Oh fair enough.

Just that you wrote something different in your original post:

"The reason I want to do this, is because every file type (720p, 1080p, 4K) requires me to use different settings so that NO hanging or NO crashing happens."

But if you're saying you'd use them for other reasons then I guess it makes sense...

7

(8 replies, posted in Using SVP)

Rather than further complicate the UI wouldn't it be preferable for the crashing/hanging issues to be fixed instead?

Ok, I worked it out.

It turns out you have to specify the option to enable the pipe before calling initialise on the mpv instance.

Wrong:

mpv_handle *ctx = mpv_create();
mpv_initialize(ctx)
mpv_set_option_string(ctx, "input-ipc-server", "mpvpipe");

Right:

mpv_handle *ctx = mpv_create();
mpv_set_option_string(ctx, "input-ipc-server", "mpvpipe");
mpv_initialize(ctx)

I guess I should have read more into the comment in the API that reads:

"Some minor options can only be set before mpv_initialize()."

Anyway, maybe this will help someone someday.

Thanks, I will try that.

Ok I've established that it works with the "simple.c" example on the mpv site but this is where the library creates its own window which isn't suitable for me as I am overlaying my own UI. Maybe Plex uses this method.

The OpenGL version on their site fails as my app does.

Yep, that's the thing - there is nothing at all in the SVP log when I run my app. It seems as if there is no attempt to even connect.

Whereas I can see the entries you describe when I run mpv itself.

I'm going to reduce my app down to the bare minimum SDL example from the client API documentation and see if that can be persuaded to work.

Ok thanks. Yeah I'm sure it's something I'm not doing right.

There are two ways of using libmpv it seems - either giving it the window handle to draw to, or you can give it a GL context.

Maybe Plex uses the former, and it doesn't work with the latter or something.

Can I ask - how does SVP know to connect to the pipe that has been setup by the player? Maybe there is some kind of registration step I'm supposed to do or something?

Thanks.

Can't get it to work with my player though. I installed the necessary bits from SVP4 and verified that this works:

mpv --input-ipc-server=mpvpipe test.mov

However, doing the equivalent from within my app linking against the correct mpv-1.dll doesn't get picked up by SVP. I.e. nothing appears in the log.

I verified that it is accepting the "input-ipc-server" option in my code (I'm using mpv_set_option_string). If I mistype either input-ipc-server or mpvpipe then this command gives an error so it's definitely recognising it and therefore is the correct DLL.

I even tried copying everything from the mpv64 directory installed by SVP into where I am running my app from, but this still didn't work (but running mpv.exe from here did work).

I'm a bit stumped! I'm using the OpenGL method of the mpv client API, i.e. it draws to the GL context that my (SDL) code has created.

Maybe there is another step I am missing?

I'm currently messing about embedding libmpv into my video playing app. I have it working using the latest DLL which is 0.17.0.

I noticed one of the new features in 0.17.0 is:

"ipc: add Windows implementation with named pipes"

Does this provide what is needed for SVP to work (apart from compiling in vapoursynth support), or if I wanted to use 0.17.0 code with SVP would I still need to compile what is described on this site here:

"Windows version lacks "JSON IPC" feature in the master branch which is needed by the SVP Manager"

If 0.17.0 still lacks the above, where can I find that code please - the link on this site to your GitHub repo doesn't work (I've tried several PCs and two locations):

https://github.com/svpteam/mpv

Thanks!

14

(3 replies, posted in Using SVP)

That's really good news!

I've only recently (weeks ago) started using libVLC so no weight in the community unfortunately.

So how it will it work - at the moment I allocate a block of system ram for the YUV planes and give the pointer to libVLC. LibVLC then decodes to this block and tells me via the display callback when it's time to display the frame. At this point I copy the frame to another block of ram which then gets uploaded to a  texture by the main render thread, which also then overlays the UI. I have to do in this way because I'm using SDL which only allows rendering calls in one thread - ideally I'd have the decoding done to directly to the texture from the libVLC thread but this isn't stable.

So will vapoursynth/svp modify/insert frames as the final step before telling me to display? Other stuff like the sharpen filter works ok for me so hopefully it will also work with svp.

Happy to test anything out if it helps, anyway.

15

(3 replies, posted in Using SVP)

Nice to see the mpv support, but I've been writing a video player based on libVLC and it would be great to be able to use SVP.

16

(3 replies, posted in Using SVP)

kairukun wrote:

Is SVP 4 going to be free in the future like SVP 3 or pay license and yours forever? I'm just curious, I'm a big fan of you guys work, its awesome that you can convert videos fps to high framerate, so if it is going to be free in the future, that would be fantastic!

If it's so fantastic why not reward the people behind it by paying for it or donating?

17

(4 replies, posted in Using SVP)

I found the same.

Kudos.

My experience is the opposite. It's fantastic and works very well for me.

However for people who do have issues I've noticed that the developers are always very happy to help.

So I think you're being very harsh.

You could start by properly detailing the problems you are having, including your setup, instead of ranting.

19

(4 replies, posted in Using SVP)

I've been using 4533 with SVP without issue pretty much since it was released.

Thank you very much.

Just a quick Q, Chainik: if I choose the same settings for SVP 4 as I am using for 3.1.7 am I supposed to see any difference in smoothness/artifacts/cpu usage?

Or is SVP 4 more about a more modern UI/code structure than actually improving the core motion interpolation?

It will take a little while for me to get a feel for any changes although I noticed that whereas previously the SVP index would alternate between 0.97 and 1.01 (although I don't think this caused any judder) this version seems to stay on 1.0.

Yeah I know how to find all the settings on the panel but what file or files is that saved to? So I can set it up on one PC and then copy the file to the others....

So finally getting around to trying out SVP 4 pro.

I currently have 3.1.7 installed on several machines and I have things set up so that I can hand edit a copy of the 3.1.7 settings file in a folder that is synced across these machines and then copied over the proper one on boot up of each machine.

However I can't find where the settings file is stored in SVP4.

The other thing is that I rely on CheckDeltaFPS being set to a high value to suppress an annoying message box that occurs at certain times in my setup during screen resolution changes. I've written a lot of stuff up ages ago about my setup but it's basically one PC playing a Slingbox video and a second PC using a capture card to capture the output running a customised build of MPC-HC which is able to switch resolution under instruction of the first PC.

I forget the exact scenario but due to the way the screen resolutions on the two PCs change according to the Slingbox video source and the way the capture works this message used to pop up and changing that setting got rid of it.

Maybe the message doesn't exist in SVP4, but if it does then how would I suppress it?

23

(2 replies, posted in Using SVP)

Personally I'd rather they didn't do that and that they focused only on improving the quality of the interpolation. It's already excellent, but in some situations could be a little better.

Let other people worry about writing and maintaining video players...

Unfortunately I corrected the settings after it happened, but I'll certainly attach it when I see it again.

Bizarre, had this happen again today after another powercut. All 4 machines again.

Doesn't reproduce everytime though.

Is it possible that SVP is holding the settings file handle open while running or something and maybe this is leaving the file in an indeterminate state upon restart?

It's always the same outcome too - back to Russian language and settings to defaults. Maybe this is what you get when the file gets deleted/corrupted/truncated and it can't read the settings?

Next time it happens I'll see if I can spot anything about the files but is there any chance you can check your code and see if there are any flaws that might surface if power is lost while SVP is running?