Genymobile / Genymobile/scrcpy
Could not create default audio encoder for opus (Nexus 4 with Android 11)
- Dominant language
- C
- Stars
- 150k
- Forks
- 13.7k
- Avg merge
- 4d 13h
- Merged PRs (30d)
- 2
Description
- [x] I have read the [FAQ](https://github.com/Genymobile/scrcpy/blob/master/FAQ.md).
- [x] I have searched in existing [issues](https://github.com/Genymobile/scrcpy/issues).
**Environment**
- OS: Android/Windows
- scrcpy version: v2.2
- installation method: Windows Release
- device model: Nexus 4 E960
- Android version: 11
**Describe the bug**
Not start in Nexus4 with Android 11.
If I try normally I get this error _"Could not create default audio encoder for opus"_
And if I try without audio, I get this: _"Encoding error: java.lang.IllegalStateException: null"_
```
C:\Program Files\Android\scrcpy-win64-v2.2\scrcpy-server: ...file pushed, 0 skipped. 128.3 MB/s (64363 bytes in 0.000s)
[server] INFO: Device: [LGE] google Nexus 4 (Android 11)
INFO: Renderer: direct3d
INFO: Texture: 768x1280
[server] ERROR: Could not create default audio encoder for opus
List of audio encoders:
--audio-codec=aac --audio-encoder='OMX.google.aac.encoder'
WARN: Demuxer 'audio': stream explicitly disabled by the device
[server] ERROR: Exception on thread Thread[audio-encoder,5,main]
java.lang.IllegalArgumentException: Failed to initialize audio/opus, error 0xfffffffe
at android.media.MediaCodec.native_setup(Native Method)
at android.media.MediaCodec.(MediaCodec.java:1912)
at android.media.MediaCodec.createEncoderByType(MediaCodec.java:1875)
at com.genymobile.scrcpy.AudioEncoder.createMediaCodec(AudioEncoder.java:292)
at com.genymobile.scrcpy.AudioEncoder.encode(AudioEncoder.java:184)
at com.genymobile.scrcpy.AudioEncoder.lambda$start$0$com-genymobile-scrcpy-AudioEncoder(AudioEncoder.java:124)
at com.genymobile.scrcpy.AudioEncoder$$ExternalSyntheticLambda0.run(Unknown Source:4)
at java.lang.Thread.run(Thread.java:923)
[server] INFO: Retrying with -m1024...
[server] INFO: Retrying...
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m800...
[server] INFO: Retrying...
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
WARN: [server] ERROR: Exception on thread Thread[video,5,main]
Djava.lang.IllegalStateExceptione
vi at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)c
e at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:3452)
at com.genymobile.scrcpy.SurfaceEncoder.encode(SurfaceEncoder.java:157)
d at com.genymobile.scrcpy.SurfaceEncoder.streamScreen(SurfaceEncoder.java:76)
at com.genymobile.scrcpy.SurfaceEncoder.lambda$start$0$com-genymobile-scrcpy-SurfaceEncoder(SurfaceEncoder.java:253)i
at com.genymobile.scrcpy.SurfaceEncoder$$ExternalSyntheticLambda0.run(Unknown Source:4)sc
at java.lang.Thread.run(Thread.java:923)
onnected
```
using "--no-audio":
```
C:\Program Files\Android\scrcpy-win64-v2.2\scrcpy-server: ...file pushed, 0 skipped. 102.7 MB/s (64363 bytes in 0.001s)
[server] INFO: Device: [LGE] google Nexus 4 (Android 11)
INFO: Renderer: direct3d
INFO: Texture: 768x1280
[server] INFO: Retrying with -m1024...
[server] INFO: Retrying...
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m800...
[server] INFO: Retrying...
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] ERROR: Exception on thread Thread[video,5,main]
WARNjava.lang.IllegalStateException:
at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
D at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:3452)e
v at com.genymobile.scrcpy.SurfaceEncoder.encode(SurfaceEncoder.java:157)i
c at com.genymobile.scrcpy.SurfaceEncoder.streamScreen(SurfaceEncoder.java:76)e
at com.genymobile.scrcpy.SurfaceEncoder.lambda$start$0$com-genymobile-scrcpy-SurfaceEncoder(SurfaceEncoder.java:253)d
i at com.genymobile.scrcpy.SurfaceEncoder$$ExternalSyntheticLambda0.run(Unknown Source:4)
s at java.lang.Thread.run(Thread.java:923)
connected
```
Please do not post screenshots of your terminal, just post the content as text instead.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the failure on a Nexus 4 running Android 11 with scrcpy v2.2, then inspect the reported paths in AudioEncoder.java and SurfaceEncoder.java. Compare the codec initialization and MediaCodec failures in the supplied logs; done means the device can start successfully with audio and with --no-audio.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android
- Domain
- mobile-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100