npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

node-red-contrib-rtsp-client

v0.1.10

Published

Nó para consumir stream RTSP e enviar vídeo para o fluxo

Readme

node-red-contrib-rtsp-client

Um nó customizado para o Node-RED que atua como cliente RTSP para câmeras, permitindo capturar streams de vídeo via protocolo RTSP e convertê-los (por exemplo, para MJPEG) para que possam ser encaminhados para outros nós. Com ele, é possível enviar o fluxo de vídeo para um HTTP Response (para renderização no browser) ou para qualquer outro processamento em tempo real, como a classificação de imagens.


Características

  • Conexão RTSP: Configuração simples para informar usuário, senha e endereço (ip:porta/caminho) e construir a URL RTSP.
  • Conversão de Stream: Utiliza o ffmpeg (ou a biblioteca rtsp-ffmpeg) para converter o stream RTSP em um formato compatível, como MJPEG.
  • Integração com Fluxos Node-RED: Envia os dados de vídeo como buffer para o próximo nó do fluxo, permitindo a renderização ou processamento adicional.
  • Flexibilidade: Pode ser integrado em fluxos para HTTP Response, análises em tempo real (ex.: classificação com Ollama), entre outros.

Pré-requisitos

  • Node-RED: Certifique-se de ter o Node-RED instalado e configurado.
  • Node.js: Ambiente Node.js compatível com o Node-RED.
  • FFmpeg: O ffmpeg deve estar instalado no sistema e acessível via PATH.
  • Dependências: Este nó utiliza o pacote rtsp-ffmpeg (caso opte por esta abordagem) ou o módulo child_process para invocar o ffmpeg diretamente.

Instalação

Você pode instalar este nó via npm:

npm install node-red-contrib-rtsp-client

Após a instalação, reinicie o Node-RED para que o novo nó seja carregado e apareça na paleta de nós.


Configuração do Nó

Ao adicionar o nó RTSP Client ao fluxo, você deverá configurar os seguintes parâmetros:

  • Nome: (Opcional) Nome para identificação do nó.
  • Usuário: Nome de usuário para autenticação na câmera.
  • Senha: Senha correspondente para autenticação.
  • Endereço RTSP: O endereço da câmera no formato ip:porta/caminho.

O nó irá construir a URL RTSP no formato:
rtsp://usuário:senha@endereço


Exemplo de Fluxo

Um exemplo básico de fluxo pode ser:

  1. HTTP In: Configurado para receber requisições.
  2. RTSP Client: Conecta à câmera usando os dados de configuração e inicia o stream.
  3. Nó de Processamento/HTTP Response: Recebe o buffer do vídeo e envia a resposta para o browser ou para um serviço de processamento.

Exemplo de código para HTTP Response:

res.writeHead(200, {
    'Content-Type': 'multipart/x-mixed-replace; boundary=--myboundary'
});

// Ao receber um frame (buffer):
res.write("--myboundary\r\n");
res.write("Content-Type: image/jpeg\r\n");
res.write("Content-length: " + frameBuffer.length + "\r\n\r\n");
res.write(frameBuffer);
res.write("\r\n");

Esse exemplo demonstra como enviar frames JPEG contínuos para o browser.


Desenvolvimento e Customização

  • Estrutura do Projeto:

    • package.json: Contém os metadados e dependências.
    • rtsp-client.js: Implementação do nó, onde o ffmpeg é invocado para capturar e converter o stream.
    • rtsp-client.html: Interface de configuração do nó na paleta do Node-RED.
  • Ajustes do FFMPEG:
    Os parâmetros do ffmpeg podem ser modificados conforme a necessidade, seja para alterar a qualidade, o formato ou para adaptar a outros protocolos como HLS ou RTMP.

  • Debug e Logs:
    O nó registra erros e status do processo ffmpeg para facilitar a identificação de problemas.


Contribuições

Contribuições são bem-vindas! Se você deseja contribuir com melhorias, correções de bugs ou novas funcionalidades, siga os passos abaixo:

  1. Faça um fork do repositório.
  2. Crie uma branch para sua feature ou correção.
  3. Envie um pull request com uma descrição detalhada das mudanças.

Licença

Este projeto é licenciado sob a MIT License.


Contato

Caso tenha dúvidas ou sugestões, sinta-se à vontade para abrir uma issue ou entrar em contato através do repositório do projeto.


Com este nó, você pode facilmente integrar o stream de câmeras RTSP aos seus fluxos no Node-RED, possibilitando desde a visualização em tempo real até análises avançadas de vídeo. Aproveite e customize conforme suas necessidades!