SpeedSync Studio
App desktop que sobrepõe velocidade, tempos de volta e força G derivados de GPS em vídeos GoPro via pipeline FFmpeg sem escrita em disco.
Engenheiro solo — arquitetura, backend Rust, frontend React, toda a renderização dos widgets
Rust · Tauri · React · TypeScript · FFmpeg · OffscreenCanvas
10–20×
§ 01Contexto
Filmagens de câmeras de ação (GoPro, DJI) embutem um stream de telemetria GPMF — GPS, acelerômetro, giroscópio — raramente usado além da tela estática de estatísticas do app oficial. Eu queria velocidade, tempos de volta e força G queimados no próprio vídeo, como widgets configuráveis na tela, sem passar por um editor de vídeo. Isso exigiu parsear um formato binário de telemetria não documentado e construir um pipeline capaz de compor 20–30 widgets animados por frame na taxa do vídeo, entregando depois para um encode acelerado por hardware — tudo dentro de um shell desktop nativo.
§ 02O que construí
Um app Tauri v2: backend em Rust para extração do stream GPMF, gerenciamento de processos FFmpeg e probing de vídeo; frontend React/TypeScript para o editor e o sistema de widgets. O primeiro pipeline de export usava captura de DOM (html-to-image) para rasterizar cada frame, o que funcionava mas derrubava o processo de render do WebKit depois de frames suficientes, por acúmulo de chamadas a getComputedStyle. Reescrevi todo o caminho de renderização em Canvas2D. Cada widget (28 variantes de velocímetro, mapa de circuito GPS, cronômetro de voltas, bola de força G, bússola) ganhou um renderer de canvas construído do zero, rodando dentro de um Web Worker sobre um OffscreenCanvas, totalmente fora da main thread. Os frames são enviados como bytes PNG via IPC diretamente para o stdin do FFmpeg usando image2pipe, então o encode começa imediatamente e roda em paralelo com a renderização. Nenhum frame toca o disco, e o tempo de export se aproxima de max(render, encode) em vez da soma dos dois. A detecção de voltas usa um teste de cruzamento sensível à direção com um algoritmo de traçado consensual (reamostragem por comprimento de arco + mediana entre voltas) para rejeitar falsos positivos por ruído de GPS perto da linha de largada/chegada.
§ 03Resultado
Uma ferramenta para atletas e entusiastas de esportes a motor que gravam com câmeras de ação e querem mais do que um vídeo de destaques pronto. Eles têm controle total sobre como a própria velocidade, tempos de volta e força G aparecem na tela. Assumi o processo inteiro sozinho: a ideia original, a implementação, os testes com filmagens reais de corridas de kart fim de semana após fim de semana, e a divulgação para a comunidade de kart para quem o produto foi pensado. Hoje é um build funcional para macOS que uso em toda sessão, com a distribuição pública (assinatura de código, notarização) como próximo passo.