Об этом проекте

小白自动剪辑 (Badminton Auto-Editing) — это опенсорсная система автоматического монтажа видео бадминтонных матчей, ориентированная на любителей бадминтона и тренеров и помогающая быстро извлекать полезные фрагменты розыгрышей. Проект состоит из четырёх основных частей: - **Бэкенд**: построен на Python FastAPI, интегрирует анализ аудио и видео, FFmpeg и модель отслеживания траектории волана TrackNetV3 для распознавания розыгрышей и обработки монтажа. - **Фронтенд**: адаптивный H5-интерфейс с поддержкой загрузки видео, визуальной тонкой настройки таймлайна срезов после ИИ-распознавания и экспорта со сжатием. - **Настольная оболочка**: нативное настольное приложение для macOS / Windows, автоматически запускает локальный сервис и открывает рабочую панель в окне, без необходимости вручную запускать Uvicorn. - **Android-приложение на устройстве**: поддерживает локальный анализ и локальный экспорт, может работать на телефоне. Основной процесс работы: 1. После загрузки записи перетащите четыре угловые точки на изображении, чтобы ограничить целевую площадку. 2. Нажмите «Начать распознавание» — система объединяет звук удара по волану в диапазоне 2–6 кГц, локальное движение внутри полигона площадки и траекторию волана TrackNetV3, отслеживая назад до начала движения подачи и сохраняя вперёд траекторию приземления. 3. Розыгрыши с низкой уверенностью отображаются янтарным цветом; пользователь может скорректировать или удалить их на таймлайне перед экспортом. Стратегия экспорта: через POST /api/v1/video/export/{task_id} монтаж и кодирование выполняются во временном каталоге системы, после чего напрямую возвращается файл MP4 или ZIP. Браузер загружает его через одноразовый Blob URL; после завершения передачи ответа сервер немедленно удаляет временный каталог и не сохраняет готовый файл. Заголовки ответа включают X-Export-Filename, X-File-Size-MB и Cache-Control: no-store. Максимальные размеры вывода — 1080p и 720p; исходное видео меньшего размера не увеличивается. Программное кодирование по умолчанию использует libx264 / libx265, аппаратное кодирование можно включить через FFMPEG_HWACCEL=true. Модель TrackNetV3 управляется через переменные окружения: TRACKNET_ENABLED=false отключает её, TRACKNET_MODEL_PATH задаёт путь к весам, TRACKNET_DEVICE=cpu|mps|cuda выбирает устройство. Если модель недоступна или уверенность недостаточна, система автоматически возвращается к результатам движения внутри площадки. Настольная версия поддерживает macOS и Windows, установочные пакеты собираются через build_macos.sh или build_windows.ps1. GitHub Actions автоматически создаёт Release с приложенными установочными пакетами. Проект распространяется по лицензии MIT, файлы весов по умолчанию также используют лицензию MIT.