Sobre o projeto

O Badminton Auto-Editing é um sistema de código aberto para edição automática de vídeos de partidas de badminton, voltado principalmente a entusiastas e treinadores de badminton, ajudando a extrair rapidamente os trechos de jogadas válidas de uma partida. O projeto é composto por quatro partes principais: - **Backend**: construído com Python FastAPI, integra análise de áudio e vídeo, FFmpeg e o modelo de detecção de trajetória de badminton TrackNetV3, realizando o reconhecimento de jogadas e o processamento de edição. - **Frontend**: interface H5 responsiva, com suporte a upload de vídeo, ajuste fino visual na linha do tempo dos cortes identificados por IA e exportação com compressão. - **Shell de desktop**: aplicativo de desktop nativo para macOS / Windows, que inicia automaticamente o serviço local e abre o ambiente de trabalho em uma janela, sem necessidade de executar o Uvicorn manualmente. - **App Android no dispositivo**: suporta análise local e exportação local, podendo ser executado no celular. Fluxo das funcionalidades principais: 1. Após enviar a gravação, arraste os quatro cantos sobre a imagem para delimitar a quadra desejada. 2. Clique em "Iniciar reconhecimento"; o sistema combina sons de raquetada de 2kHz-6kHz, movimento local dentro do polígono da quadra e a trajetória de badminton do TrackNetV3, retrocedendo até o início do movimento de saque e mantendo adiante a trajetória até o toque no chão. 3. Jogadas com baixa confiança aparecem em âmbar; o usuário pode ajustá-las ou removê-las na linha do tempo antes de exportar. Estratégia de exportação: por meio de POST /api/v1/video/export/{task_id}, a codificação do corte é concluída no diretório temporário do sistema, retornando diretamente um arquivo MP4 ou ZIP. O navegador usa uma URL Blob de uso único para download; após o término da transmissão da resposta, o servidor exclui imediatamente o diretório temporário, sem salvar o vídeo final. Os cabeçalhos de resposta incluem X-Export-Filename, X-File-Size-MB e Cache-Control: no-store. O limite de tamanho de saída é 1080p e 720p; vídeos de origem menores que isso não são ampliados. A codificação por software usa libx264 / libx265 por padrão, e a codificação por hardware pode ser habilitada com FFMPEG_HWACCEL=true. O modelo TrackNetV3 pode ser controlado por variáveis de ambiente: TRACKNET_ENABLED=false para desativar, TRACKNET_MODEL_PATH para especificar o caminho dos pesos, TRACKNET_DEVICE=cpu|mps|cuda para escolher o dispositivo. Quando o modelo não está disponível ou a confiança é insuficiente, o sistema recorre automaticamente ao resultado de movimento em quadra. A versão de desktop suporta macOS e Windows, com pacotes de instalação gerados por build_macos.sh ou build_windows.ps1. O GitHub Actions cria automaticamente uma Release com os pacotes de instalação anexados. O projeto usa a licença MIT, e os arquivos de pesos padrão também seguem a licença MIT.