# AbyssalTools **Repository Path**: x_164204718/AbyssalTools ## Basic Information - **Project Name**: AbyssalTools - **Description**: 一个可以把视频转换成序列帧,并基于白底抠图,然后生成gif和多类型宫格的小功能 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-10 - **Last Updated**: 2026-03-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 视频帧提取工具 一个基于 Python FastAPI + React 的视频帧提取和处理工具。 ## 功能特性 - 📹 视频上传(支持多种格式) - 🖼️ 视频帧提取(可配置提取频率) - ✅ 图片选择和预览 - 📐 生成网格图(支持多种格式:2×2, 3×4等) - 🎬 生成GIF动画 ## 技术栈 ### 后端 - FastAPI - 高性能Web框架 - OpenCV - 视频处理 - Pillow - 图片处理 - imageio - GIF生成 ### 前端 - React + TypeScript - Vite - 构建工具 - Ant Design - UI组件库 - Axios - HTTP客户端 ## 快速开始 ### 方式一:一键启动(推荐) 在主目录执行以下命令即可同时启动前后端: **Windows (PowerShell):** ```powershell .\start.ps1 ``` **Windows (CMD):** ```cmd start.bat ``` **Linux/Mac:** ```bash chmod +x start.sh ./start.sh ``` 或者直接使用npm命令: ```bash npm install # 首次运行需要安装concurrently npm run dev # 启动前后端 ``` ### 方式二:分别启动 #### 1. 安装依赖 **后端:** ```bash cd backend pip install -r requirements.txt ``` **前端:** ```bash cd frontend npm install ``` #### 2. 启动服务 **后端 (终端1):** ```bash cd backend uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 ``` **前端 (终端2):** ```bash cd frontend npm run dev ``` ### 访问地址 - 前端应用: http://localhost:5173 - 后端API: http://localhost:8000 - API文档: http://localhost:8000/docs ## 使用说明 1. **上传视频**: 在首页拖拽或选择视频文件上传 2. **提取帧**: 点击"开始提取帧"按钮,系统会自动提取视频帧 3. **选择图片**: 在帧列表中勾选需要的图片 4. **生成网格图**: 选择格式(如3×4),点击"生成网格图" 5. **生成GIF**: 设置每帧时长,点击"生成GIF" ## 项目结构 ``` AbyssalTools/ ├── backend/ # 后端服务 │ ├── app/ │ │ ├── main.py # FastAPI入口 │ │ └── routers/ # API路由 │ └── requirements.txt ├── frontend/ # 前端应用 │ ├── src/ │ │ ├── App.tsx # 主组件 │ │ └── services/ # API服务 │ └── package.json └── uploads/ # 上传文件存储(自动创建) ├── videos/ # 视频文件 ├── frames/ # 提取的帧 └── outputs/ # 生成的结果 ``` ## 注意事项 - 确保系统已安装 FFmpeg(某些视频格式需要) - 大视频文件处理可能需要较长时间 - 生成的GIF文件大小取决于选择的帧数和图片质量