YAML Metadata Warning: empty or missing yaml metadata in repo card (https://huggingface.co/docs/hub/model-cards#model-card-metadata)
🎥 WebRTC Latency Test
Servidor WebRTC para teste de latência em tempo real com timestamps precisos.
📋 Características
- ✅ Geração de vídeo em tempo real (30 FPS)
- ✅ Timestamps precisos com milissegundos
- ✅ Cliente web para visualização
- ✅ Teste automatizado com Playwright
- ✅ Suporte a múltiplos usuários simultâneos
- ✅ Scripts de instalação e gerenciamento
🚀 Instalação Rápida
# 1. Clone o repositório
git clone <repo-url>
cd webrtc-latency-test
# 2. Execute a instalação
./scripts/install.sh
# 3. Inicie o servidor
./scripts/start.sh
📁 Estrutura do Projeto
webrtc-latency-test/
├── README.md # Este arquivo
├── requirements.txt # Dependências Python
├── server/
│ ├── webrtc-server.py # Servidor WebRTC
│ └── webrtc-client.html # Cliente web
├── tests/
│ └── test_latency_playwright.py # Teste automatizado
├── scripts/
│ ├── install.sh # Instalação
│ ├── start.sh # Iniciar servidor
│ └── stop.sh # Parar servidor
└── docs/
├── TESTING_INSTRUCTIONS.md # Manual de testes
└── AUTOMATED_TESTING.md # Testes automatizados
🎯 Como Usar
Iniciar Servidor
./scripts/start.sh
O servidor estará disponível em: http://localhost:9000
Acessar Cliente Web
Abra o navegador e acesse:
- Direto:
http://<ip-servidor>:9000 - Via SSH tunnel:
http://localhost:9000
Parar Servidor
./scripts/stop.sh
📊 Medição de Latência
Manual
- Acesse o cliente web
- Clique em "Conectar"
- Observe o timestamp no vídeo
- Compare com o horário local
- Latência = Hora Local - Timestamp no Vídeo
Automatizada
# Teste com 1 usuário
python3 tests/test_latency_playwright.py 1 true
# Teste com 5 usuários simultâneos
python3 tests/test_latency_playwright.py 5 true
# Teste com 10 usuários
python3 tests/test_latency_playwright.py 10 true
📈 Latência Esperada
| Latência | Classificação | Uso |
|---|---|---|
| < 100ms | ✅ Excelente | Quase imperceptível |
| 100-300ms | ✅ Bom | Ideal para conversação |
| 300-500ms | ⚠️ Aceitável | Pequenos delays |
| > 500ms | ❌ Ruim | Latência muito alta |
🔧 Requisitos
- Python 3.8+
- pip
- Navegador moderno (Chrome, Firefox, Safari)
Dependências Python
- aiortc
- aiohttp
- opencv-python
- numpy
- playwright (opcional, para testes automatizados)
📖 Documentação
🎬 O que é medido
O vídeo gerado mostra:
- Timestamp: Hora atual com milissegundos
- Frame Number: Contador de frames
- FPS: Taxa de quadros (30 FPS)
- Elapsed Time: Tempo decorrido desde início
- Borda colorida: Indicador visual de atualização
🌐 Uso via SSH Tunnel
Se o servidor não estiver acessível externamente:
# Criar tunnel SSH
ssh -L 9000:localhost:9000 user@servidor
# Acessar localmente
http://localhost:9000
🚀 Deploy em Servidor Remoto
# 1. Copiar projeto para servidor
scp -r webrtc-latency-test user@servidor:/root/
# 2. SSH no servidor
ssh user@servidor
# 3. Instalar e iniciar
cd /root/webrtc-latency-test
./scripts/install.sh
./scripts/start.sh
📊 Componentes da Latência (~200ms típico)
Processamento servidor: ~40-60ms
- Geração de frame
- WebRTC encoding
Transporte de rede: ~80-120ms
- Upload
- Roteamento
- Download
Processamento cliente: ~30-50ms
- WebRTC decoding
- Rendering
Buffering: ~20-30ms
- Jitter buffer
- Render buffer
🛠️ Solução de Problemas
Servidor não inicia
# Verificar se porta 9000 está em uso
netstat -tuln | grep 9000
# Matar processos na porta 9000
lsof -ti:9000 | xargs kill -9
Vídeo não aparece
- Verifique se o servidor está rodando:
./scripts/start.sh - Verifique o console do navegador (F12)
- Verifique os logs:
tail -f /tmp/webrtc.log
Latência muito alta
- Use servidor geograficamente próximo
- Verifique conexão de rede
- Reduza resolução do vídeo
- Use conexão cabeada ao invés de Wi-Fi
📝 Licença
MIT License
🤝 Contribuições
Contribuições são bem-vindas! Abra uma issue ou pull request.
📧 Contato
Para dúvidas e sugestões, abra uma issue no GitHub.
Desenvolvido para testes de latência WebRTC em tempo real 🎯
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support