Skip to content

limawtf/povsync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

povsync

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.


Como funciona

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:

  1. 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.
  2. 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.
  3. 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.

Recursos

  • 🎯 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

Requisitos

  • Python 3.10+
  • ffmpeg no PATH
  • yt-dlp (instalado via requirements.txt)

Instalação

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.txt

Uso

source venv/bin/activate
python app.py

Abra 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.

Limitações

  • 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).

Testes

python test_sync.py            # valida a matemática de correlação
python analyze_session.py <id> # diagnóstico de alinhamento de uma sessão

Uso responsável

Baixe 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.

Licença

MIT — veja LICENSE.

About

Sincroniza vários vídeos de POV pelo áudio e toca todos juntos num painel

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors