livekit / client-sdk-android

LiveKit SDK for Android
https://docs.livekit.io
Apache License 2.0
174 stars 69 forks source link

H264 encoding problem #481

Open dwmshiwo91 opened 3 weeks ago

dwmshiwo91 commented 3 weeks ago

I set H264 encoding in the code, but it crashes as soon as I open the camera,The server requires that both the uploaded and returned videos be in H264 encoded format. How can I set this?

private fun getRoomOptions(): RoomOptions { return RoomOptions( adaptiveStream = true, dynacast = true, e2eeOptions = getE2EEOptions(), videoTrackPublishDefaults = VideoTrackPublishDefaults(videoCodec = VideoCodec.H264.codecName, backupCodec = BackupVideoCodec(codec = "h264") ) ) }

version:2.2.0, Here is the crash information

Caused by: java.lang.IllegalArgumentException com... W at android.media.MediaCodec.native_configure(Native Method) com... W at android.media.MediaCodec.configure(MediaCodec.java:2214) com...n.meeting_app W at android.media.MediaCodec.configure(MediaCodec.java:2130) com...n.meeting_app W at livekit.org.webrtc.MediaCodecWrapperFactoryImpl$MediaCodecWrapperImpl.configure(MediaCodecWrapperFactoryImpl.java:37) com...n.meeting_app W at livekit.org.webrtc.HardwareVideoEncoder.initEncodeInternal(HardwareVideoEncoder.java:287) com...n.meeting_app W at livekit.org.webrtc.HardwareVideoEncoder.initEncode(HardwareVideoEncoder.java:231) com...n.meeting_app W at io.livekit.android.webrtc.SimulcastVideoEncoderFactoryWrapper$StreamEncoderWrapper.initEncode$lambda$1(SimulcastVideoEncoderFactoryWrapper.kt:126) com...n.meeting_app W at io.livekit.android.webrtc.SimulcastVideoEncoderFactoryWrapper$StreamEncoderWrapper.$r8$lambda$Y_AfeOG92vJ_mL7Q4IBF5tHMRlQ(Unknown Source:0) com...n.meeting_app W at io.livekit.android.webrtc.SimulcastVideoEncoderFactoryWrapper$StreamEncoderWrapper$$ExternalSyntheticLambda10.call(D8$$SyntheticClass:0) com...n.meeting_app W at java.util.concurrent.FutureTask.run(FutureTask.java:264) com...n.meeting_app W at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137) com...n.meeting_app W at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637) com...n.meeting_app W at java.lang.Thread.run(Thread.java:1012) com...n.meeting_app E #

Fatal error in: gen/jni_headers/sdk/android/generated_metrics_jni/../../../../../../../../../../../_source/android_prefixed/webrtc/src/sdk/android/src/jni/jni_generator_helper.h, line 95

                                                       # last system error: 0
                                                       # Check failed: !env->ExceptionCheck()
                                                       # 
            com...n.meeting_app  A  Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 25782 (EncoderQueue - ), pid 25357 (xin.meeting_app)
davidliu commented 3 weeks ago

Can you add the logs leading up to the crash?

dwmshiwo91 commented 2 weeks ago

@davidliu Additional Information.txt Tracking log.txt

dwmshiwo91 commented 1 week ago

After repeated attempts, I had no problem with Snapdragon 8g2 and 8g3, but there was a problem with MediaTek. The tested chips were MediaTek8100 and Helio G88.@davidliu