Estou procurando um desenvolvedor para criar um sistema que grave os últimos 30 segundos de uma transmissão ao vivo (rtsp ou rtmp), sob demanda, com suporte a múltiplas quadras (câmeras).
O sistema será utilizado em estabelecimentos com diversas quadras esportivas, com objetivo de salvar replays de momentos acionados manualmente, e exibir esses replays em uma interface web simples.
🎯 Funcionalidades principais
Captura contínua do vídeo (buffer circular)
Cada quadra/câmera terá um stream rtsp ou rtmp.
O sistema deve manter os últimos 30 segundos em buffer contínuo por quadra, sempre disponível para gravação.
Acionamento do replay via requisição HTTP
Replay é acionado via:
curl -X POST http://<ip-servidor>:3000/trigger-replay?quadra=1
O sistema deve identificar a quadra pela URL (?quadra=1) e gravar os últimos 30 segundos da câmera correspondente.
Overlay da logo
O vídeo salvo deve conter uma sobreposição de imagem .png com a logo da empresa, posicionada no canto inferior (preferencialmente inferior direito).
A logo pode ser única para todas as quadras (ou configurável).
Página de replays
Interface web simples que liste todos os replays salvos, ordenados do mais recente para o mais antigo.
Os vídeos devem ser exibidos com player embutido.
Cada replay deve exibir: quadra, data e hora.
Página de administração
Página para cadastrar, editar e remover quadras, informando:
Nome ou número da quadra
url do fluxo rtsp/rtmp
configuração deve ser persistente (em banco ou arquivo json/yaml)
limpeza automática
o sistema deve apagar automaticamente os vídeos com mais de 3 dias.
🛠️ Requisitos técnicos
Dockerized: deve rodar em container Docker, com
docker-compose.yml para facilitar instalação em VPS
Backend em Python (Flask ou FastAPI) ou
Node.js
Uso de ffmpeg para:
Manter buffer contínuo por stream
Extrair os últimos 30 segundos sob demanda
Inserir o overlay da logo .png
Web frontend pode ser simples (html/css/js puro ou algo leve como flask+jinja ou react minimalista)
salvar vídeos em /replays/<quadra>/video_timestamp.mp4
🧱 Organização sugerida dos diretórios
/config/
quadras.json ← config das quadras (nome + URL)
/replays/
/quadra1/
2025-08-05_14-32-10.mp4
/quadra2/
...
/Logo/
logo.png
/frontend/
index.html (lista replays)
admin.html (cadastro de quadras)
✅ Extras (desejável, não obrigatório)
Registro de logs simples (quando um replay é acionado, erro de stream, etc.)
Interface responsiva para celular (opcional, mas bem-vinda)
Status de cada stream (online/offline)
❌ Não precisa:
Notificações por Telegram ou e-mail
Controle de usuários
Exemplo:
https://vibeplay.com.br/arena_na_praca/
Se precisar de mais detalhes sobre o ambiente (servidor, fluxo, estrutura), posso enviar.
Obrigado!
Prazo de Entrega: Não estabelecido