android / android/camera-samples

Camera2Video doesn't record WebM video

Aperta
#337 0 commenti 0 reazioni 1 assegnatario Rivendicata da @owahltinez Vedi su GitHub
Lingua principale
Kotlin
Stelle
5.5k
Fork
2.4k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

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

```kotlin
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](https://developer.android.com/guide/topics/media/media-formats#audio-formats) with the same results

How can I record a video in WebM format ?

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.