Spaces:
Runtime error
Runtime error
Interface e API
Interface Web
Componentes Principais
Upload de Vídeo
- Formatos suportados: MP4, AVI, MOV
- Tamanho máximo: 100MB
- Duração máxima: 5 minutos
Configurações de Detecção
- Limiar de confiança (0-100%)
- Modo de processamento (GPU/CPU)
- Tamanho do lote de frames
Visualização de Resultados
- Vídeo com anotações
- Timeline de detecções
- Métricas de processamento
Exemplos de Uso
Upload Simples
with gr.Blocks() as demo: video_input = gr.Video() detect_btn = gr.Button("Detectar") output_display = gr.Video()
Configurações Avançadas
with gr.Blocks() as demo: with gr.Row(): confidence = gr.Slider(0, 100) batch_size = gr.Number(value=4)
API REST
Endpoints
1. Detecção em Vídeo
POST /api/detect
Content-Type: multipart/form-data
{
"video": binary_data,
"confidence": 0.5,
"use_gpu": true
}
Resposta:
{
"detections": [
{
"frame": 0,
"timestamp": "00:00:01",
"objects": [
{
"label": "arma",
"confidence": 95.5,
"bbox": [0, 0, 100, 100]
}
]
}
],
"metrics": {
"frames_processed": 150,
"processing_time": 2.5,
"fps": 60
}
}
2. Status do Serviço
GET /api/status
Response:
{
"status": "online",
"gpu_available": true,
"memory_usage": "45%",
"queue_size": 2
}
Códigos de Erro
400
: Parâmetros inválidos413
: Vídeo muito grande500
: Erro interno503
: Serviço indisponível
Rate Limiting
- 10 requisições/minuto por IP
- 100 requisições/hora por usuário
- Tamanho máximo do vídeo: 100MB
Webhooks
Configuração
POST /api/webhooks/configure
{
"url": "https://seu-servidor.com/callback",
"events": ["detection", "error"],
"secret": "seu_secret"
}
Formato do Callback
{
"event": "detection",
"timestamp": "2024-03-20T15:30:00Z",
"data": {
"video_id": "abc123",
"detections": []
},
"signature": "hash_hmac"
}
Integração com Outros Serviços
1. Hugging Face
from huggingface_hub import HfApi
api = HfApi()
api.upload_file(
path_or_fileobj="./video.mp4",
path_in_repo="videos/test.mp4",
repo_id="seu-espaco"
)
2. Sistemas de Notificação
def notify(detection):
requests.post(
"https://seu-servidor.com/notify",
json={"detection": detection}
)
Considerações de Segurança
Autenticação
- Token JWT obrigatório
- Renovação automática
Rate Limiting
- Por IP e usuário
- Cooldown progressivo
Validação de Entrada
- Tamanho máximo
- Formatos permitidos
- Sanitização