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

Camera2Video doesn't record WebM video #337

Open
BrunoAndroidDev opened this issue Dec 9, 2020 · 0 comments
Open

Camera2Video doesn't record WebM video #337

BrunoAndroidDev opened this issue Dec 9, 2020 · 0 comments
Assignees

Comments

@BrunoAndroidDev
Copy link

Hello,

I'm trying to record a video in WebM format but the app is crashing

2020-12-09 14:59:26.560 28899-28899/com.android.example.camera2.video W/CameraDevice-JV-0: Stream configuration failed due to: endConfigure:543: Camera 0: Unsupported set of inputs/outputs provided
2020-12-09 14:59:26.564 28899-28899/com.android.example.camera2.video E/CameraCaptureSession: Session 0: Failed to create capture session; configuration failed
2020-12-09 14:59:26.566 28899-28945/com.android.example.camera2.video E/CameraFragment: Camera 0 session configuration failed
java.lang.RuntimeException: Camera 0 session configuration failed
at com.example.android.camera2.video.fragments.CameraFragment$createCaptureSession$$inlined$suspendCoroutine$lambda$1.onConfigureFailed(CameraFragment.kt:375)
at android.hardware.camera2.impl.CallbackProxies$SessionStateCallbackProxy.lambda$onConfigureFailed$1(CallbackProxies.java:64)
at android.hardware.camera2.impl.-$$Lambda$CallbackProxies$SessionStateCallbackProxy$gvbTsp9UPpKJAbdycdci_ZW5BeI.run(Unknown Source:4)
at android.os.Handler.handleCallback(Handler.java:907)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:216)
at android.os.HandlerThread.run(HandlerThread.java:65)
2020-12-09 14:59:26.607 28899-28899/com.android.example.camera2.video E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.android.example.camera2.video, PID: 28899
java.lang.RuntimeException: Camera 0 session configuration failed
at com.example.android.camera2.video.fragments.CameraFragment$createCaptureSession$$inlined$suspendCoroutine$lambda$1.onConfigureFailed(CameraFragment.kt:375)
at android.hardware.camera2.impl.CallbackProxies$SessionStateCallbackProxy.lambda$onConfigureFailed$1(CallbackProxies.java:64)
at android.hardware.camera2.impl.-$$Lambda$CallbackProxies$SessionStateCallbackProxy$gvbTsp9UPpKJAbdycdci_ZW5BeI.run(Unknown Source:4)
at android.os.Handler.handleCallback(Handler.java:907)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:216)
at android.os.HandlerThread.run(HandlerThread.java:65)

The first line tells me there is a misconfiguration

Stream configuration failed due to: endConfigure:543: Camera 0: Unsupported set of inputs/outputs provided

What I've done is just trying to find a good configuration for the MediaRecorder, as below

    private fun createRecorder(surface: Surface) = MediaRecorder().apply {
        setAudioSource(MediaRecorder.AudioSource.MIC)
        setVideoSource(MediaRecorder.VideoSource.SURFACE)
        setOutputFormat(MediaRecorder.OutputFormat.WEBM)
        setOutputFile(outputFile.absolutePath)
        setVideoEncodingBitRate(RECORDER_VIDEO_BITRATE)
        if (args.fps > 0) setVideoFrameRate(args.fps)
        setVideoSize(args.width, args.height)
        setVideoEncoder(MediaRecorder.VideoEncoder.VP8)
        setAudioEncoder(MediaRecorder.AudioEncoder.VORBIS)
        setInputSurface(surface)
    }

I tried to comment lines about audio source too because I see that Vorbis Encoder is not supported with the same results

How can I record a video in WebM format ?

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

No branches or pull requests

2 participants