"Screenlink" - Instant Screen Mirroring
2014 (with updates in 2020)
Imagine you could use any screen nearby.
Motivation
Have you ever visited a friend or a relative and wanted to show some pictures or videos from your smartphone/tablet on their television screen or on their computer screen? If you're allowed to access the local WiFi and you're lucky to find compatible devices, Airplay or Miracast might work. If not - hmm, the straightforward task gets complicated (by the way, this reminds me of the comic https://xkcd.com/949/).
The same problem occurs in other occasions. You might want to use a TV screen in a hotel room to watch your media. Or you might want to present some media in a conference room, on your colleague's computer monitor, or in a classroom. In all these case, the straightforward task to present some files from your mobile device is somewhere between complicated and almost impossible.
I'd like a simple solution for this. Userfriendy. Without needing to think about network connectivity and screencast protocols. I image to be able to use any screen in my local proximity. Estabishing screen mirroring (audio output optionally as well) shall be initiated with my mobile device as simple as by tapping a NFC tag nearby the screen or by scanning a shown QR code.
This would be convenient now but even more relevant in future. The importance of ones smartphone increases, screens become more and more ubiquitious and can be found everywhere - at home, at work, an in public. Wouldn't it be nice if I could easily use any nearby screen as a bigger output device for my smartphone? And if the device were a touchscreen or had a keyboard/mouse attached then also as input device?
Description
I had this "Screenlink" / "Ubiquitous Screens" vision for quite some time, my first notes date from 2012. In 2013 I presented it in the company I work for (as "Digital Life at Home") and filed an invention report titled "Remote screens with user-friendly pairing and optional ad support" at the beginning of 2014. However, it did not become a registered patent.
Basic requirements are:
- pairing the devices shall be user-friendly and self-explaining
- solution shall work network-independently
- solution shall work with devices in different adminstrative domains
- devices from multiple vendors shall be supported
- security is properly considered
Details are described in the document referenced below.
Implementation
The building blocks are commonly available: modern web browsers with WebRTC support and screensharing capabilities, almost ubiquitous Internet connectivity (for mobile devices, computers, smart televisions, etc.), smartphones with cameras that can read QR codes from within a web browser, etc. However, since Javascript is not my particular passion, I have not implemented this end-to-end. If you read this and consider yourself destined to implement it together with me, then contact me.
In 2020, a straightforward implementation would use standard web browsers running a screensharing application based on lib-jitsi-meet API that is controlled by some additional logic for handling the device pairing process.