Best way to screen share Android phone TO Manjaro?

I’ve been doing all of the typical Google searches but I haven’t really found what I’m looking for so I thought I’d ask all of you…

My home setup: Manjaro PC and LG TV are both wired to my WIFI router with CAT6.

My Galaxy NOTE9 phone has a built-in Samsung app that let’s me mirror the screen to my TV. It works really well and there is hardly any lag. I can swipe through my photo albums and even watch videos, with sound. I think it’s using Miracast, because I can also screencast to my friend’s Windows 10 PC. When I try to do that in my Windows 10 VM, it says “This device doesn’t support Miracast”.

Okay, so I HAVE found the following solution:

  1. Enable USB debugging on Android phone
  2. Install adb on Manjaro (it was already installed)
  3. Install scrcpy on Manjaro (installed from Add/Remove Programs)

I had to do a couple of steps to allow the connection and set a port, but that was fairly easy.

Now, all I have to do is enter the following in a Manjaro terminal:
$ scrcpy
and my phone’s screen magically appears on my desktop, in a window!
GREAT RIGHT?? Well kinda…

It LAGS SO BADLY!! It looks great but its SOOOOOO SLOW. I tried improving the situation by reading
$ scrcpy --help
and then doing…

$ scrcpy --bit-rate=2M --max-fps=15 --max-size=1280

That makes it A LOT better, but it’s still nowhere as fast and clean as when I screencast from my phone to my TV, and it’s not even a Samsung TV.

So… Is there a better way? Is there an app on Manjaro that supports receiving Miracast from my phone? Is there an app like the one BUILT-IN to Windows 10, where the Win10 PC shows up in my phone’s list of devices that I can screencast to?

Thanks!!

1 Like

Not tried it myself but this is a version of miracast for linux

https://aur.archlinux.org/packages/miraclecast-git

or there is Gnome Network displays, it says it should work on all desktops

have u tried samsung dex mode?

Thanks. From what I understand, this is for connecting external monitors to your desktop via WIFI. So, that’s the opposite of what I want to do. I want to cast my phone screen TO my desktop.

I might experiment with it to see what options it has.

Okay, I have it installed and it looks like the connection can go either way. However, I’m having a little trouble understanding how to make it work. I’m reading the wiki here:

I’m not sure what I have to do on my Android phone. Any ideas?

UPDATE:
I just found this comment and it looks like I’m having similar issues. I cannot get miraclecast to work, either sending or receiving:

I think I’m going to look for another solution.

maybe this is what you are looking for.

@chriz please correct me if I’m wrong, but isn’t that just a gui for scrcpy?

scrcpy is the best option for controlling your Android device from your PC. As suggested above, guiscrcpy is a GUI option for it. However, no one ever claimed it was designed for mirroring video or gaming.

Samsung is the Apple of the Android world: A proprietary ecosystem that does not work with anything outside of it. Miracast is also proprietary.

There used to be good options like Vysor, however Koush (long time Android developer) abandoned Android with no warning years ago.

1 Like

@Yochanan Thanks for your input! I’ve been trying to do gaming and Twitch streaming from Manjaro and I’ve been pretty successful so far. I want to prove to all my Windows friends that you can do it without too much trouble.

Its a bit disappointing that I can go to my friend’s house and select “Projecting to this PC” from Windows 10 and it just works. I’m not surprised it doesn’t work here in my VM, but I feel like this capability shouldn’t be that difficult in Manjaro, no?

Maybe there are some advanced settings in scrcpy that I could use? another codec? can it use RTSP?

According to Miracast - Wikipedia

The Wi-Fi Alliance launched the Miracast certification program at the end of 2012.[3] Devices that are Miracast-certified can communicate with each other, regardless of manufacturer. Adapters became available that may be plugged either into HDMI or USB ports, allowing devices without built-in Miracast support to connect via Miracast.[citation needed] In 2013, Nvidia announced support for Miracast.[4] In 2017, Wi-Fi Alliance stated Miracast as a use for Wi-Fi Direct.[5]

Miracast is based on the peer-to-peer Wi-Fi Direct standard. It allows sending up to 1080p HD video (H.264 codec) and 5.1 surround sound (AAC and AC3 are optional codecs, mandated codec is linear pulse-code modulation – 16 bits 48 kHz 2 channels).[6] The connection is created via WPS and therefore is secured with WPA2. IPv4 is used on the Internet layer. On the transport layer, TCP or UDP are used. On the application layer, the stream is initiated and controlled via RTSP, RTP for the data transfer.[7][8][9][10]

and it also says…

GNOME Network Displays[40] is an experimental Miracast implementation for Linux. Despite its name, it should work on all Linux desktop environments. It provides a GUI and should work out of the box for most Miracast devices.

I just tried installing gnome-network-displays from AUR and I get the following error:

==> Starting check()...
ninja: Entering directory `/var/tmp/pamac-build-design215/gnome-network-displays/src/build'
ninja: no work to do.
1/3 Validate desktop file   OK              0.01s
2/3 Validate schema file    OK              0.00s
3/3 Validate appstream file FAIL            0.12s   killed by signal 11 SIGSEGV
>>> MALLOC_PERTURB_=219 /usr/bin/appstream-util validate data/org.gnome.NetworkDisplays.appdata.xml
――――――――――――――――――――――――――――――――――――― ✀  ―――――――――――――――――――――――――――――――――――――
stdout:
data/org.gnome.NetworkDisplays.appdata.xml: 
stderr:

(appstream-util:9242): GLib-GIO-CRITICAL **: 18:30:48.931: g_proxy_resolver_lookup: assertion 'G_IS_PROXY_RESOLVER (resolver)' failed
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――


Summary of Failures:

3/3 Validate appstream file FAIL            0.12s   killed by signal 11 SIGSEGV

Ok:                 2   
Expected Fail:      0   
Fail:               1   
Unexpected Pass:    0   
Skipped:            0   
Timeout:            0   

Full log written to /var/tmp/pamac-build-design215/gnome-network-displays/src/build/meson-logs/testlog.txt
==> ERROR: A failure occurred in check().
    Aborting...


what to try next??

Try again with 0.90.5-4. :wink:

FYI, GNOME Network Displays will only allow you to cast from your PC to a Miracast device (soon with Chromecast support), not from Android to PC.

2 Likes

Ohhhh, well there goes that idea lol

oh my bad, yes it is.

@Yochanan I installed Gnome Network Displays and I’m trying to make it work. I know this is the opposite of my end goal, but I still want to see it work.

So, on my phone, I start Smart View > Other device to phone.

  • Gnome Network Displays sees my phone and I click it
  • my phone asks to accept the connection and I tap ACCEPT
  • it looks like they’re going to connect, and then Gnome Network Displays says Error

How do I debug this? It seems like the same problem the one commenter was having with Miraclecast. Maybe if I can figure out what’s wrong here, I can get Miraclecast to work??