Sincroniza vários vídeos de POV pelo áudio e toca todos juntos num painel.
Quando um streamer joga com os amigos, cada um publica a gravação no seu próprio canal. povsync baixa esses vídeos, descobre sozinho o quanto cada um está deslocado no tempo — comparando o áudio — e mostra todos sincronizados num painel, com um botão "Iniciar junto".
Funciona até com vídeos editados (com cortes): em vez de um único offset, cada vídeo ganha um mapa de offsets que muda em cada corte.
100% local. Sem cadastro, sem nuvem, sem chave de API.
Nada de IA nem transcrição — é processamento de sinal clássico, o mesmo truque que editores de vídeo usam pra sincronizar várias câmeras:
- Envelope de loudness — cada áudio vira uma curva de "volume ao longo do tempo". Tiros, gritos e explosões viram picos iguais em todos os POVs, porque é o mesmo som do jogo / chat de voz.
- Cross-correlação por FFT — desliza a curva de um vídeo sobre a do outro e acha onde elas mais casam. O deslocamento do melhor casamento é o offset, medido com precisão de ~10 ms.
- Mapa de offsets por segmento — isso é feito em janelas ao longo do vídeo inteiro. Onde o offset salta = um corte de edição. O player aplica o offset certo de cada trecho automaticamente.
- 🎯 Sincronização automática por correlação de áudio
- ✂️ Suporte a vídeos editados (mapa de offsets por segmento)
- 🔭 Escolha automática do melhor vídeo como referência
▶️ "Iniciar junto" + corretor de drift em tempo real- 🔧 Auto-resync ao vivo (re-verifica a sincronia a cada 20 s)
- 🗺️ Editor de mapa manual (ajustar offsets, mover/criar cortes)
- 🪟 Telas livres: arrastar, redimensionar e presets de layout
- 🖥️ Modo tela cheia
- 📊 Marcadores de corte na barra de tempo
- Python 3.10+
- ffmpeg no PATH
- yt-dlp (instalado via
requirements.txt)
git clone https://github.com/SEU_USUARIO/povsync.git
cd povsync
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txtsource venv/bin/activate
python app.pyAbra http://localhost:8500, cole as URLs dos vídeos (uma por POV) e crie a sessão. O app baixa, sincroniza e abre o painel.
No painel: ▶ Iniciar junto toca todos alinhados; arraste a barra de tempo única; Ressincronizar aqui re-mede a sincronia no ponto atual; 🗺 Mapa abre o editor de cortes.
- 4–6 vídeos 1080p decodificando juntos pesam no navegador — baixe em 720p.
- A correlação precisa de áudio em comum (som do jogo / chat de voz). POVs só de facecam, sem áudio compartilhado, não sincronizam automaticamente.
- A sincronia se mantém dentro de ~70 ms durante a reprodução (zona morta do corretor de drift, pra evitar micro-engasgos).
python test_sync.py # valida a matemática de correlação
python analyze_session.py <id> # diagnóstico de alinhamento de uma sessãoBaixe apenas vídeos que você tem o direito de baixar e respeite os termos de serviço das plataformas. Esta é uma ferramenta para uso pessoal.
MIT — veja LICENSE.