# videoSplitTool **Repository Path**: al01/video-split-tool ## Basic Information - **Project Name**: videoSplitTool - **Description**: 一个基于Python和Tkinter开发的图形化视频分割工具,支持将长视频按指定时长分割成多个片段。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-17 - **Last Updated**: 2025-09-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: VideoSplitTool, 视频分割工具, Python, 工具 ## README # 视频分割工具 (Video Split Tool) 一个基于Python和Tkinter开发的图形化视频分割工具,支持将长视频按指定时长分割成多个片段。 ## ✨ 主要特性 - 🎬 **直观的图形界面** - 基于Tkinter的现代化GUI设计 - ⚡ **高效视频处理** - 使用FFmpeg进行快速、高质量的视频分割 - 🔧 **灵活的分割选项** - 支持自定义分割时长和多种预设选项 - 📁 **智能文件管理** - 自动创建输出目录,支持多种命名模式 - 🎯 **实时预览** - 视频播放控制和缩略图预览功能 - 🚀 **多线程处理** - 并行处理提升分割效率 - 📊 **详细进度显示** - 实时显示分割进度和状态 - 🔍 **完整日志系统** - 详细的操作日志和错误追踪 - ⚙️ **丰富的设置选项** - 可自定义输出格式、质量、路径等 ## 🎯 功能特点 ### 视频分割 - 支持多种视频格式(MP4、AVI、MOV、MKV等) - 可设置自定义分割时长(秒、分钟、小时) - 预设分割选项:5分钟、10分钟、15分钟、30分钟、1小时 - 保持原视频质量或自定义输出质量 ### 视频预览 - 内置视频播放器,支持播放/暂停/停止 - 时间轴控制,可快速跳转到指定位置 - 实时时间显示和进度条 - 分割后缩略图预览 ### 输出设置 - 灵活的文件命名模式 - 支持多种输出格式 - 可选择输出目录策略 - 自动检测和处理文件冲突 ### 高级功能 - FFmpeg自动检测和配置 - 临时文件管理 - 多线程并行处理 - 详细的操作日志 - 设置导入/导出 ## 📋 系统要求 - **操作系统**: Windows 7/8/10/11 - **Python版本**: Python 3.7+ - **依赖库**: - OpenCV (opencv-python) - Pillow (PIL) - Tkinter (通常随Python安装) ## 🚀 安装说明 ### 方法一:直接运行(推荐) 1. **克隆或下载项目** ```bash git clone cd videoSplitTool ``` 2. **安装Python依赖** ```bash pip install -r requirements.txt ``` 3. **确保FFmpeg可用** - 项目已包含 `ffmpeg.exe`,无需额外安装 - 或者从 [FFmpeg官网](https://ffmpeg.org/download.html) 下载并配置环境变量 4. **运行程序** ```bash python main.py ``` ### 方法二:虚拟环境(推荐用于开发) 1. **创建虚拟环境** ```bash python -m venv venv ``` 2. **激活虚拟环境** ```bash # Windows venv\Scripts\activate # Linux/Mac source venv/bin/activate ``` 3. **安装依赖并运行** ```bash pip install -r requirements.txt python main.py ``` ## 📷 界面预览 ### 主界面 ![主界面](screenshots/main.jpg) *主界面展示了视频选择、预览和分割控制功能* ### 设置界面 ![设置界面](screenshots/settings_window.jpg) *丰富的设置选项,支持自定义输出格式、质量和路径* ### 分割进度 ![分割进度](screenshots/splitting_progress.jpg) *实时显示分割进度和状态信息* ### 结果预览 ![结果预览](screenshots/result_thumbnails.jpg) *分割完成后的缩略图预览,方便快速查看结果* ## 📖 使用指南 ### 基本使用流程 1. **启动程序** - 运行 `python main.py` 启动应用 2. **选择视频文件** - 点击"选择视频文件"按钮 - 浏览并选择要分割的视频文件 3. **设置分割参数** - 选择分割时长(可使用预设或自定义) - 在设置中配置输出格式和质量 4. **开始分割** - 点击"开始分割"按钮 - 观察进度条显示分割进度 5. **查看结果** - 分割完成后自动显示缩略图预览 - 可直接打开输出文件夹查看结果 ### 使用示例 #### 示例1:分割长视频为15分钟片段 ``` 输入文件: movie.mp4 (2小时30分钟) 分割设置: 15分钟(预设) 输出结果: - movie_part_001.mp4 (15分钟) - movie_part_002.mp4 (15分钟) - movie_part_003.mp4 (15分钟) - ... - movie_part_010.mp4 (最后片段) ``` #### 示例2:自定义分割时长 ``` 输入文件: lecture.mp4 (1小时45分钟) 分割设置: 25分钟 (自定义) 命名模式: {name}_第{index}部分 输出结果: - lecture_第001部分.mp4 (25分钟) - lecture_第002部分.mp4 (25分钟) - lecture_第003部分.mp4 (25分钟) - lecture_第004部分.mp4 (20分钟) ``` #### 示例3:批量处理不同格式 ``` 支持的输入格式: .mp4, .avi, .mov, .mkv, .wmv, .flv 输出格式选择: - 与源相同 (推荐) - 统一转换为MP4 - 自定义格式 ``` ### 高级设置 #### 输出设置 - **输出格式**: 与源相同、MP4、AVI、MOV等 - **视频质量**: 与源相同、高质量、中等质量、压缩质量 - **命名模式**: 自定义文件命名规则 #### 分割设置 - **默认分割时长**: 设置常用的分割时长 - **预设选项**: 快速选择常用时长 #### 高级选项 - **FFmpeg路径**: 自定义FFmpeg可执行文件路径 - **临时目录**: 设置临时文件存储位置 - **导出策略**: 选择输出文件的保存位置 ## 📁 项目结构 ``` videoSplitTool/ ├── main.py # 主程序入口 ├── settings.py # 设置窗口和配置管理 ├── utils.py # 工具函数(FFmpeg检测等) ├── logger.py # 日志系统 ├── requirements.txt # Python依赖列表 ├── settings.json # 应用设置文件 ├── ffmpeg.exe # FFmpeg可执行文件 ├── logs/ # 日志文件目录 ├── .gitignore # Git忽略文件 └── README.md # 项目说明文档 ``` ## 🔧 配置文件说明 ### settings.json 应用的主要配置文件,包含以下设置: ```json { "output_format": "与源相同", // 输出视频格式 "video_quality": "与源相同", // 视频质量设置 "default_slice_duration": 900, // 默认分割时长(秒) "slice_duration_preset": "15分钟", // 分割时长预设 "naming_pattern": "{name}_part_{index:03d}", // 文件命名模式 "theme": "默认", // 界面主题 "ffmpeg_path": ".\\ffmpeg.exe", // FFmpeg路径 "temp_directory": "...", // 临时文件目录 "export_path_strategy": "视频当前目录" // 导出路径策略 } ``` ## 🐛 故障排除 ### 常见问题 1. **FFmpeg未找到** - 确保 `ffmpeg.exe` 在项目根目录 - 或在设置中指定正确的FFmpeg路径 - 检查系统环境变量中是否包含FFmpeg 2. **视频加载失败** - 检查视频文件是否损坏 - 确认视频格式是否受支持 - 查看日志文件获取详细错误信息 3. **分割过程中断** - 检查磁盘空间是否充足 - 确认输出目录是否有写入权限 - 查看日志了解具体错误原因 4. **程序运行缓慢** - 关闭其他占用资源的程序 - 在设置中调整线程数量 - 选择较低的输出质量设置 ### 日志查看 程序运行时会自动生成详细日志,可通过以下方式查看: - 在设置窗口的"日志"选项卡中查看 - 直接打开 `logs/` 目录下的日志文件 - 使用日志过滤功能查找特定信息 ## 🤝 贡献指南 欢迎提交问题报告和功能建议! 1. Fork 本项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 🙏 致谢 - [FFmpeg](https://ffmpeg.org/) - 强大的多媒体处理框架 - [OpenCV](https://opencv.org/) - 计算机视觉库 - [Pillow](https://pillow.readthedocs.io/) - Python图像处理库 ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 提交 Gitee Issue - 发送邮件至:[gitee@al01.cn](mailto:gitee@al01.cn) --- **享受使用视频分割工具!** 🎬✨