Criação do Mirror Video Capturer
Precisamos criar um MirrorVideoCapturer, sua função é:
- abra e configure a câmera,
- capturar quadros da câmera,
- refletir os quadros horizontalmente,
- enviar esses quadros para o SDK da Vonage como vídeo do editor.
- Crie um arquivo Kotlin separado com o MirrorVideoCapturer
Como o arquivo é bem grande, copie o conteúdo do MirrorVideoCapturer.kt ao seu projeto. Neste tutorial, vamos nos concentrar apenas nos aspectos principais da captura de vídeo personalizada nas próximas etapas; portanto, não se preocupe se não entender tudo sobre o capturador de imediato.
- Como o capturador expõe suas configurações
O SDK precisa saber que tipo de fluxo de vídeo o seu capturador vai fornecer. Isso é feito por meio de getCaptureSettings() no capturador personalizado:
@Synchronized
override fun getCaptureSettings(): CaptureSettings {
val settings = CaptureSettings()
settings.fps = desiredFps
settings.width = cameraFrame?.width ?: -1
settings.height = cameraFrame?.height ?: -1
settings.format = NV21
settings.expectedDelay = 0
settings.mirrorInLocalRender = frameMirrorX
return settings
}
As configurações aqui definem a captura da seguinte forma:
fps: quantos quadros por segundo você vai exibir. largura e altura: a resolução dos quadros (pode ser calculada a partir da saída real da câmera ou do tamanho de captura configurado). formato: o formato de pixel que você vai fornecer ao SDK (por exemplo, NV21). atraso previsto: uma estimativa (em ms) do tempo que leva entre a captura e a entrega de um quadro.
Essas configurações são transmitidas ao SDK da Vonage por meio do MirrorVideoCapturer. Quando definidas, o SDK sabe: como alocar buffers, como codificar os quadros, e como adaptar o comportamento da rede e da codificação ao seu perfil de captura.
Captura básica de vídeo
Saiba como configurar um capturador de vídeo básico usando o SDK de vídeo da Vonage.