[Feature Request] Vsync for video capture device?

mmaxt

New Member
it seems that screen tearing occurs when using any capture card to capture a monitor with a refreshrate higher than that of the capture card. (this specifically happens while playing a game in fullscreen)
for example my gaming pc has a 144hz monitor, I use the elgato HD60Pro in my streaming pc to capture it, I get screen tearing.
The only fix for the screen tearing right now, is to lower the refreshrate of the monitor to 60hz, but nobody buys a high refreshrate monitor just to but it back down to 60hz.
This is only a wish, but I really hope that its possible to add a vsync setting for the video capture device source.

Thanks for checking out my suggestion.
 
Last edited:

DEDRICK

Member
The workaround for this is convoluted, many streamers do it this way for the very issue you are having.

1. Do an Extended desktop instead of a duplicate for the Elgato "monitor" on your gaming PC.
2. Run OBS on your Gaming PC with a Game Capture Source or your entire scene setup (This will use some GPU but no actual encoding is done)
3. Right-click your preview and go to Fullscreen projector
4. Select the new extended desktop of your Elgato as the Fullscreen Projector
5. This will send a v-synced output to your Stream PC to be encoded
 

mmaxt

New Member
That doesn't sound like something I would want to do. And at that point you are capping your fps to 60, which I would also prefer not to do.
This is why I'm asking for a Vsync setting/feature for the video capture device source instead, as a legitimate fix
 

DEDRICK

Member
I think you mis-understood.
Your main monitor stays 144Hz
Your extended Monitor is the Elgato, which is 60Hz
Your OBS Preview Output is 60 FPS and already V synced due to DWM
When you send it over to the Elgato it is V-synced
 

mmaxt

New Member
Yes I understand this, but I play my games above 60fps and would rather not cap the frame rate as the obs preview will be at 60fps rather than the full fps I get in game.
I would much rather have a Vsync setting for the video capture device source, instead of going through a convoluted process, especially when that process caps my framerate. It also means that the game won't get the benefit of freesync, because the capture card uses hdmi, so at that point screen tearing would occur in game unless I enable vysnc in game, which I will not do because it nullifies the whole reason bought my monitor. But adding a Vsync setting for the video capture device source in obs would hopefully fix all this.
And honestly, for an issue so common, I'm surprised a legit fix hasn't been made
 
Last edited:

DEDRICK

Member
I'll post the solution from Elgato's own marketing team, will full instructions. No where in here are you capping your FPS in game or losing FreeSync, or enabling V-sync.

Very bottom line
  • That’s it. Now you can play at 144hz, and capture/stream at 60fps without screen tearing issues.
https://www.reddit.com/r/Twitch/com...itor_capture_cards_streaming_pcs_and/d95pifg/

  • Connect the HD60 S to the HDMI output of your GPU.
  • Right click anywhere on the desktop and open the Windows Display Settings.
  • In the display settings, click on Multiple Displays and choose Extend these displays
  • Check the box that says Make this my main display on your main monitor
  • You may see some flickering on your monitors.
  • You should now see your main monitor normally, and the second monitor acts as an extended display.
  • Download OBS Studio
  • Once OBS Studio is installed, go into the settings by going to the top right and clicking File -> Settings
  • In the settings, on the left sidebar, click on Video.
  • Set the base resolution to 1080p(1920 x 1080) and the output resolution to 1080p as well. Set the FPS to 60.
  • Click ok.
  • Now click the ‘+’ button in the sources box, and add a new Display Capture source.
  • Call it whatever you like. Once the property panel opens, make sure Display 0: 1920x1080 @ 0,0 is selected. This is your main monitor.
  • Now hit ok.
  • Now lets verify that your main display is at 144hz and your second display is running at 60hz.
  • Right click anywhere on the desktop, and open the Display settings.
  • Scroll down and open the Advanced Display settings.
  • At the bottom, open the Display adapter properties.
  • You should now see a info panel open, showing the name and info about your GPU.
  • At the top, click on the Monitor tab. You should see a dropdown menu called Screen refresh rate, and it should be at 144hz. If it is not, * * choose 144hz from the dropdown menu.
  • Now repeat this process, but make sure that you have clicked on display two in the display settings.
  • Right click anywhere in the OBS Studio preview, where you should now see a clone of your main display.
  • Click on Fullscreen projector (Preview) and choose Display 1: 1920x1080,0.
  • OBS Studio will now go fullscreen, and what you should be seeing is a one-to-one clone of what is on your main display.
  • That’s it. Now you can play at 144hz, and capture/stream at 60fps without screen tearing issues.
 

mmaxt

New Member
This workaround is incredibly convuluted, it also just does not work for me. it makes the framerate TERRIBLE.
take a look. https://www.twitch.tv/videos/222311068 its a recording from my main gaming PC.

even if I did get this to work, this is not something I want to go through.
I appreciate the help, but a legitimate fix needs to be made.
 
Last edited:

FerretBomb

Active Member
It's a hardware issue, not a software issue, and *definitely* not an OBS issue. The HD60 Pro can't magically vsync an incoming source from 144hz, because that's not how vsync works.
If you need 144hz capture, you will need a higher-end capture card, full-stop. Look at grabbing an Elgato 4K60, or a Magewell card with the appropriate capture bandwidth that can support refresh capture rates at the resolution you need.
 
It's a hardware issue, not a software issue, and *definitely* not an OBS issue. The HD60 Pro can't magically vsync an incoming source from 144hz, because that's not how vsync works.
If you need 144hz capture, you will need a higher-end capture card, full-stop. Look at grabbing an Elgato 4K60, or a Magewell card with the appropriate capture bandwidth that can support refresh capture rates at the resolution you need.

You are incorrect. I have an Avermedia Live Gamer Ultra. It can take 240 hz at 1080p or 144hz at 1440p.. I get screen tearing. It's the problem of when you clone a display it sends the same refresh rate that the gaming p.c. is running. There are plenty of forum posts with people getting screen tearing with higher fps cards. Running OBS on the gaming PC and full screen projection works, however it causes input lag. Which sucks. Disabling the preview window helps but there is still lag in comparison to not using OBS on your gaming pc and cloning you gaming pc.

Ideally OBS or a capture card company should integrate an fps capper. The fact that capture card companies sell cards that boast high fps input but cause screen tearing is infuriating.
 
Top