android webrtc libjingle

Cree un VideoRack WebRTC con un capturador "personalizado" en Android con libjingle



(1)

¿Cómo usar un capturador de video "personalizado" para crear un Video Track y proporcionar marcos?

El enfoque clásico para crear un VideoTrack es:

1 - Obtener una instancia de VideoCapturer

VideoCapturer capturer = VideoCapturer.create(name);

2 - Crear una fuente de video

VideoSource videoSource = peerconnectionFactory.createVideoSource(capturer, videoConstraints);

3 - Crear un Video Track utilizando la fuente de video

VideoTrack videoTrack = peerconnectionFactory.createVideoTrack("Label", videoSource);

4 - Añadir la pista al MediaStream

Me preguntaba si hay una manera de cambiar el primer paso . En lugar de usar la instancia nativa de Capturer, use una de Android y proporcione los marcos a VideoTrack utilizando la devolución de llamada:

public void onPreviewFrame(byte[] data, Camera camera) { // provide the frames to the VideoTrack }

¿Alguna sugerencia?


La forma más fácil (aunque un poco "hacky") de hacer esto es copiar la fuente de RTCVideoCapturer en una clase local dentro de su proyecto y simplemente usar esa clase local. Ahora puede editar la clase según sus necesidades. Incluso cuando no está copiando el archivo pero en realidad está construyendo el suyo, probablemente sea mejor copiar grandes partes del capturador existente que reinventar la rueda.