Saltar al contenido

¿El mejor enfoque para obtener la transmisión RTSP en el navegador web desde la cámara IP?

Solución:

Aquí hay una entrada de blog, o un tutorial si se quiere, que logra algo muy similar.

Su configuración es ligeramente diferente, pero este es el resumen:

usar ffmpeg para convertir su entrada en mpeg1video:

ffmpeg  -i rtsp://whatever -f mpeg1video -b 800k -r 30 http://localhost:8082/yourpassword/640/480/

Instalar en pc node.js con stream-server.js script de jsmpeg y ws ws paquete WebSocket.

Para ver la transmisión, use el stream-example.html y jsmpg.js desde el jsmpeg. Cambie la URL de WebSocket en stream-example.html para localhost y ábralo en su navegador favorito.

Actualizar un tema SO sugiere otras dos soluciones de trabajo, con

Si desea transmitir eso solo a unos pocos clientes, entonces puede usar un cgi (o en nodejs, un child_process) que ejecute directamente ffmpeg:

Ejemplo de NodeJS:

app.getExpressApp().get("https://foroayuda.es/camera/feed", (req, res) => {
    // Thanks to https://stackoverflow.com/q/28946904/1954789
    const child_process = require('child_process');

    res.header('content-type', 'video/webm');

    const cmd = `ffmpeg -i rtsp://user:[email protected]/videoSub -c:v copy -c:a copy -bsf:v h264_mp4toannexb -maxrate 500k -f matroska -`.split(' ');

    var child = child_process.spawn(cmd[0], cmd.splice(1), {
        stdio: ['ignore', 'pipe', process.stderr]
    });

    child.stdio[1].pipe(res);

    res.on('close', () => {
        // Kill ffmpeg if the flow is stopped by the browser
        child.kill();
    });

CGI debería ser aún más fácil.

En el navegador, puedes

<video autoplay=1 poster="camera.png" ><source src="https://foroayuda.es/camera/feed"></video>

(Utilice un póster porque el video puede tardar algunos segundos en aparecer).

Advertencia: esto lanzará un ffmpeg para cada conexión a su configuración, por lo que no se escala en absoluto. Esto debe usarse solo para un sitio web muy personal, donde las conexiones son limitadas (por ejemplo, solo para usted).

PD: el comando ffmpeg puede necesitar algunos ajustes.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *