Topic: Capture device support

Is it possible to get SVP working with capture devices such as a webcam or a capture card? I have tried to use SVP (via FFDSHOW) in GraphEdit and the video is not 60fps. Is it possible for SVP to support capture devices?

Re: Capture device support

Read this:
Screen capture and svp?
SVP + Dscaler or oth. software for capture cards (PDI, sweetspot..)
Frame doubling on capture device sources (30 fps console games)
Would SVP work with AverMedia Extremecap U3?
Audio sync issue with capture device and SVP 'Auto' threads

Re: Capture device support

So I played around with MPC and read the links however there is latency. I reduced the buffer in FFDshow and decreased the lag but there is still a significance lag from the capture feed. Is it possible to further reduce the lag or have it removed at all?

Re: Capture device support

matthewn4444
I think No. But you can try. You need to study direct show chain and reduce all buffers size in it.

5 (edited by oviano 20-04-2014 07:34:44)

Re: Capture device support

matthewn4444 wrote:

So I played around with MPC and read the links however there is latency. I reduced the buffer in FFDshow and decreased the lag but there is still a significance lag from the capture feed. Is it possible to further reduce the lag or have it removed at all?

What sort of latency would be acceptable to you?

I have a capture-based setup involving a USB capture device (Magewell XI100DUSB-HDMI) and mini PC (Gigabyte Brix Pro i7) which has a latency of about 400ms. The GB Pro is set to use 8 threads, which allows me to use all default settings for SVP except for Frames Interpolation Mode = Uniform and Motion Vectors Grid = 6 for maximum smoothness. This comfortably smoothes 25 or 30fps sources to 50fps or 60fps accordingly. It may be possible to reduce latency further by switching to 4 threads or less and reducing the intensity of the SVP settings.

From my extensive trial and error the biggest effect by far on the latency is the number of threads, but also make sure you have factored in the latency of the capture device itself. The device I'm using is pretty much zero latency running over USB - maybe a frame or two latency - but some devices, most likely those which encode the video (rather than raw capture it, as mine does), can add plenty of latency of their own even before it hits SVP.

Re: Capture device support

Well I was trying to write a program to capture the footage from a PS3 via capture card that has almost no latency to display on the screen. I developed the directshow graph already but I have issues attaching FFDshow to the graph (but that is another issue). The other issue was that the capture card captures 720p at 60fps (although the game is rendering at 30fps). I tried to reducing the fps by half by creating a custom filter to drop every other frame and then attach FFDshow with SVP to double the framerate. This did not work because even if FFDshow raw filter was after the half framerate filter, but the raw filter runs first (which SVP does not do anything since source is 60fps) then it gets halved. I also tried to do 1080i at 30fps (from the capture card) and there was noticeable lag on the video when playing a game (not a fast paced shooter). I have not figured a way to add SVP to the graph correctly to get the effect. Similarly I tried madVR; it cannot use smooth motion with capture devices. Any suggestions? I can provide source code if needed.

Re: Capture device support

matthewn4444
You can do "drop every other frame" and "double the framerate" in one script in ffdShow. Just choose in SVP tray menu - Video repair - Drop every other frame

8 (edited by oviano 21-04-2014 07:51:52)

Re: Capture device support

matthewn4444 wrote:

Well I was trying to write a program to capture the footage from a PS3 via capture card that has almost no latency to display on the screen. I developed the directshow graph already but I have issues attaching FFDshow to the graph (but that is another issue). The other issue was that the capture card captures 720p at 60fps (although the game is rendering at 30fps). I tried to reducing the fps by half by creating a custom filter to drop every other frame and then attach FFDshow with SVP to double the framerate. This did not work because even if FFDshow raw filter was after the half framerate filter, but the raw filter runs first (which SVP does not do anything since source is 60fps) then it gets halved. I also tried to do 1080i at 30fps (from the capture card) and there was noticeable lag on the video when playing a game (not a fast paced shooter). I have not figured a way to add SVP to the graph correctly to get the effect. Similarly I tried madVR; it cannot use smooth motion with capture devices. Any suggestions? I can provide source code if needed.

You could maybe look at the source code for MPC-HC and see how it's coded there, as they support the scenario you describe. I actually capture a 50/60 fps source at 25/30fps using MPC-HC and use SVP to interpolate back to 50/60fps in a similar manner.

I modified the MPC-HC source code for some other uses so I can confirm it was pretty easy to setup a build environment and compile the latest source.

Re: Capture device support

My problem currently is trying to cut the framerate in half before SVP handles the video. Again, I wrote a directshow filter to drop every other filter  but the filter only happans after FFDshow (SVP) has modified the data. I cannot change the capture card to get 30fps instead of 60fps (since the actual game is 30fps).

Re: Capture device support

matthewn4444 wrote:

My problem currently is trying to cut the framerate in half before SVP handles the video. Again, I wrote a directshow filter to drop every other filter  but the filter only happans after FFDshow (SVP) has modified the data. I cannot change the capture card to get 30fps instead of 60fps (since the actual game is 30fps).

...hence my suggestion to see how the same can be achieved in MPC-HC by looking at their source code.

In MPC-HC you can select the capture framerate and so if you select 30fps from
a 60fps it will do what you require - so have a look and see how they achieve it.