es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Enviar la transmisión WebRTC local a un servidor NodeJS en la nube.

Tengo una tarea, pero parece que no puedo terminarla.
He creado un flujo WebRTC muy simple en una Raspberry Pi que funcionará como una cámara de videochat.
Con Ionic, he creado una aplicación móvil sencilla que puede mostrar mi flujo WebRTC cuando el teléfono está conectado a la misma red. Todo esto funciona correctamente.

Así que en este momento tengo mi propio flujo local que se muestra en mi aplicación.
Ahora quiero poder transmitir este flujo desde mi teléfono a un servidor en vivo, para que otras personas puedan verlo.

Sé cómo crear un servidor NodeJS que despliega mi webcam con la función ‘getUserMedia’. Pero quiero ‘enviar’ mi flujo WebRTC a un servidor en vivo para poder obtener una URL pública para él.

¿Hay alguna forma de enviar mi WebSocket local a un entorno en vivo?
Estoy usando una conexión RTCPeerConnection local para crear un objeto MediaStream.

this.peerconnection = new RTCPeerConnection(this.peerservers);
    this.peerconnection.onicecandidate = (event) => {
      if (event.candidate && event.candidate.candidate) {
        var candidate = {
          sdpMLineIndex: event.candidate.sdpMLineIndex,
          sdpMid: event.candidate.sdpMid,
          candidate: event.candidate.candidate
        };
        var request = {
          what: "addIceCandidate",
          data: JSON.stringify(candidate)
        };
        this.websockets.send(JSON.stringify(request));
      } else {
        console.log("Fin de los candidatos.");
      }
    };

Y para vincular el objeto de flujo a mi etiqueta de vídeo HTML, estoy usando esto

onTrack(event) {
    this.remoteVideo.srcObject = event.streams[0];
  }

La URL de mi flujo es algo como: MiIPlocal:puerto/streams/webrtc
Así que quiero crear una URL pública a partir de eso para transmitirlo.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para enviar su Websocket local a un entorno en vivo y obtener una URL pública para su transmisión de WebRTC, puede utilizar un servidor de señalización para facilitar la comunicación entre los pares. El servidor de señalización puede implementarse en node.js utilizando WebSocket y se puede utilizar para intercambiar ofertas y respuestas de SDP (Protocolo de Descripción de Sesión) entre los pares.

    Una vez que los pares hayan intercambiado ofertas y respuestas de SDP y establecido una conexión entre pares (PeerConnection), la transmisión de medios desde su webcam local se puede enviar a los pares remotos en tiempo real utilizando WebRTC.

    Para crear una URL pública para su transmisión, puede utilizar un servidor de medios como Kurento o Wowza, que puede recibir la transmisión de WebRTC y convertirla en una transmisión pública accesible por cualquier persona con la URL.

    Para enviar su transmisión de WebRTC local a un servidor de medios, puede utilizar los protocolos RTSP o RTMP para transmitir los datos desde su conexión entre pares de WebRTC al servidor de medios. Algunos servidores de medios como Kurento también admiten puntos finales de WebRTC, que se pueden utilizar para recibir la transmisión de WebRTC directamente desde su navegador.

    En resumen, el proceso de transmitir su transmisión de WebRTC local a un servidor en vivo implica los siguientes pasos:

    1. Crear un servidor de señalización utilizando WebSocket para intercambiar ofertas y respuestas de SDP entre los pares.
    2. Establecer una conexión entre pares de WebRTC entre el remitente (su teléfono) y el receptor (el servidor de medios).
    3. Transmitir los datos desde su conexión entre pares de WebRTC al servidor de medios utilizando RTSP o RTMP.
    4. Convertir la transmisión de WebRTC en una transmisión pública accesible por cualquier persona con la URL utilizando un servidor de medios como Kurento o Wowza.

    Siguiendo estos pasos, debería poder enviar su transmisión de WebRTC local a un servidor en vivo y obtener una URL pública para ella.

Comments are closed.