Open hofe0815 opened 10 months ago
Does adb shell screenrecord /sdcard/file.mp4
work?
No :-(.
Encoder failed (err=-38)
this works but realy laggy. now i test e a bit with the encoder.
scrcpy --video-codec=h264 --video-encoder='OMX.google.h264.encoder'
scrcpy --list-encoders
[server] INFO: List of video encoders:
--video-codec=h264 --video-encoder='c2.android.avc.encoder'
--video-codec=h264 --video-encoder='OMX.google.h264.encoder'
[server] INFO: List of audio encoders:
--audio-codec=opus --audio-encoder='c2.android.opus.encoder'
--audio-codec=aac --audio-encoder='c2.android.aac.encoder'
--audio-codec=aac --audio-encoder='OMX.google.aac.encoder'
this works but realy bad.
The same issue
crcpy v2.2 <https://github.com/Genymobile/scrcpy>
INFO: ADB device found:
INFO: --> (usb) R5CT21T1DXH device SM_G990B
/usr/local/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 2.7 MB/s (64363 bytes in 0.022s)
[server] INFO: Device: [samsung] samsung SM-G990B (Android 13)
INFO: Renderer: opengl
INFO: OpenGL version: 4.6.0 NVIDIA 535.113.01
INFO: Trilinear filtering enabled
INFO: Texture: 1080x2336
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m1920...
[server] INFO: Retrying...
[server] INFO: Retrying with -m1600...
[server] INFO: Retrying...
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m1280...
[server] INFO: Retrying...
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m1024...
[server] INFO: Retrying...
[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: Encoding error: java.lang.IllegalStateException: null
WARN: Device disconnected
[server] ERROR: Exception on thread Thread[video,5,main]
java.lang.IllegalStateException
at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:3573)
at com.genymobile.scrcpy.SurfaceEncoder.encode(SurfaceEncoder.java:157)
at com.genymobile.scrcpy.SurfaceEncoder.streamScreen(SurfaceEncoder.java:76)
at com.genymobile.scrcpy.SurfaceEncoder.lambda$start$0$com-genymobile-scrcpy-SurfaceEncoder(SurfaceEncoder.java:253)
at com.genymobile.scrcpy.SurfaceEncoder$$ExternalSyntheticLambda0.run(Unknown Source:4)
at java.lang.Thread.run(Thread.java:1012)
When I do scrcpy -S
it works. When I try to stream a video, immediately get the error below. scrcpy --video-codec=h264 --video-encoder='OMX.google.h264.encoder'
works but very slowly (somebody already wrote that above).
> scrcpy --version
scrcpy 2.3.1 <https://github.com/Genymobile/scrcpy>
Dependencies (compiled / linked):
- SDL: 2.28.5 / 2.28.5
- libavcodec: 60.3.100 / 60.3.100
- libavformat: 60.3.100 / 60.3.100
- libavutil: 58.2.100 / 58.2.100
- libusb: - / 1.0.26
> scrcpy --list-encoders
scrcpy 2.3.1 <https://github.com/Genymobile/scrcpy>
INFO: ADB device found:
INFO: --> (usb) 20c0732a device AC2001
/opt/homebrew/Cellar/scrcpy/2.3.1/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 268.1 MB/s (66007 bytes in 0.000s)
[server] INFO: Device: [OnePlus] OnePlus AC2001 (Android 11)
[server] INFO: List of video encoders:
--video-codec=h264 --video-encoder='OMX.qcom.video.encoder.avc'
--video-codec=h264 --video-encoder='c2.android.avc.encoder'
--video-codec=h264 --video-encoder='OMX.google.h264.encoder'
--video-codec=h265 --video-encoder='OMX.qcom.video.encoder.hevc'
--video-codec=h265 --video-encoder='OMX.qcom.video.encoder.hevc.cq'
--video-codec=h265 --video-encoder='c2.android.hevc.encoder'
[server] INFO: List of audio encoders:
--audio-codec=opus --audio-encoder='c2.android.opus.encoder'
--audio-codec=aac --audio-encoder='c2.android.aac.encoder'
--audio-codec=aac --audio-encoder='OMX.google.aac.encoder'
--audio-codec=flac --audio-encoder='c2.android.flac.encoder'
--audio-codec=flac --audio-encoder='OMX.google.flac.encoder'
> scrcpy -S
scrcpy 2.3.1 <https://github.com/Genymobile/scrcpy>
INFO: ADB device found:
INFO: --> (usb) 20c0732a device AC2001
/opt/homebrew/Cellar/scrcpy/2.3.1/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 255.3 MB/s (66007 bytes in 0.000s)
[server] INFO: Device: [OnePlus] OnePlus AC2001 (Android 11)
INFO: Renderer: metal
INFO: Texture: 2400x1080
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m1920...
[server] INFO: Retrying...
[server] INFO: Device screen turned off
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m1600...
[server] INFO: Retrying...
[server] ERROR: Encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m1280...
[server] INFO: Retrying...
[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: Device disconnected
[server] ERROR: Exception on thread Thread[video,5,main]
java.lang.IllegalStateException
at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:3461)
at com.genymobile.scrcpy.SurfaceEncoder.encode(SurfaceEncoder.java:157)
at com.genymobile.scrcpy.SurfaceEncoder.streamScreen(SurfaceEncoder.java:76)
at com.genymobile.scrcpy.SurfaceEncoder.lambda$start$0$com-genymobile-scrcpy-SurfaceEncoder(SurfaceEncoder.java:253)
at com.genymobile.scrcpy.SurfaceEncoder$$ExternalSyntheticLambda0.run(Unknown Source:4)
at java.lang.Thread.run(Thread.java:923)
similar errors for scrcpy 2.3.1 + waydroid on pine64 armbian:
$ scrcpy -s 192.168.15.169:5556 --no-audio --list-encoders
scrcpy 2.3.1 <https://github.com/Genymobile/scrcpy>
INFO: ADB device found:
INFO: --> (tcpip) 192.168.15.169:5556 device Pine64+
/usr/local/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 98.1 MB/s (66007 bytes in 0.001s)
[server] INFO: Device: [Waydroid] waydroid MiPad1 (Android 11)
[server] INFO: List of video encoders:
--video-codec=h264 --video-encoder='OMX.google.h264.encoder'
[server] INFO: List of audio encoders:
--audio-codec=aac --audio-encoder='OMX.google.aac.encoder'
--audio-codec=flac --audio-encoder='OMX.google.flac.encoder'
$ scrcpy -s 192.168.15.169:5556 --no-audio
scrcpy 2.3.1 <https://github.com/Genymobile/scrcpy>
INFO: ADB device found:
INFO: --> (tcpip) 192.168.15.169:5556 device Pine64+
/usr/local/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 97.0 MB/s (66007 bytes in 0.001s)
[server] INFO: Device: [Waydroid] waydroid MiPad1 (Android 11)
INFO: Renderer: opengl
INFO: OpenGL version: 4.6 (Compatibility Profile) Mesa 22.3.6
INFO: Trilinear filtering enabled
[server] ERROR: Encoding error: java.lang.IllegalArgumentException: null
WARN: Device disconnected
[server] ERROR: Exception on thread Thread[video,5,main]
java.lang.IllegalArgumentException
at android.media.MediaCodec.createInputSurface(Native Method)
at com.genymobile.scrcpy.SurfaceEncoder.streamScreen(SurfaceEncoder.java:70)
at com.genymobile.scrcpy.SurfaceEncoder.lambda$start$0$com-genymobile-scrcpy-SurfaceEncoder(SurfaceEncoder.java:253)
at com.genymobile.scrcpy.SurfaceEncoder$$ExternalSyntheticLambda0.run(Unknown Source:4)
at java.lang.Thread.run(Thread.java:923)
When I do
scrcpy -S
it works. When I try to stream a video, immediately get the error below.scrcpy --video-codec=h264 --video-encoder='OMX.google.h264.encoder'
works but very slowly (somebody already wrote that above).
Thanks - ur hint did the trick.
For the record, i am using following command line to get a fast ScrCpy Display, for setting up an Android Stick remotely
--max-size=1080 --max-fps=5 --render-driver=opengl --video-bit-rate=10M --legacy-paste --video-codec=h264 --video-encoder='OMX.google.h264.encoder'
When I do
scrcpy -S
it works. When I try to stream a video, immediately get the error below.scrcpy --video-codec=h264 --video-encoder='OMX.google.h264.encoder'
works but very slowly (somebody already wrote that above).Thanks - ur hint did the trick. For the record, i am using following command line to get a fast ScrCpy Display, for setting up an Android Stick remotely
--max-size=1080 --max-fps=5 --render-driver=opengl --video-bit-rate=10M --legacy-paste --video-codec=h264 --video-encoder='OMX.google.h264.encoder'
This is better in that scrcpy does not crash but freezes. Changing the app (from playing video to something not playing a video) from the phone (OnePlus Nord) unfreezes everything.
Environment
Describe the bug
scrcpy -m1024
,scrcpy -m400
,--encoder 'c2.android.avc.encoder'
and--encoder 'OMX.google.h264.encoder'
dont work,