Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Forward audio #14

Closed
benwa opened this issue Mar 9, 2018 · 289 comments
Closed

Forward audio #14

benwa opened this issue Mar 9, 2018 · 289 comments

Comments

@benwa
Copy link

benwa commented Mar 9, 2018

Directing audio to the client would be pretty neat.

Currently you can accomplish the same thing by plugging a 3.5mm cable into the mic or line-in on the computer. Some manufacturers are dropping headphone ports though.


Suggestion by @rom1v: The best solution currently is to connect the device via bluetooth to the computer. It works for all apps, it does not suffer from additional limitations and works for basically all devices.

--> There is work in progress for Android >= 11. Please test #3757 🚀

@MrLint
Copy link

MrLint commented Mar 14, 2018

Adding this would really making streaming games would so much better. So far all the other existing solutions kinda suck.

@AdoPi
Copy link
Contributor

AdoPi commented Mar 14, 2018

Is it even possible without a custom rom?

@rom1v
Copy link
Collaborator

rom1v commented Mar 17, 2018

As suggested by Juan, one possibility to investigate is using AOA.

I already implemented something using HID over AOA in the past (I even have a publicly available sample), it should be quite similar.

@rom1v
Copy link
Collaborator

rom1v commented Mar 17, 2018

I just implemented a PoC (separated of scrcpy) to enable audio forwarding from the device to the computer: aoa-audio.

On Debian stable, it "works": the device sound is played on the computer.

This is quite manual though, and several issues must be solved before something similar could be implemented in scrcpy.

Any help is welcome 😉

@AdoPi
Copy link
Contributor

AdoPi commented Mar 17, 2018

May it be possible to use AudioRecord api server side?
Problem is that AudioRecord requires an Activity context, I don't know if we can spawn one by using app_process.

@rom1v
Copy link
Collaborator

rom1v commented Mar 17, 2018

AudioRecord may only record input sources (like microphone), not the device audio output.

@AdoPi
Copy link
Contributor

AdoPi commented Mar 17, 2018

I may be wrong but here is an example of what I thought:

https://github.com/tzutalin/ReadPCMData/blob/master/src/com/da/readpcmtest/MainActivity.java

Sorry I should have added this on my previous comment.

@rom1v
Copy link
Collaborator

rom1v commented Mar 17, 2018

Oh, you're right, I missed the REMOTE_SUBMIX audio source.

@rom1v
Copy link
Collaborator

rom1v commented Mar 17, 2018

Arf, just calling new AudioRecord(…) segfaults, probably because there is no Context (fault addr 0x0).

Note that AudioRecord itself does not require a Context explicitly.

@AdoPi
Copy link
Contributor

AdoPi commented Mar 17, 2018

Yes... :(
That's why I was wondering if we could create one even if we are using app process.

Audio support is really tricky :/

@rom1v
Copy link
Collaborator

rom1v commented Mar 17, 2018

Even from an app, the source REMOTE_SUBMIX does not work:

AudioRecord: Could not get audio input for record source 8, sample rate 44100, format 0x1, channel mask 0xc, session 73, flags 0

(while it works with MIC for example).

@rom1v rom1v self-assigned this Mar 20, 2018
@rom1v
Copy link
Collaborator

rom1v commented Mar 21, 2018

Hi,

I would like to share with you my work-in-progress branch: audio. This branch can be rebased/rewritten at any time.

I implemented it, and it works fine for me! 🎉

I would like early feedbacks so that any major issue can be fixed.

Requirements

  • Linux (for now, I have problems to make it work on Windows and MacOS)
  • a device supporting AOA2
  • the device must be connected via USB (not adb connect)

How to

Install libusb:

sudo apt install libusb-1.0-0 libusb-1.0-0-dev

Checkout the audio branch:

git fetch
git checkout origin/audio

Use a debug build to report problems:

meson d
ninja -C d

Run with audio forwarding enabled:

./run d --forward-audio

The audio should be forwarded.

When closed, the audio forwarding may not be totally disabled. It may require to restart the current audio track (in VLC for example). If it is not sufficient, unplug the device. At worst (but it should not be necessary), disable/enable USB debugging.

How it works

Scrcpy connects to the device over USB to send AOA requests so that the computer becomes an "USB audio accessory" for the device.

This creates a new audio input source on the computer (which can be seen in PulseAudio for example).

Scrcpy records this input source and immediately plays it to the default output source.

Thank you for your feedbacks.

@rom1v
Copy link
Collaborator

rom1v commented Mar 23, 2018

In theory, it should now also work on Windows (in MSYS2/mingw64), with the libusb package:

pacman -S mingw-w64-x86_64-libusb

However, when it try to communicate to open the device over USB on Windows, libusb_open() returns -3, which is (according to libusb_strerror()):

Access denied (insufficient permissions)

I have no idea how to get the permissions granted. Any ideas?

@eyal-lezmy
Copy link

eyal-lezmy commented Mar 24, 2018

On macOS you can install libusb with the following command: brew install libusb

On a MBP 15, macOS 10.13.3 it is not working.

I start the app while a podcast is playing on the device.
After the app starts I get some noise coming out from the computer's speakers, but nothing that I can recognise. At the same time the device's speakers stop emitting a sound.
After about 10 seconds, the scrcpy app stops itself and the podcast sound comes back on the device's speaker.

This behaviour is 100% reproducible on my side.

Here are the command line output:

2018-03-24 23:01:14.865 scrcpy[5291:36915] DEBUG: Device serial is ENU7N15B03004574
2018-03-24 23:01:14.866 scrcpy[5291:36915] DEBUG: USB device with serial ENU7N15B03004574 found: 18d1:4ee7
2018-03-24 23:01:14.867 scrcpy[5291:36915] DEBUG: Device AOA version: 2
2018-03-24 23:01:14.867 scrcpy[5291:36915] INFO: Audio forwarding enabled
2018-03-24 23:01:14.883 scrcpy[5291:36915] INFO: Waiting 2s for USB reconfiguration...
2018-03-24 23:01:17.144 scrcpy[5291:36915] INFO: Selecting input audio source: Built-in Microphone
d/server/scrcpy-server.jar: 1 file pushed. 2.9 MB/s (23985 bytes in 0.008s)
2018-03-24 23:01:17.918 scrcpy[5291:36915] DEBUG: Starting decoder thread
2018-03-24 23:01:17.918 scrcpy[5291:36915] DEBUG: Starting controller thread
2018-03-24 23:01:18.845 scrcpy[5291:36915] INFO: OpenGL shaders: ENABLED
2018-03-24 23:01:18.845 scrcpy[5291:36915] INFO: Created renderer: opengl
2018-03-24 23:01:18.849 scrcpy[5291:36915] INFO: Initial texture: 1440x2560
2018-03-24 23:01:20.662 scrcpy[5291:36915] DEBUG: Unknown touch device id -841524992, cannot reset
2018-03-24 23:01:25.184 scrcpy[5291:37036] DEBUG: End of frames
2018-03-24 23:01:25.188 scrcpy[5291:36915] DEBUG: Video decoder stopped
2018-03-24 23:01:25.188 scrcpy[5291:36915] DEBUG: quit...
2018-03-24 23:01:25.200 scrcpy[5291:36915] DEBUG: Server terminated
2018-03-24 23:01:25.408 scrcpy[5291:36915] DEBUG: USB device with serial ENU7N15B03004574 found: 18d1:4ee7
2018-03-24 23:01:25.409 scrcpy[5291:36915] DEBUG: Device AOA version: 2
2018-03-24 23:01:25.409 scrcpy[5291:36915] INFO: Audio forwarding disabled```

@rom1v
Copy link
Collaborator

rom1v commented Mar 24, 2018

Thank you for the test 👍

Selecting input audio source: Built-in Microphone

It did not select the right input source, either because none were created, either because for now it just selects the last one, assuming it's the most recent (so it should probably be the input source from the device).

I'll check that. Thank you.

@eyal-lezmy
Copy link

For your information I've done 2 tests one with a headset connected to the computer and another one without any headset plugged in.

Good luck

@rom1v
Copy link
Collaborator

rom1v commented Mar 26, 2018

@eyal-lezmy I investigated on Mac, and it appears that enabling "audio accessory" on the device does not create a new audio input source on the computer.

So unfortunately, I think that the feature will be Linux-only…

I updated the branch to reject the input source if its name does not contain the device model (so that it does not open the built-in microphone for example).

@MrLint
Copy link

MrLint commented Mar 26, 2018

Ok so heres a wholly stupid question. Would it work via the Linux environment in windows 10?

@rom1v
Copy link
Collaborator

rom1v commented Mar 26, 2018

Would it work via the Linux environment in windows 10?

You tell me 😉

@yxtj
Copy link

yxtj commented Jun 20, 2018

What is the plan of merging this excellent feature into the main branch?

@rom1v
Copy link
Collaborator

rom1v commented Jun 20, 2018

Did you test it? Does it work correctly for you?

There are several problems:

  • it's a bit hacky/fragile;
  • it only works on Linux (but not necessarily a problem);
  • if the computer consumes audio at a slightly different rate from the one it is produced by the device (which is not unlikely), the drift will increase and sound becomes very bad, and there is no mechanism to compensate.

So for now, I don't merge it.

Maybe I could, mentionning that it is very experimental...

@yimuchen
Copy link

Hi, thanks for the package! I've been enjoying it a lot
I wanted to test the audio forwarding feature out on my machines, but I cannot work out why the program is failing to start with the forward audio enabled.

On my Archlinux machine, I have both libusb and libusb-compat installed besides the dependencies already listed in the AUR package for scrcpy. The testing scrcpy pacakge was compiled with the pre-built server.jar. When attempting to start scrcpy audio forwarding with my Nokia6.1 (Android 8.1, July 1st 2018 patch), the program exits with the following error message:

DEBUG: Device AOA version: 2
INFO: Audio accessory enabled
INFO: Waiting 2s for USB reconfiguration...
DEBUG: Audio input #0: Built-in Audio Analog Stereo
DEBUG: setpriority() failed
DEBUG: Device model is: Nokia 6.1
ERROR: Cannot find the Android accessory audio input source
DEBUG: Disabling audio accessory...
DEBUG: USB device with serial PL2GAMR832306185 found: 18d1:2d05
DEBUG: Device AOA version: 2

Without the --forward-audio flag, the program runs fine.

@rom1v
Copy link
Collaborator

rom1v commented Jul 31, 2018

@yimuchen Could you test manually with pactl and ffplay:

$ pactl list short sources
0   alsa_output.pci-0000_00_05.0.analog-stereo.monitor module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
1   alsa_input.pci-0000_00_05.0.analog-stereo   module-alsa-card.c s16le 2ch 44100Hz   SUSPENDED

$ ffplay -vn -f pulse -i alsa_input.usb-LGE_Nexus_5_05f5e60a0ae518e5-01.analog-stereo

@yimuchen
Copy link

yimuchen commented Aug 1, 2018

@rom1v I'm a bit new to writing this sort of code, Can you help me with how I should get the string for my device, the alsa_input.usb-LGE_Nexus_5_05f5e60a0ae518e5-01.analog-stereo for my phone?

The output of pactl is:

0       alsa_output.pci-0000_00_1b.0.analog-stereo.monitor      module-alsa-card.c      s16le 2ch 48000Hz       SUSPENDED
1       alsa_input.pci-0000_00_1b.0.analog-stereo       module-alsa-card.c      s16le 2ch 44100Hz       SUSPENDED

On a side note, as a test, I edited the get_matching_audio_device in app/src/audio.c, so that the program uses the found Audio input #0: Built-in Audio Analog Stereo as the audio device, it seems to be able to pass the microphone input of my phone to my PC (I can hear myself talking to the phone from hy PC's headphone), but not the internal audio.

@rom1v
Copy link
Collaborator

rom1v commented Aug 1, 2018

Can you help me with how I should get the string for my device, the alsa_input.usb-LGE_Nexus_5_05f5e60a0ae518e5-01.analog-stereo for my phone?

Sorry, I copied incomplete instructions I kept in some textfile.

Instead, follow the steps I wrote in the README of aoa-audio.

@yimuchen
Copy link

yimuchen commented Aug 2, 2018

@rom1v Thanks for instructions! I think the issue that I have is that the udev rules for my phone isn't available yet. The vendor/product ID under lsusb is constantly in flux, and changes everytime I run the ./audio package. I guess I'll try again when I find and updated udev rule : /

@meroz92 meroz92 mentioned this issue Jun 25, 2022
2 tasks
@sapkalrohan
Copy link

https://apps.microsoft.com/store/detail/bluetooth-audio-receiver/9N9WCLWDQS5J

for Bluetooth audio from android to windows pc, unfortunately its not available outside the MS store

@parkerlreed
Copy link

@sapkalrohan Huh Is that not built-in? Last I checked pairing a phone to Windows Bluetooth would automatically connect the A2DP sink.

@EltonPeter
Copy link

Hi, I have a solution there's an app available on windows store as Bluetooth audio receiver @parkerlreed

This app uses A2DP protocol as used in Wireless buds to transfer audio to pc and it's seamless have a try

https://www.bing.com/ck/a?!&&p=4a6996a3e285f69cJmltdHM9MTY2MjY4MTYwMCZpZ3VpZD0zOGM1MTI2Yy03N2ZmLTZmODYtMzY1Yi0xYzk3NzY0ZDZlYzkmaW5zaWQ9NTQ0NA&ptn=3&hsh=3&fclid=38c5126c-77ff-6f86-365b-1c97764d6ec9&u=a1bXMtd2luZG93cy1zdG9yZTovL3BkcC8_UHJvZHVjdElkPTluOXdjbHdkcXM1ag&ntb=1

@yume-chan
Copy link
Contributor

yume-chan commented Jan 27, 2023

Similar to #1887 (comment), by creating a fake Context I also got AudioRecord to work in Scrcpy. No app installed, no permission request popup neither.

https://github.com/Genymobile/scrcpy/compare/master...yume-chan:scrcpy:feat/forward-audio?expand=1

(Most code is from Sndcpy, I only did two small modifications)

As mentioned above, this API requires RECORD_AUDIO permission, so it only works on Android 11 or later where ADB has this permission.

I still prefer integrating audio forwarding in Scrcpy, it requires no software setup, no Bluetooth hardware, and is portable on all platforms.

The usage is same as Sndcpy, VLC player is required to play the stream. Integration with Scrcpy client to be done (I'm not familiar with C and FFMpeg).

adb forward tcp:28200 localabstract:sndcpy
# start Scrcpy here
vlc -Idummy --demux rawaud --network-caching=0 --play-and-exit tcp:https://localhost:28200

Pre-compiled server binary:

scrcpy-server.zip

@rom1v
Copy link
Collaborator

rom1v commented Jan 27, 2023

Similar to #1887 (comment), by creating a fake Context I also got AudioRecord to work in Scrcpy. No app installed, no permission request popup neither.

Absolutely awesome. 🎉

it only works on Android 11 or later where ADB has this permission

Oh, I didn't know that it worked since Android 11.

I was seriously considering adding an option to install the app (#3517), and investigated some possible architecture to make audio (from the app) and video+controls (from the server) work correctly, but it adds a lot of complexity. It it can work that way, I'll definitely add it in scrcpy (when I have more time though).

I have already worked on some code to properly capture and encode to OPUS (rather than using raw audio), I will try to use your magic-Context stuff :)

@rp1231
Copy link

rp1231 commented Jan 28, 2023

Pre-compiled server binary:

scrcpy-server.zip

@yume-chan How do I use this?

I downloaded the scrcpy-server file and replaced it in the scrcpy 1.25 folder.
That doesn't seem to work.
Am I using it correctly?
This is the error I'm gettting:

[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.NoSuchMethodError: No virtual method setContext(Landroid/content/Context;)Landroid/media/AudioRecord$Builder; in class Landroid/media/AudioRecord$Builder; or its super classes (declaration of 'android.media.AudioRecord$Builder' appears in /system/framework/framework.jar!classes2.dex)
        at com.genymobile.scrcpy.Server.createAudioRecord(Server.java:105)
        at com.genymobile.scrcpy.Server.startRecording(Server.java:122)
        at com.genymobile.scrcpy.Server.scrcpy(Server.java:194)
        at com.genymobile.scrcpy.Server.main(Server.java:431)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)[server] ERROR: Could not invoke method
        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:399)

java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at com.genymobile.scrcpy.wrappers.PowerManager.isScreenOn(PowerManager.java:32)
        at com.genymobile.scrcpy.Device.isScreenOn(Device.java:220)
        at com.genymobile.scrcpy.Controller.control(Controller.java:65)
        at com.genymobile.scrcpy.Server$4.run(Server.java:229)
        at java.lang.Thread.run(Thread.java:923)
Caused by: java.lang.RuntimeException: Bad file descriptor
        at android.os.BinderProxy.transactNative(Native Method)
        at android.os.BinderProxy.transact(BinderProxy.java:540)
        at android.os.IPowerManager$Stub$Proxy.isInteractive(IPowerManager.java:1204)
        ... 6 more
[server] ERROR: Could not invoke method
java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at com.genymobile.scrcpy.wrappers.InputManager.injectInputEvent(InputManager.java:35)
        at com.genymobile.scrcpy.Device.injectEvent(Device.java:192)
        at com.genymobile.scrcpy.Device.injectKeyEvent(Device.java:203)
        at com.genymobile.scrcpy.Device.pressReleaseKeycode(Device.java:211)
        at com.genymobile.scrcpy.Device.pressReleaseKeycode(Device.java:216)
        at com.genymobile.scrcpy.Controller.control(Controller.java:66)
        at com.genymobile.scrcpy.Server$4.run(Server.java:229)
        at java.lang.Thread.run(Thread.java:923)
Caused by: java.lang.RuntimeException: Bad file descriptor
        at android.os.BinderProxy.transactNative(Native Method)
        at android.os.BinderProxy.transact(BinderProxy.java:540)
        at android.hardware.input.IInputManager$Stub$Proxy.injectInputEvent(IInputManager.java:942)
        at android.hardware.input.InputManager.injectInputEvent(InputManager.java:907)
        ... 9 more
INFO: Renderer: direct3d
INFO: Initial texture: 720x1560
WARN: Device disconnected
Press any key to continue . . .

@yume-chan
Copy link
Contributor

If you are on Android 11, I checked Android source code, there is no this setContext method. Maybe it's still possible to find another code path, but I don't have Android 11 devices for testing.

@rp1231
Copy link

rp1231 commented Jan 28, 2023

Yes, I'm on android 11,
I tried it on another device with android 13 and it worked fine.
Thanks

@rp1231
Copy link

rp1231 commented Jan 28, 2023

The screen sharing part is working fine, but the audio is not being transmitted for some reason on the android 13 device.
The audio plays only on the device itself.

[server] INFO: Audio capture created
INFO: Renderer: direct3d
INFO: Initial texture: 1200x2000

@rp1231
Copy link

rp1231 commented Jan 28, 2023

nvm figured it out:
I missed the instructions in your post.....

adb forward tcp:28200 localabstract:sndcpy
# start Scrcpy here
vlc -Idummy --demux rawaud --network-caching=0 --play-and-exit tcp:https://localhost:28200

That's quite a lot of commands though,
Any way to streamline this process?
Right now you have to type the first command, start scrcpy and then enter the vlc command in a new cmd instance.

Thanks

@yume-chan
Copy link
Contributor

yume-chan commented Jan 28, 2023

In Android 11, only the foreground App can start recording audio.

https://cs.android.com/android/platform/superproject/+/android-11.0.0_r1:frameworks/base/services/core/java/com/android/server/appop/AppOpsService.java;l=586-594;drc=89438e0c37918ac3ba199f252da9707c029221e2

This check was removed in Android 12, so my method works. (Or maybe Android 12 didn't check App Ops permission at all)

The only way I found to work around this foreground check, is by displaying this "Share heap dump" dialog. This is actually an activity in com.android.shell package. There are only two activities, and the other one will crash if started directly (also the other one is a notification so I don't think that will count as "foreground").

image

The complete process is:

  1. adb shell am start com.android.shell/com.android.shell.HeapDumpActivity
  2. Create AudioRecord
  3. Connect the socket
  4. AudioRecord.startRecording()
  5. adb shell am force-stop com.android.shell to close the popup

(These can all be done in Scrcpy client)

I don't really like it.

EDIT: Anyway, there is another pre-compiled server binary including the fake Context patch for Android 11. To use it, execute adb shell am start com.android.shell/com.android.shell.HeapDumpActivity before starting Scrcpy, and keep the dialog opened until VLC is started. You can then close the dialog either by executing adb shell am force-stop com.android.shell or tap the "Cancel" button in the dialog.

scrcpy-server.zip

EDIT 2: Forgot to mention, another method to bypass the foreground App check is by running ADB as root.

@rom1v
Copy link
Collaborator

rom1v commented Feb 26, 2023

Please test #3757 🚀

@rom1v
Copy link
Collaborator

rom1v commented Mar 3, 2023

I added binaries for Windows if you want to test: #3757

@tarun0
Copy link

tarun0 commented Mar 4, 2023

I added binaries for Windows if you want to test: #3757

Tested binary on 64bit Windows. Worked flawlessly on Android 12 Samsung device! There's slight delay in audio and video (video lags slightly which kind of irks for sometime when you observe lip-sync) but good nevertheless. It probably is because I was on wifi adb.

@rom1v
Copy link
Collaborator

rom1v commented Mar 12, 2023

Implemented in scrcpy v2.0 🚀

@rom1v rom1v closed this as completed Mar 12, 2023
@sylarfeng
Copy link

How should I make audio forwarding disabled by default?

@rom1v
Copy link
Collaborator

rom1v commented Apr 28, 2023

Run scrcpy --no-audio from a script (for Windows, see the end of https://github.com/Genymobile/scrcpy/blob/master/doc/windows.md).

@Divide-By-0
Copy link

How do I play audio on both the headset and the receiver? I want the beatsaber audio to be perfectly lined up when playing, but also to be able to stream it.

@rom1v
Copy link
Collaborator

rom1v commented May 7, 2023

Not possible (for now?), see #3875.

@Divide-By-0
Copy link

Not possible (for now?), see #3875.

It must be possible via some set of configurations on the host device; the oculus does this by default for all of it's streaming. Is there a way to "record" device audio and play it back on the second device, maybe if there's something additional installed on the Android side?

@luisalvarado
Copy link

Sorry, but how does it work on scrcpy 2.0. I tried connecting via USB, the phone shows, visually speaking, but any sound from the phone, happens on the phone, not on the PC. The PC is Ubuntu 23.04

@rom1v
Copy link
Collaborator

rom1v commented May 17, 2023

What is the console output when you run scrcpy? What is your Android version?

@luisalvarado
Copy link

scrcpy 2.0 https://github.com/Genymobile/scrcpy
/usr/local/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 8.2 MB/s (52867 bytes in 0.006s)
[server] INFO: Device: samsung SM-S908U1 (Android 13)
INFO: Renderer: opengl
INFO: OpenGL version: 4.6.0 NVIDIA 530.41.03
INFO: Trilinear filtering enabled
INFO: Initial texture: 1080x2312

@rom1v Sorry forgot about that. Thank you.

@rom1v
Copy link
Collaborator

rom1v commented May 17, 2023

What is the result of scrcpy -Vdebug?

any sound from the phone, happens on the phone, not on the PC

For example, if you play a video on your phone with vlc (or any other player), the sound is played on the phone?

Note that notifications or phone calls are not forwarded.

@luisalvarado
Copy link

scrcpy 2.0 https://github.com/Genymobile/scrcpy
DEBUG: ADB device found:
DEBUG: --> (usb) R5CT408VMPT device SM_S908U1
DEBUG: Device serial: R5CT408VMPT
DEBUG: Using server: /usr/local/share/scrcpy/scrcpy-server
/usr/local/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 6.0 MB/s (52867 bytes in 0.008s)
[server] INFO: Device: samsung SM-S908U1 (Android 13)
DEBUG: Server connected
DEBUG: Starting controller thread
DEBUG: Starting receiver thread
[server] DEBUG: Using audio encoder: 'c2.android.opus.encoder'
INFO: Renderer: opengl
INFO: OpenGL version: 4.6.0 NVIDIA 530.41.03
INFO: Trilinear filtering enabled
DEBUG: Using icon: /usr/local/share/icons/hicolor/256x256/apps/scrcpy.png
DEBUG: Demuxer 'video': starting thread
DEBUG: Demuxer 'audio': starting thread
[server] DEBUG: Using encoder: 'c2.qti.avc.encoder'
INFO: Initial texture: 1080x2312
DEBUG: [Audio] Buffer underflow, inserting silence: 240 samples
DEBUG: [Audio] Buffer underflow, inserting silence: 240 samples
DEBUG: [Audio] Buffer underflow, inserting silence: 240 samples
DEBUG: [Audio] Buffer underflow, inserting silence: 240 samples

image

You helped me solve the mystery. I was trying to get phone calls on the PC.

For videos I can literally hear them on the PC which IS AMAZING!! This is like a new level for me. I am guessing on version 3.0 they might be able to include phone calls so I can do full productivity on the PC without the phone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests