Hacker News new | past | comments | ask | show | jobs | submit login
Scrcpy 2.0 mirrors Android devices with audio forwarding (github.com/genymobile)
250 points by rom1v on March 14, 2023 | hide | past | favorite | 60 comments



Scrpy has been such a great tool!

There is another project inspired by scrcpy (I think) called sndcpy but it's no longer maintained it seems, so I'm very glad to see these capabilities added to scrcpy.

I've been trying in the past and failed to setup an A2DP + Bluez to allow me to use my desktop machine as a handset for my android phone. I know that such tools exist for Windows but couldn't to work well on Mac or Linux. If Scrcpy had a bi-directional audio copy (i.e. mount a mic), it would probably be able to do just that.


> There is another project inspired by scrcpy (I think) called sndcpy but it's no longer maintained it seems, so I'm very glad to see these capabilities added to scrcpy.

From the blog post:

> With the introduction of a new API to capture audio from an Android app in Android 10, I made a prototype called sndcpy. …

Not only was it work by the same author, it was one of _multiple_ pushes to make this work. Nice!


Very cool, didn't notice it was the same author :)


If you want to go down a rabbit hole and your device that supports it, you can gain additional benefits by using an HDMI/USB dongle and then capture the output of that using a capture card. You can then get a device that has OTG capabilities to emulate a keyboard/mouse that you control remotely.


I'd love to hear more, but before we go there, let me start by saying that my goal by trying to do so with A2DP + Bluez was to share the same audio input I have for my desktop (dynamic mic + USB interface + Reaper + BlackHole) without having to connect my phone via wire every time I want to use that setup for regular phone calls, which I sometimes do, though of course since I use the USB audio interface directly with my phone, I lose the ability to use Reaper (with BlackHole) as a mixer.

With that said, I'd love to hear more details about how you'd wire the devices you suggest to achieve that (I'm not saying it won't work, just curious to see how you think it's best to go about it), more specifically:

1. How exactly do you leverage an HDMI/USB dongle (USB C to HDMI I assume) + capture card (HDMI to USB video device is what I assume here) to direct audio output from a phone to my desktop (let's say macOS).

2. At the same time - directing my desktop audio input device as an internal mic on my android phone.

btw, if you (or anyone) has successfully made such setup to work to work via BT (i.e. using a macOS as handset for Android phone) please let me know, I'd really love to learn how you got this to work.


So our end goals are kind of the opposite. I wanted a setup that I can plug in once and not fiddle with ever which is why I wanted everything wired all the way. My hardware investigation also occurred because I noticed that scrcpy fails to display banking/protected apps while HDMI works just fine.

There should be two ways to get audio out of the phone, either via HDMI or via the cheap USB C to 3.5mm adapters. (HDMI audio splitters also exist if you need them for some reason)

To get audio into the phone, the 3.5mm adapter should be able to handle that since they can handle headsets with microphones via a 3.5mm TRRS jack.

I have not tried this setup out yet but it should work in theory.


Thanks for the answer!

It does sound like it would be best for a fixed setup. The only unknown for me is whether Android that lacks 3.5mm port could handle USB to HDMI and TRRS to USB at the same time.


I just tried it out with headphones (Phone > HDMI/USB Hub > USB A to C adapter > google usb c to 3.5mm adapter) and it seems to work. It would be interesting to test it with the $<5 USB sound cards but I don't have one on hand.


Thanks a lot! I'll have to try this Frankenstein of a setup this week :)


This app and its sister app, Gnirehtet, were essential to me as an Android dev in a corporate environment. It's very cool to see them continuing to ship features in the face of Android Studio releasing mirroring and remote control. I am excited to check out this update!


Used scrcpy on Friday to recover/access data from a phone with a mostly broke screen. Very impressive. Straightforward and easy to use.


If the screen was broken how did you manage to enable debugging and perform authorization?


Not OP. I faced a similar problem once.

I found a friend that owned the same model of phone as mine. I used his phone to approximately eye-measure where on the screen I have to press after entering the Settings app.

Now I repeated these presses on my phone. Luckily, although my phone was broken and the screen had become almost fully black, the touches registered.

----------- edit:- If you find it difficult to find a friend that owns your unique phone, your local mobile shop might have a demo phone for you to try out.

Or Youtube search for a video titled "How to enable debugging permissions on Samsung S8?"


I actually have the perfect(?) solution to this ridiculous problem after it happened to me a couple of months ago.

Hit the Google Assistant button, ask it to turn on "TalkBack". Now you can browse the interface the same way someone blind would browse the interface. Plug in a USB keyboard.

From here you go to the Settings page and enable Developer Tools.


If you have assistant disabled, holding down volume-up and volume-down buttons together on the lockscreen should have the same effect


in my case a simple USBC-2-USB adaptor allowed me to connect a mouse and it worked right away

like this: https://www.youtube.com/watch?v=2wggP-e3A1Y

stupid as it looks it saved my data without any sophisticated repair


The comment said 'mostly broke', many people are familiar enough with their phones and the various screens prompts to do this without looking at all, or with a little guess work with help from various only resources, images & videos.


Perhaps the prompt wasn't on the broken part? Can also plug in a keyboard and use that if you know the sequence.


Note that scrcpy has an OTG mode which allows to use the computer keyboard and mouse "as if" they were connected via an OTG cable: https://github.com/Genymobile/scrcpy/blob/master/doc/hid-otg... (in that case, USB debugging is not necessary)

> Can also plug in a keyboard and use that if you know the sequence.

For information, once the phone is unlocked and the authorization popup is open, the sequence to validate the authorization popup is Tab, Enter, Tab, Tab, Enter. The difficult part is to enable USB debugging to get the authorization popup without adb though.


Has anyone gotten this mode to work with Windows yet?



Thanks ... I'll try installing the Google drivers.


srcpy can actually emulate a keyboard and mouse in OTG mode! Discovering that was a thrill for my use case.


Has anyone gotten this mode to work with Windows yet?


Either was already enabled or utilized a custom recovery and modified build.prop.


I would love to read more about this solution. Would you please direct me to the appropriate XDA forum thread please. Please...:)


No XDA thread that I know of, but have a nice gist. https://gist.github.com/varhub/7b9555cdd1e5ad785ffde2300fcfd...


Thank you!

Bye, going to Craigslist to buy them broken landfill phones before your suggestion becomes more popular and the price increases :)


scrcpy (mnemonic SCReen CoPY) is such a cool, unique, easily googlable & memorable name.

I pray to God to give me this wisdom everytime I am goofing off on instantdomainsearch.

---------edit:-

    Why scrcpy?
    A colleague challenged me to find a 
    name as unpronounceable as gnirehtet.

    strcpy copies a string; scrcpy copies a screen.
https://github.com/Genymobile/scrcpy/tree/4e9e712#why-scrcpy


Super interesting comment, since I've used the software for years and had always assumed the name had something to do with "scraping" your UI from your phone to your screen.

Agreed on the cool/unique, but I could never remember the name when I needed to look for it, because I never made the "screen copy" connection.

Just another data point for why marketing is a thing, I suppose.


Thank you. Let us assume that you were the owner of a hypothetical business named scrcpy.com

You would love for browsers to implement CSS colored urls or capital lettering to resolve both the issues you raised.


And up next, scrncpy


it looks to similar to strcpy() which for some reason makes it confusing and not at all memorable to me. (and i don't even write code in languages that have this function)


Being similar to strcpy() seems to have been intentional by its creator.

Alas, a feature has turned into a bug :(


I hooked up scrcpy to opencv once so it could play a game for me: https://github.com/robberth/scrcpy-opencv

Not the prettiest but it worked :-)


78,000 stars, 2096 commits, of which Romain has 87%, and he only has one GitHub sponsor:

https://github.com/sponsors/rom1v

and two LiberaPay sponsors:

https://liberapay.com/rom1v

who donate a combined 3 euro per month. If you can afford it, please send this guy some money, he has earned it many times over.


It seems like the blog post link[1] would be better than a GitHub release listing PRs?

[1]: https://blog.rom1v.com/2023/03/scrcpy-2-0-with-audio/


Big fan of scrcpy from a consumer usage perspective because I can access mobile-first apps (like Hinge, which doesn't have webchat) while still being able to use my keyboard and mouse to input.


Anyone know of a scrcpy for windows/mac/Linux? If not, why has there not been a “wired” screen mirroring tool for desktop os? Is it just more difficult than doing it for android?


Not really unless you count Ethernet as wired, in that case there are plenty of tools that work and is probably your best option (thing like parsec, nomachine, or even steam remote play).

As far as I know scrcpy only work because android devices works as USB device/gadget and can be connected to a host, two computers will work both as host and cannot be connected directly. You could do it with something akin to the Raspberry Pi that can work as a USB device instead of a host, but I don't know of any software that does directly(without emulating a network connection, and if you emulate a network connection you could use one of the many sofware for screen sharing) if i remember correctly even scrcpy use ADB to emulate a TCP connection.


two computers will work both as host and cannot be connected directly

I cannot believe transferring a file from one computer to another without a network is still such a pain in the rear.


Do these limitations also apply to the newer Thunderbolt based usb c ports? If you can’t tell I really miss target display mode and wish a wired cross platform ideally open source solution existed to use any computer as a second monitor.


Yes, as far I know.

To avoid this problem, I still carry in my bag two ethernet-to-usb adapter and an Ethernet cable to be able to quickly connect two devices together.


"Full size" computers don't usually have a way of tying to a host system like adb+USB. That said, historically I think VNC and RDP filled this role.


Scrcpy was a tool that I used everyday during my android dev years!

Really cool to see audio integrated into scrcpy without having to use sndcpy - https://github.com/rom1v/sndcpy


I wonder if this could be used to finally get universal audio streaming from the device, kind of like airplay. Perhaps using the received audio stream to create an internet radio station, which could then be played by most multiroom speakers, without needing specific support for each player app on the device.


Been using this for a while now - love it! Fantastic tool, simple and super reliable, just works out of the box!


iOS devices can use AirPlay to Mac [1]. There's various commercial "AirPlay receiver" products for Windows too. XMirage gave out a bunch of licenses years ago and still seems to work ok.

[1] https://support.apple.com/en-au/HT204289


just to register that I didn't know about scrcpy or gnirehtet, have no obvious need of either, but they are impressively neat!


Man I wish I could get this running on my Android Auto compatible car media thing.


There are a number of tools including AA Mirror that cast the phone screen to the center console (via connected USB cable).


Does it work with media players? Netflix, Disney, etc?


For DRM players I get blank video, audio works. Non-DRM players do work.


Why wouldn't it? I don't use these apps, what is special about them?


DRM, if I had to guess.


No.

It's still a userland app.


So I can use my phone as webcam now? Wirelessly?


You could already do that for years, e.g. droidcam. That has nothing to do with the article though? This is about showing the phone screen on your computer.


Last time I tried was with my Samsung S2, and I remember it being a PITA.

Now with newer phones I honestly never tried, but if I could share the screen on the pc I would be able to use AR effects from Instagram and TikTok on Skype/Discord etc.


Hm, so scrcpy+obs virtual cam or something? Sounds interesting. Another fun option is opencv for effects, e.g.

https://learnopencv.com/real-time-style-transfer-in-a-zoom-m...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: