Virtual Monitor Capture

kaloc

Member
What if a game capture / streaming program had the ability to tap into a virtual monitor ? All the fullscreen capture issues could be a thing of the past ! No more waiting for updates because the latest OpenGL or DirectX game can't be captured with api hooking !!

Now with that grandstanding aside, here is an example of software that uses the tech for multi-monitor scenarios : http://spacedesk.ph/features/

Now in the case of the first example, it captures the data, compresses it and sends to the client, but if implemented differently the data could be a source for capture software. ( Mirror main display for capture on same pc )

Here is another program that seems to have a better driver:
https://avatron.com/air-display-for-windows-8-now-available/

This is just an idea I had the other day when tinkering with my capture card, but it does seem like it would work. Would it be as fast as game capture ? Is the performance and framerate even feasible for game capture ? If I had to guess, I'd say it would be at the level of window capture ( performance wise ).

I'm curious as to what the devs or other programmers think about the concept. I've not seen any other capture software using this method as I'm sure the driver development is no easy task ( among other things ).

What do you think ?
 
Last edited:

Jack0r

The Helping Squad
You still need a gamecapture or similar feature to be able to capture the program/game which would bring all the issues you want to get rid of back, then you would need to compress the data which will eat cpu usage and then you want to send it to OBS? Or to OBS on another PC?
 

kaloc

Member
This image might help clear things up, the original image is from : http://www.ntu.edu.sg/home/ehchua/programming/opengl/cg_basicstheory.html

X0XWw32.jpg

Since the virtual monitor is simply a driver and the raw RGB frames would be sent to it by the OS (because of mirror mode), there is no traditional game capture needed. OBS could hopefully use the virtual monitor as a source and process the data like any other source. It would basically function as a virtual capture card.
 
Last edited:
Top