Built-in Miracast support (Wireless display specification)

The Wifi Display Specification (WDS) also known as Miracast is an open standard to allow computers and devices to connect wirelessly to displays, and use them as monitors. I am not an expert on it, but as far as I understand it internally uses H264 or some lossy codec to stream video data from a screen buffer to the destination screen via the device’s Wifi chip. Many devices already support this, including all Windows 8 and later devices, as well as Android devices. All smart TV’s I have used in recent years also support it. It’s not a replacement for a cable, but a great and convenient feature in general.

Currently, setting up Miracast on Linux is an awkward affair. KDE does not have built in support for this currently. From what I can tell online, there’s currently MiracleCast which is a standalone tool, but it is not very user friendly or intuitive and requires setting things up on the command line. I believe GNOME is working on a solution but from what I can tell it’s still experimental.

Ideally we should be able to press a keyboard shortcut, and a popup would appear, and it would search for nearby screens. The user would then select a screen and it would connect. If the connection is established, then the screen would be treated like any other display connected to the computer. The desktop can be mirrored, or extended to the screen. After a display is connected, there should be some easy controls over bitrate and latency, so the user can adjust depending on their application (e.g. presentations require good quality but can tolerate high latency, gaming requires low latency but can tolerate low quality). There should also be some HiDPI controls

I think this feature is a great candidate for Plasma 6, since it would probably be a lot easier to integrate with plasma using Wayland, but I’m not an expert.

5 Likes

Would be really cool, but afaik there’s no good library that implements Miracast, so this is quite difficult and time consuming to implement.

Wouldn’t MiracleCast work for this?

1 Like

Maybe eventually, but the readme and some issues in the repo suggest you have to disable networkmanager for it to work, which is a deal breaker

2 Likes

I think it doesn’t support actually streaming content to devices at the moment - there’s been an issue related to this for several years that’s also listed in the README. Its networking is also a bit of a hassle to set up.

I think aethercast (which the Ubuntu Phone uses) might be more promising.

In the meantime GNOME Network Displays works OK, and in spite of the name doesn’t require much of GNOME, the only inconvenience is getting it working with your firewall.

Maybe I am not reading this correctly but it looks like the NetworkManager conflict is when using the device as a sink, which is typically not going to be the use for us. I would think the typical use would be to cast a KDE desktop to a remote display that would already have its own handling of Miracast and the KDE desktop would be the source.

2 Likes