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.

Nodo de transmisión RTSP

Necesito mostrar una cámara en vivo en una página web, y esta cámara utiliza el protocolo rstp. Acabo de descubrir que los navegadores no admiten el protocolo rtsp, por lo que necesito crear un servidor nodeJS para servir al cliente (react) para hacer que funcione. Encontré varios artículos de información en internet, pero nada parece funcionar correctamente.
¿Cómo puedo lograr esta misión?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Mostrar una cámara en vivo con el protocolo rtsp en una página web

    Según sus requisitos, parece que necesita encontrar una forma de mostrar una transmisión en vivo de una cámara en una página web, y la cámara utiliza el protocolo rtsp. Desafortunadamente, la mayoría de los navegadores web no admiten el protocolo rtsp, por lo que necesitará encontrar una forma alternativa de lograr esto.

    Una posible solución es crear un servidor nodeJS que pueda enviar la transmisión de la cámara al cliente (en este caso, React). Aquí hay un enfoque posible:

    1. Encuentre un módulo nodeJS que pueda manejar transmisiones rtsp. Una opción posible es node-rtsp-stream (https://github.com/kyriesent/node-rtsp-stream), que proporciona una interfaz sencilla para transmitir feeds rtsp.
    2. Instale el módulo usando npm:

    npm install --save node-rtsp-stream
    
    1. Cree un nuevo archivo nodeJS (por ejemplo, cameraServer.js) y configure para que use el módulo node-rtsp-stream para enviar la transmisión de la cámara. Aquí hay un código de ejemplo para comenzar:
    const RtspStream = require('node-rtsp-stream');
    
    const options = {
      name: 'Transmisión de cámara', // el nombre de su transmisión
      url: 'rtsp://url-de-su-cámara', // la URL de la transmisión de su cámara (reemplácela con la URL de su cámara)
      port: 5000, // el número de puerto para su servidor (reemplace con un puerto que esté disponible en su sistema)
      fps: 30, // la velocidad de cuadros deseada para su transmisión
      resolution: '640x480', // la resolución deseada para su transmisión
    };
    
    const stream = new RtspStream(options);
    stream.start();
    
    1. Inicie el servidor nodeJS ejecutando el siguiente comando:
    node cameraServer.js
    
    1. Por último, en su aplicación de React, puede crear un elemento img que apunte al punto final de transmisión de su servidor nodeJS. Aquí hay un código de ejemplo de React para ayudarlo a comenzar:
    import React from 'react';
    
    const App = () => {
      return (
        <div>
          <img src="http://localhost:5000/stream.mjpeg" alt="transmisión de la cámara">
        </div>
      );
    };
    
    export default App;
    

    ¡Eso debería ser todo! Con este enfoque, su servidor nodeJS estará enviando la transmisión de la cámara como una transmisión jpeg, que luego el elemento img podrá mostrar en el navegador. ¡Buena suerte!

Comments are closed.