What is the best way to emulate a screen/monitor on Linux, Windows or OSX?

7,380

Solution 1

Open technological standards for abstracting true display interfaces over arbitrary connections (I.E. Miracast) seem to be still in their infancy, and rife with (in)compatibility issues. On the other hand, writing your own virtual display drivers and clients will almost certainly lead to all sorts of headaches with different display protocols, hardware vendors, etc.

However, the only important part of a display interface is the video data, and there are all sorts of standards for capturing and streaming that.

So the easiest way to achieve the effect of a virtualized second screen may be to just configure your OS to render it (without a real display device connected), and then capture and transmit it using conventional off-the-shelf screen capturing and recording software, such as OBS, or even Skype.

If you're okay with including an inexpensive hardware component in the final solution, then the easiest way to make your local machine render that virtualized second screen might be to use a physical dongle like the following product:

CompuLab Display Emulator (fit-Headless)

(So you could plug that in, set it up like any monitor, and then connect your two computers using an OBS stream, Skype call, remote desktop session, or whichever method of video streaming works best for you.)

This also carries the benefit of requiring customization only in user-land, and even then only with widely supported systems.

Solution 2

The most similar solution to your task is Spacedesk. https://www.spacedesk.net/ They have done a great job and this requires a lot of specific knowledge. As a response to what's waiting for you here: "There is only about a handful of people on the planet (including ourselves of course) who can write such non-stadard WDDM drivers faking virtual displays and being able to maintain them over many Windows releases and over a long period of time." (Marcel Rüdinger, Spacedesk/datronicsoft Inc.)

Solution 3

It seems like teamviewer application could be your friend here, its free and cross-platform. https://www.teamviewer.com/en/ is that what you mean ?

Share:
7,380

Related videos on Youtube

tensai
Author by

tensai

Updated on September 18, 2022

Comments

  • tensai
    tensai over 1 year

    I am working on a project where I am creating a virtual second screen device which I want to send over the network to another rendering device (another computer, connected to a screen of some sorts.) Sort of like Windows' implementation of miracast.

    I was wondering, what is the best way to go about emulating a monitor or screen connected via HDMI or VGA to your local machine.

    Which languages should I be looking at doing this in? Would I need to write my own operating system drivers for the custom virtual device that I am building?

  • tensai
    tensai about 6 years
    Thank you for your answer. Teamviewer is not what I am looking for as it only interacts with existing screens. What I am thinking of is a solution like teamviwer but instead a non-phyiscal monitor is "projected" onto a second screen. So think of it like wireless HDMI.
  • tensai
    tensai about 6 years
    This is an amazing project. Thank you for sharing this. This looks quite close to what windows seems to be working on with its miracast implementation. I am looking for something that I can use on a linux machine.
  • IGRIG
    IGRIG about 6 years
    Miracast will allow you to connect only one display, which must have its own client (Miracast sink, not available for iOS and problems for Android). Spacedesk can connect up to 4 displays simultaneously and there is a client for Android / iOS / Windows. And what do you plan to use as source (host) / target (client)? For Linux, there are many developments in this area, you can also try to work out VirtualBox Guest addition driver.
  • tensai
    tensai about 6 years
    Yes, this was the idea. Connect just one screen, to use for powerpoint presentations etc. The sink would either be a raspberry pi or a desktop machine connected to the screen. And yes, it seems like spacedesk has solved the problem for windows. I was just trying to see how difficult it would be to get started with a client for Linux.