There are also other examples for screen+audio mirroring in the opposite direction (PC->Rpi) if you are interested. For example, you play a game on a PC and the screen is mirrored to the Rpi display with ~no latency probably (depending on the resolution).

@Quackwalks the software (UV4L) is based on standard web technology for realtime bidirectional streaming of audio/video/data between peers in any network including internet.

I had no problems with playing games in a LAN in various resolutions. In the posted demo the Rpi was on a wired network to my old router, while the PC was on WiFi, and the USB controller was attached to the Rpi directly because I was too lazy to configure RetroPie to work with the keyboard so that it could be controlled through the browser. In any case, the web application can certainly be extended to capture any gamepad connected to the PC (thorugh the JS gamepad API) other than browser keystrokes.

It's worth to try this over the internet p2p to see how well it works, e.g. by exposing your Rpi to the internet or by configuring NAT traversal by specifiying a public TURN server for relaying the media/data streams.

More interestingly, apart from the above direct peer-to-peer way, UV4L supports Janus web videorooms "in the cloud". In other words, the scenario would be the following: the Rpi in the LAN streams RetroPie to a public videoroom where one ore more participants (e.g. observers or active players) with their browsers could watch or even play the game by sending their keyboard events back to the Rpi. What is missing from this scenario to work out-of-the-box at the moment is that the Janus videoroom web interface provided by default should have to be slightly patched to capture and send the keystrokes. If there is enough interest in this, we might put some efforts in developing or giving hints to develop the missing piece (but, again, it's Javascript, so potentially every JS dev. could do that).

@thelostsoul no, I was still talking about UV4L (the same software pointed out in the initial post). It also allows to mirror the whole PC desktop (video + audio) with imperceptible latency from the browser to the Rpi (as opposite to the Rpi->PC demo). Again, it's everything based on standard web technology so there is no need to install any special software on the PC (i.e. the browser is enough). However, I admit I do not exactly know if pure mirroring is the same as what SteamLink does, or if it does more things, e.g. where is the gamepad controller attached to when using SteamLink, is it attached to the Rpi or to the PC?

@lproj Oh okay then, I don't want hijack this thread. But to answer your question, in Steam Link app, you connect the gamepad to the smartphone. It works suprisingly good, have no apparent lag and have full support for all gamepads and mouse which Steam supports, but it is not over the internet.

Although I am not super interested in streaming for now, this is still an interesting alternative project.

would anybody be interested in playing retropie games in the PC/Android browser (plugin-free) as shown above, by only using your voice and/or gestures to control the player instead of/together with the gamepad controller?

This is another demo. The game (Super Mario) is played from an Android Smartphone this time (in Chrome to be specific, no plug-in required) with a wireless GameSir controller attached to it. As usual the game runs on an headless Raspberry Pi 3B+ (with no display, no speakers, no gamepad connected). (To be honest, for demo purposes a display was also connected to the Raspberry Pi, but it was not necessary.) Easy-to-follow Instructions to try the same will be provided soon.