android / android/camera-samples

Camera2Video doesn't record WebM video

Abierto
#337 0 comentarios 0 reacciones 1 asignado Ver en GitHub

@owahltinez ya está trabajando en esto.

Desde el 9/12/2020.

Lenguaje dominante
Kotlin
Estrellas
5.5k
Forks
2.4k
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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 ?

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.