Pipeline autônomo que detecta partidas dentro da sua gravação de tela, identifica quem ganhou, e gera cortes prontos pra publicar. Roda 24/7 no Cloud Run. Custo: $0/mês no free tier.
O bruto chega ao R2 e desce a esteira sozinho. Cada etapa é independente, observável e tolerante a falha.
Upload do gameplay bruto pro R2.
replay com estado
recebido. O resto acontece sozinho.
cv2 segmenta. Gemini enriquece via 5 PNGs.
cortes-analyzer-job roda a cada hora,
baixa o bruto, extrai frames @ 1fps e detecta as partidas via
cv2.matchTemplate de 6 sinais visuais.
Pra cada partida segmentada, extrai 5 frames PNG estratégicos
(início + 1/3 + 2/3 + fim-5s + fim-2s) e manda pro
Gemini 3.5 Flash que retorna nomes/coroas/modo de fim/narrativa em JSON.
~1.290 tokens/partida (vs 13-58k se mandasse o vídeo) —
16s/partida em vez de 15min, sem depender do backend de vídeo Google.
ffmpeg final, 60s, MP4 faststart.
cortes-cutter pega cada partida
pendente_corte, corta os últimos 60s
via -ss / -t / -c copy, normaliza pra h264 baseline + AAC + faststart,
e sobe pro bucket cortes-prontos.
Estado vira cortada.
Admin Next.js, visualiza tudo.
Ainda manual. Vai automatizar.
analise_jsonb do Gemini, e fila de publicação multi-plataforma.
Nada de "popular". A melhor.
0 * * * * (1 bruto / hora)5 brutos processados em produção. Detector cv2 100% acertou os timestamps de cada partida. Análise visual final confirmou placares.
RDX assistiu o bruto inteiro e anotou as 2 partidas manualmente (Garcia 2×1 derrota em tempo extra; Francisco 3×0 vitória 3 coroas).
analise_jsonb (nome do oponente, modo de fim, jogada decisiva).