Skip to content

Fabianob19/dronestream

Repository files navigation

🚁 DroneStream — Servidor Ultra-Baixa Latência

Servidor de streaming otimizado para recepção de vídeo de drones. Substitui o legado MonaServer e entrega o fluxo de vídeo para softwares de broadcast (vMix/OBS) e visualizadores locais com latência visualmente zero (< 200ms).

Este pacote é 100% Offline e Portátil (Plug-and-Play). Não requer instalação de dependências.

🏗️ Arquitetura e Fluxos de Trabalho

O sistema foi desenhado para suportar dois fluxos de trabalho simultâneos e independentes a partir do mesmo servidor:

                  ┌──→ Fluxo A: vMix / OBS (Protocolo TCP)
                  │    Foco: Estabilidade e Integridade para Broadcast.
 Drone (RTMP) ────┤
 (Sinal 4G/5G)    │
                  └──→ Fluxo B: MPV Viewer Local (Protocolo UDP)
                       Foco: Latência Zero para Monitoramento do Piloto.

🚀 Uso Imediato (Quick Start)

Extraia este arquivo .zip em qualquer lugar do seu computador e siga os passos:

1. Ligar o Motor (Servidor)

Execute o arquivo:

start-server.bat

(Ele recebe o vídeo do drone e distribui para a rede. Ele DEVE ficar aberto o tempo todo).

2. Configurar o Drone

No aplicativo do seu drone, configure a URL de transmissão (Live Streaming RTMP):

rtmp://<IP_DO_SEU_PC>:1935/drone

3. Receber a Imagem

Você tem duas opções (pode usar ambas ao mesmo tempo):

Opção A: Transmissão Profissional (vMix / OBS) Pegue o link gerado pelo servidor (rtsp://<IP_DO_SEU_PC>:8554/drone) e insira no vMix como "Stream/Network".

💡 Dica de Ouro: Nas configurações de entrada do vMix/OBS, force o uso de TCP. O TCP garante que você não perca nenhum frame na live, oferecendo a estabilidade que uma transmissão de TV exige.

Opção B: Monitoramento do Piloto (Opcional) Se o piloto do drone ou o diretor quiserem ver o vídeo no computador com zero atraso, execute:

start-viewer.bat

(Este script abre um player MPV otimizado em UDP que não possui buffer, mostrando a imagem no milissegundo exato que ela chega).


🛠️ Testar sem o Drone (Simulação)

Para verificar o ambiente no estúdio antes de ir a campo:

  1. Inicie: start-server.bat
  2. Inicie a simulação: test-stream.bat (Gera uma imagem de teste com relógio).
  3. Abra no vMix ou use o start-viewer.bat para validar a latência na tela.

📁 Estrutura do Pacote

DroneStream-Release/
├── start-server.bat    # 🟢 [MOTOR] Inicia a recepção de vídeo.
├── start-viewer.bat    # 🟡 [OPCIONAL] Tela de monitoramento para o piloto.
├── test-stream.bat     # Simula um drone enviando vídeo.
├── monitor.ps1         # Monitor de recursos em tempo real.
├── README.md           # Resumo rápido (Este documento).
├── GUIA-COMPLETO.md    # Manual detalhado com resolução de problemas.
├── mediamtx/           # (Sistema) Binário do Servidor.
├── mpv/                # (Sistema) Binário do Player de Monitoramento.
├── setup.ps1           # (Sistema) Ferramenta de Restauração (Requer Internet).
└── install-mpv.ps1     # (Sistema) Ferramenta de Restauração.

📊 Portas Utilizadas

Porta Protocolo Direção Uso
1935 RTMP Entrada Drone envia o vídeo
8554 RTSP (TCP/UDP) Saída vMix / OBS / Viewers buscam o vídeo
9997 HTTP Local API de monitoramento (localhost:9997/v3/paths/list)

💡 Solução de Problemas Rápidas

  • O MPV (start-viewer.bat) congelou quando abri o vMix: Isso é normal. Como o MPV usa UDP extremo sem buffer (para latência zero), a micro-interrupção do servidor ao conectar um segundo cliente (vMix) pode derrubar o frame do MPV. Solução: Conecte o vMix primeiro, ou apenas reinicie o start-viewer.bat se ele congelar. O vMix (em TCP) nunca vai travar.
  • O vídeo pisca ou fragmenta no vMix: A rede entre o drone e o computador está perdendo pacotes. Reduza o bitrate do drone (2-3 Mbps), diminua para 720p, ou melhore o roteador/sinal 4G.
  • Deletei uma pasta do sistema: Execute o arquivo setup.ps1 com o PowerShell. Ele refará o download dos binários oficiais automaticamente.

👨‍💻 Para Desenvolvedores (GitHub)

Se você não baixou a versão "Release" (o pacote .zip completo) e sim fez um Git Clone deste repositório, você notará que o projeto não funciona imediatamente porque os binários não são enviados para o Git (para manter o repositório leve).

O que fazer após o clone:

  1. Abra o PowerShell como Administrador.
  2. Navegue até a pasta do repositório.
  3. Execute o setup:
powershell -ExecutionPolicy Bypass -File .\setup.ps1

Esse comando irá baixar automaticamente a versão mais recente do MediaMTX do GitHub oficial e o MPV Portátil do SourceForge, injetando-os nas pastas corretas para uso.

Para gerar um novo pacote .zip de Release: Basta executar o arquivo build-release.ps1. Ele compilará todos os arquivos necessários e ignorará arquivos de cache, gerando o pacote DroneStream-Release.zip perfeito para entrega.

About

Servidor de streaming local de ultra-baixa latência (<200ms) otimizado para transmissão de drones via RTMP para RTSP. Ideal para monitoramento e integração com vMix/OBS.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages