owenkings/text2dance

text2dance制作数据集程序

0

stars

54

commits

Python

primary language

Nov 10, 2025

updated

README

视频处理爬虫工具

一个集成了网络爬虫和视频处理功能的综合性工具,支持视频下载、处理、分析和AI算法应用。

功能特性

🕷️ 网络爬虫

  • 支持多种视频网站的视频爬取和下载
  • 智能解析视频链接和元数据
  • 批量下载和断点续传
  • 代理支持和反爬虫机制
  • 自定义下载参数和格式选择

🎬 视频处理

  • 视频格式转换和编码
  • 视频剪辑、合并和分割
  • 帧提取和视频预览
  • 批量处理和自动化工作流
  • GPU加速支持

🤖 AI算法集成

  • 2D姿态估计: OpenPose, MediaPipe, PoseNet等
  • 3D姿态估计: VideoPose3D, 3D-PoseNet等
  • 视频描述生成: Vid2Seq, Video-ChatGPT等
  • 自定义算法插件支持

🔧 系统特性

  • 现代化的PyQt5图形界面
  • 插件系统和扩展支持
  • 任务管理和进度监控
  • 配置管理和设置保存
  • 多语言支持
  • 日志记录和错误处理

系统要求

最低要求

  • 操作系统: Windows 10/11, macOS 10.14+, Ubuntu 18.04+
  • Python: 3.7 或更高版本
  • 内存: 4GB RAM (推荐 8GB+)
  • 存储: 2GB 可用空间
  • 网络: 稳定的互联网连接

推荐配置

  • CPU: Intel i5 或 AMD Ryzen 5 以上
  • GPU: NVIDIA GTX 1060 或更高 (用于GPU加速)
  • 内存: 16GB RAM
  • 存储: SSD 硬盘

快速开始

方法一:一键启动(推荐)

Windows用户

  • 双击 启动程序.bat 文件
  • 选择操作:启动程序、安装依赖或检查依赖状态
  • 程序会自动处理依赖问题

所有平台

# 智能启动(自动检查依赖)
python start.py

# 或专门安装依赖
python install_dependencies.py

方法二:手动安装

  1. 安装所有依赖:
pip install -r requirements.txt
  1. 如果遇到特定问题:
# NumPy兼容性问题
python fix_numpy.py

# MoviePy缺失问题
pip install moviepy==1.0.3

# 完整依赖修复
python install_dependencies.py
  1. 运行程序:
python main.py

常见问题解决

  • No module named 'moviepy.editor':运行 pip install moviepy==1.0.3
  • _ARRAY_API not found:运行 pip install "numpy<2.0" --force-reinstall
  • 其他依赖问题:运行 python install_dependencies.py

安装指南

1. 克隆项目

git clone https://github.com/your-username/video-crawler-tool.git
cd video-crawler-tool

2. 创建虚拟环境

# 使用 venv
python -m venv venv

# Windows
venv\Scripts\activate

# macOS/Linux
source venv/bin/activate

3. 安装依赖

# 安装基础依赖
pip install -r requirements.txt

# 如果需要GPU支持 (NVIDIA)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

4. 下载模型文件

重要: 3D姿态估计功能需要手动下载以下模型文件到指定目录:

models文件

base_data文件

pose_detector文件

pretrained文件

weights文件

注意: 请确保将下载的文件放置在正确的目录中,否则3D姿态估计功能将无法正常工作。

5. 配置环境

# 复制配置文件模板
cp config/config.example.yaml config/config.yaml

# 编辑配置文件
nano config/config.yaml

6. 运行程序

# GUI模式
python main.py

# 命令行模式
python main.py --no-gui

# 查看帮助
python main.py --help

使用指南

GUI模式

  1. 启动应用程序

    python main.py
    
  2. 爬虫功能

    • 在"爬虫"选项卡中输入视频URL
    • 选择下载目录和质量
    • 点击"开始下载"按钮
  3. 视频处理

    • 在"视频处理"选项卡中选择视频文件
    • 配置处理参数
    • 选择输出格式和目录
    • 开始处理
  4. AI分析

    • 选择要分析的视频
    • 选择算法类型(2D姿态、3D姿态、视频描述)
    • 配置算法参数
    • 开始分析

命令行模式

# 爬取视频
python main.py --no-gui --crawl "https://example.com/video" --output ./downloads

# 处理视频
python main.py --no-gui --process "video.mp4" --algorithm pose_2d --output ./results

# 批量处理
python main.py --no-gui --process "*.mp4" --algorithm video_description

配置说明

主配置文件 (config/config.yaml)

# 应用程序设置
app:
  name: "视频处理爬虫工具"
  version: "4.1.2"
  language: "zh_CN"
  theme: "dark"
  log_level: "INFO"

# 爬虫设置
crawler:
  download_path: "./downloads"
  max_concurrent: 3
  retry_count: 3
  timeout: 30
  user_agent: "Mozilla/5.0..."
  proxy: ""

# 视频处理设置
video_processing:
  temp_path: "./temp"
  output_path: "./output"
  ffmpeg_path: ""
  gpu_acceleration: false
  max_threads: 4

# AI算法设置
algorithms:
  pose_2d:
    default_algorithm: "openpose"
    models_path: "./models/pose_2d"
    confidence_threshold: 0.5
  
  pose_3d:
    default_algorithm: "videopose3d"
    models_path: "./models/pose_3d"
    confidence_threshold: 0.5
  
  video_description:
    default_algorithm: "vid2seq"
    models_path: "./models/description"
    max_length: 100

# 插件设置
plugins:
  plugins_path: "./plugins"
  auto_load: true
  enabled_plugins: []

插件开发

创建自定义插件

  1. 创建插件目录

    plugins/
    └── my_plugin/
        ├── __init__.py
        ├── plugin.py
        └── config.yaml
    
  2. 实现插件接口

    # plugins/my_plugin/plugin.py
    from src.core.plugin_base import PluginBase
    
    class MyPlugin(PluginBase):
        def __init__(self):
            super().__init__()
            self.name = "My Plugin"
            self.version = "4.2.1"
        
        def initialize(self):
            # 插件初始化逻辑
            pass
        
        def process_video(self, video_path):
            # 视频处理逻辑
            pass
    
  3. 注册插件

    # plugins/my_plugin/__init__.py
    from .plugin import MyPlugin
    
    def get_plugin():
        return MyPlugin()
    

API文档

核心模块

  • src.crawler: 爬虫相关功能
  • src.video: 视频处理功能
  • src.algorithms: AI算法集成
  • src.gui: 图形界面组件
  • src.core: 核心系统组件
  • src.utils: 工具和辅助函数

主要类

# 爬虫管理器
from src.crawler import CrawlerManager
crawler = CrawlerManager()
result = crawler.download_video(url, output_dir)

# 视频处理器
from src.video import VideoProcessor
processor = VideoProcessor()
processor.convert_format(input_file, output_file, format="mp4")

# 算法管理器
from src.algorithms import AlgorithmManager
algorithm_mgr = AlgorithmManager()
result = algorithm_mgr.run_pose_estimation(video_path, algorithm="openpose")

故障排除

常见问题

  1. 导入错误

    ImportError: No module named 'PyQt5'
    

    解决方案: 确保已安装所有依赖包

    pip install -r requirements.txt
    
  2. FFmpeg未找到

    FileNotFoundError: ffmpeg not found
    

    解决方案: 安装FFmpeg并添加到PATH,或在配置文件中指定路径

  3. GPU加速失败

    CUDA out of memory
    

    解决方案: 减少批处理大小或使用CPU模式

  4. 网络连接问题

    ConnectionError: Failed to download
    

    解决方案: 检查网络连接,配置代理或重试

日志文件

日志文件位置: logs/app.log

查看详细错误信息:

tail -f logs/app.log

贡献指南

开发环境设置

  1. Fork项目

  2. 创建开发分支

    git checkout -b feature/new-feature
    
  3. 安装开发依赖

    pip install -r requirements.txt
    pip install pytest black flake8 mypy
    
  4. 运行测试

    pytest tests/
    
  5. 代码格式化

    black src/
    flake8 src/
    mypy src/
    

提交规范

  • 使用清晰的提交信息
  • 遵循代码风格指南
  • 添加必要的测试
  • 更新文档

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

致谢

联系方式

更新日志

v4.2.1 (2025-01-24)

🎨 界面布局优化与响应式设计增强

  • 📱 视频列表动态高度调整

    • 新增 视频列表框高度动态调整功能,根据窗口高度自动适应
    • 实现 固定视频列表框与视频上传组下边框的相对距离,确保布局一致性
    • 优化 视频列表最小高度从240px调整为120px,提供更灵活的空间利用
    • 改进 视频列表尺寸策略从Expanding, Expanding修改为Expanding, Preferred
    • 添加 _adjust_video_list_height()方法,智能计算可用空间并设置动态高度约束
    • 集成 窗口大小变化监听,实时响应用户调整窗口大小的操作
  • 🖥️ 响应式布局系统完善

    • 增强 窗口大小变化处理机制,在_on_window_resized()中集成视频列表高度调整
    • 实现 初始化时延迟调用高度调整功能,确保界面加载完成后正确设置
    • 优化 布局计算逻辑,考虑上传组、间距、描述区域等所有界面元素的空间占用
    • 保护 最小高度限制,防止界面元素过度压缩影响用户体验
    • 支持 滚动功能,当内容超出可视区域时提供流畅的滚动体验
  • ⚙️ 上传组布局优化

    • 设置 上传组最大高度为600px,防止过度扩展影响整体布局
    • 修改 上传组对齐方式从AlignCenter改为AlignTop,优化视觉效果
    • 保存 上传组引用(self.upload_group),支持动态高度计算和约束设置
    • 确保 上传组与视频列表的协调布局,维持界面整体美观性
  • 🔧 技术实现与代码质量

    • 核心文件: src/gui/video_description_widget.py中的布局优化实现
    • 方法增强: 新增_adjust_video_list_height()方法,提供完整的动态高度调整逻辑
    • 事件集成: 在_on_window_resized()和初始化流程中集成高度调整功能
    • 参数优化: 精确计算预留高度(280px),包含描述区域、功能选项、间距等
    • 兼容性: 确保与现有响应式布局系统的完美集成
  • 💡 用户体验提升

    • 智能适应: 视频列表高度根据窗口大小智能调整,最大化可用空间利用
    • 视觉一致: 保持界面元素间的固定相对距离,提供稳定的视觉体验
    • 流畅交互: 窗口大小调整时实时响应,无需手动刷新或重启
    • 空间优化: 合理分配界面空间,确保所有功能区域都有适当的显示空间
    • 滚动支持: 当视频列表内容较多时,提供平滑的滚动浏览体验

v4.2.0 (2025-01-17)

🔧 批处理系统重大修复与日志管理增强

  • 🐛 批处理系统核心修复

    • 修复 run.pyvideo_answer 函数调用 model.generate() 时参数名不匹配的关键问题
    • 解决 标准批处理模式下因 input_ids 参数传递错误导致的 NoneType 异常
    • 统一 参数传递规范:将错误的 input_ids 修正为正确的 inputs 参数
    • 确保 标准批处理模式与GPU优化模式的参数传递一致性和兼容性
    • 提升 批处理系统整体稳定性,消除因参数传递错误导致的处理失败
  • 📋 日志系统优化与管理增强

    • 移除 详细日志中冗余的 "[INFO] 未设置max_new_tokens限制,模型将自由生成" 提示信息
    • 简化 日志输出内容,减少不必要的默认配置提示,提升用户体验
    • 增强 日志文件管理功能:
      • 新增日志文件轮转机制,支持按大小和时间自动轮转
      • 实现智能日志清理,自动管理历史日志文件
      • 添加日志级别配置,支持DEBUG、INFO、WARNING、ERROR等多级别
      • 优化日志格式,提供更清晰的时间戳和模块信息
    • 实时记录 处理日志到文件,确保所有操作都有完整的日志记录
    • 改进 日志查看器组件,支持实时监控和日志搜索功能
  • 🛠️ 技术实现与代码质量提升

    • 核心修复src/algorithms/video_description/ShareGPT4Video/run.py 第372行参数传递修正
    • 日志优化:移除 run.py 第388行的冗余日志输出
    • 日志管理:升级 src/utils/logger.py,新增轮转文件处理器和时间轮转处理器
    • 配置管理:支持日志文件大小限制(默认10MB)和备份数量控制(默认5个)
    • 错误处理:增强日志系统的异常处理和恢复机制
  • 💡 稳定性与性能提升

    • 解决 标准批处理模式下的运行时错误,确保所有批处理模式都能正常工作
    • 提升 系统整体可靠性,减少因参数传递问题导致的处理中断
    • 优化 日志I/O性能,采用缓冲写入和异步处理机制
    • 增强 错误诊断能力,提供更详细的错误信息和解决建议
    • 改进 用户体验,减少不必要的日志干扰,专注于重要信息展示

v4.1.3 (2025-01-16)

🔧 GPU优化批处理修复与日志增强

  • 🐛 GPU优化批处理修复

    • 修复 GPU优化功能中批处理大小设置不生效的问题
    • 移除 强制覆盖用户设置的逻辑,现在用户设置的批处理大小会被正确使用
    • 改进 对于低显存GPU,改为显示警告建议而不是强制限制
    • 增强 批处理日志输出,明确显示用户设置和实际使用的批处理大小
    • 优化 GPU显存检测和建议机制
  • 📋 日志系统增强

    • 新增 更详细的批处理设置日志输出
    • 明确显示 "用户设置 - 批处理大小: X, 预处理线程数: Y"
    • 添加 "将按照 X 个视频为一组进行批量处理"的确认信息
    • 改进 GPU显存检测的警告和建议信息显示

v4.1.2 (2025-01-16)

🚀 全面性能优化与功能增强

  • ⚡ GPU优化性能全面提升

    • 智能加载系统优化:模型缓存完整时跳过网络检测,预加载速度提升 3-5 倍
    • 快速模式选项:在模型已缓存情况下显著减少预加载时间
    • 新增 --disable-smart-loading 命令行参数,允许用户禁用智能加载获得更快预加载速度
    • 优化 镜像管理器,支持快速模式和完整模式的智能切换
    • 智能缓存检测:优先检查模型缓存完整性,避免不必要的网络检测
    • 快速加载模式:缓存完整时跳过镜像初始化和网络连接测试
  • 📝 视频描述完整性保障

    • 修复 视频描述内容被提前截断的问题,确保生成的描述完整显示
    • 移除 核心模型中的 tokenizer_model_max_length 截断逻辑,避免序列被强制截断
    • 提升 生成token限制从4096增加到8192,支持超长详细描述生成
    • 扩展 序列处理能力从8192提升到16384,提供更强大的上下文处理
    • 优化 描述提取算法,返回完整描述内容而非部分截取
    • 统一配置标准:前后端token限制统一为8192,所有API调用保持一致
    • 增强过滤功能:动作描述过滤支持处理超长描述内容
    • 完整性保障:无论描述长度如何都能完整显示在详细描述中
  • 📋 日志系统全面优化

    • 日志过滤优化:添加对transformers库警告信息的过滤,包括"Special tokens have been added"等常见警告
    • 修复 "underlying buffer has been detached"日志缓冲区分离错误
    • 创建 安全的日志处理器类(SafeStreamHandler, SafeFileHandler)来处理IO错误
    • 优化 LoggingCapture类的错误处理机制
    • 设置 TRANSFORMERS_VERBOSITY环境变量来减少transformers库的详细输出
    • 现在详细日志中不再显示干扰性的警告和错误信息
  • 🔧 镜像管理优化

    • 修复 模型缓存完整时重复镜像初始化问题
    • 修复 网络检测在缓存完整时的冗余执行
    • 新增 初始化状态标记,避免重复初始化
    • 优化 缓存检测逻辑,提升启动速度
    • 改进 模型加载性能,减少等待时间
  • 🛠️ 技术实现细节

    • 修改 llava_arch.py 注释截断逻辑,移除序列长度限制
    • 调整 run.py 默认 max_new_tokens 参数从None改为8192
    • 优化 sharegpt4video_algorithm.py 描述提取方法,返回完整内容
    • 提升 video_description_widget.py API调用限制到8192 tokens
    • 扩展 builder.py 序列长度支持到16384,增强处理能力
    • 优化 日志系统相关文件:错误处理和警告过滤机制
    • 改进 镜像管理相关文件:智能加载和缓存检测优化
  • 💡 用户体验提升

    • 更新界面文字说明,明确描述长度为"建议"而非"要求"
    • 优化用户提示信息,避免对功能的误解
    • 提升用户体验,减少不必要的等待时间
    • 优化日志输出,提供更清晰的状态信息
    • 用户可选择:通过参数控制是否启用智能加载功能

v4.1.1 (2025-01-27)

🔧 镜像管理器性能优化 - 解决重复初始化问题

  • ⚡ 镜像管理器优化

    • 修复 模型缓存完整时仍进行重复镜像初始化和网络检测的问题
    • 新增 镜像管理器初始化状态标记,避免重复执行初始化流程
    • 优化 智能模型加载逻辑,在模型缓存完整时直接跳过镜像初始化
    • 改进 模型加载性能,显著减少不必要的网络请求和初始化时间
    • 提升 用户体验,消除模型缓存完整时的额外等待时间
  • 🛠️ 技术实现细节

    • 修改 MirrorManager 类,添加 _initialized 状态标记
    • 优化 initialize_smart_mirror 方法,增加初始化状态检查,每次运行无需重复初始化
    • 调整 load_model_with_smart_retry 函数,提前进行模型缓存完整性检查
    • 确保 单例模式下的镜像管理器不会重复初始化
    • 保持 向后兼容性,不影响现有功能

v4.1.0 (2025-01-16)

⚡ GPU优化批处理功能 - 大幅提升视频描述处理性能

  • 🚀 GPU优化批处理算法

    • 新增 GPU优化批处理模式,专为大批量视频处理设计
    • 实现 智能批量推理:多个视频同时加载到GPU内存,一次性进行推理计算,避免频繁的GPU内存分配和释放
    • 优化 并行预处理:支持多线程并行处理视频预处理任务(帧提取、尺寸调整等),充分利用CPU资源
    • 改进 内存管理:智能管理GPU显存使用,根据显存大小自动调整批处理大小,避免显存溢出
    • 提升 处理效率:相比传统逐个处理模式,批处理模式可将大批量视频处理速度提升2-5倍
  • 🎛️ GPU优化用户界面

    • 新增 GPU优化选项复选框,仅在CUDA模式下可用
    • 新增 批处理大小配置(默认2),用户可根据显存大小调整
    • 新增 预处理线程数配置(默认4),充分利用多核CPU性能
    • 智能 设备适配:自动检测设备类型,非CUDA模式下自动禁用GPU优化选项
    • 完善 API模式兼容:API模式下自动禁用GPU优化,避免冲突
  • ⚙️ 技术实现细节

    • 集成 命令行参数支持:--gpu-optimized--batch-size--max-workers
    • 优化 参数传递机制:从UI界面到处理线程的完整参数传递链路
    • 增强 状态管理:GPU优化选项的智能启用/禁用控制
    • 改进 错误处理:GPU内存不足时的优雅降级处理

v4.0.0 (2025-01-16)

🚀 重大版本更新 - 智能镜像管理与AI算法全面升级

  • 🌐 智能镜像管理系统重大升级

    • 全新设计的智能镜像管理器,支持自动网络检测和最佳镜像选择
    • 实现HuggingFace官方和HF-Mirror镜像的智能切换,根据网络延迟自动选择最优镜像
    • 新增缓存空间检查功能,确保有足够存储空间进行模型下载
    • 支持用户自定义镜像站点扩展,提供更灵活的镜像配置选项
    • 移除不可用的ModelScope镜像,优化镜像站点配置
  • 🤖 姿态估计算法全面升级

    • 新增 RTMPose实时2D姿态估计算法,支持多种模型规格(tiny/small/medium/large)
    • 新增 VitPose基于Vision Transformer的2D姿态估计,提供更高精度
    • 新增 OpenPose经典2D姿态估计算法,支持COCO和MPI数据集格式
    • 新增 RTMPose3D实时3D姿态估计,支持深度信息和时序处理
    • 新增 VideoPose3D基于Facebook Research的3D姿态估计算法
    • 新增 Video2Pose3D视频3D姿态估计,支持多种提升模型
    • 优化 姿态估计界面组件,提供直观的参数配置和结果可视化
    • 改进 关键点格式标准化,支持COCO-17和Human3.6M格式
    • 新增 置信度阈值控制,过滤低质量检测结果
    • 新增 时序窗口处理,提高3D姿态估计的时间一致性
    • 优化 批量处理性能,支持GPU加速和内存优化
  • 🎬 视频描述算法重大更新

    • 新增 ShareGPT4Video多模态视频描述算法,基于大语言模型
    • 新增 DescribeAnything基于NVlabs的视频到文本描述算法
    • 新增 Vid2Seq基于Google Research的视频序列描述算法
    • 新增 多种描述长度模式:简短、中等、详细、全面分析
    • 新增 智能帧采样策略:均匀采样、随机采样、关键帧检测
    • 新增 多语言支持:中文、英文、自动语言检测
    • 新增 时间段描述功能,支持视频分段分析
    • 新增 情感和动作识别,丰富描述内容维度
    • 优化 视频描述界面,提供丰富的参数配置选项
    • 新增 生成模式控制:确定性生成、随机采样、混合策略
    • 新增 自适应帧数选择,根据视频长度智能调整
    • 新增 多格式导出支持:JSON、TXT、CSV、Markdown
    • 改进 API配置管理,支持自定义API端点和参数
    • 新增 批量处理优化,支持多线程并行处理
  • ⚙️ 配置管理系统全面重构

    • 引入cache_config.txt统一配置文件,简化用户配置流程
    • 支持网络超时、下载超时、自动镜像切换等高级网络配置
    • 实现配置文件与GUI界面的实时同步机制
    • 新增扩展API配置支持,允许用户添加多个自定义视频描述API模型
    • 完善动作过滤API配置,支持用户自定义过滤服务
  • 🚀 视频处理流程优化

    • 集成镜像管理器到所有AI算法中,自动检查模型完整性
    • 实现模型缺失时的自动镜像初始化和下载流程
    • 优化处理日志显示,分离镜像初始化日志和模型处理日志
    • 增强错误处理机制,提供更详细的故障诊断信息
    • 支持CPU/GPU设备的智能检测和自动配置
    • 优化 内存管理,支持大视频文件处理
  • 🔧 网络连接与性能优化

    • 实现网络连接质量检测,自动测试各镜像站点的延迟和可用性
    • 支持网络超时重试机制,提高下载成功率
    • 优化模型下载流程,支持断点续传和完整性验证
    • 新增缓存清理功能,自动清理损坏的模型文件
    • 实现智能设备检测,根据硬件配置自动选择最佳处理模式
    • 新增 模型下载进度显示,实时监控下载状态
  • 📊 用户体验全面提升

    • 新增详细的镜像初始化状态显示,让用户了解系统配置过程
    • 实现配置文件的可视化编辑,降低配置门槛
    • 提供完整的镜像配置说明文档,指导用户进行高级配置
    • 优化错误提示信息,提供具体的解决方案建议
    • 支持多种缓存路径配置方式,适应不同用户需求
    • 重构 算法管理器,支持动态算法注册和切换
    • 新增 关于对话框,展示算法引用和致谢信息
    • 新增 快捷键支持,提高操作效率
  • 🛡️ 系统稳定性与兼容性改进

    • 增强异常处理机制,确保镜像切换失败时的系统稳定性
    • 实现备用配置方案,当智能镜像系统不可用时自动回退
    • 优化Windows系统下的UTF-8编码支持,解决中文显示问题
    • 完善日志记录系统,提供详细的调试信息
    • 增强跨平台兼容性,支持不同操作系统的路径处理
    • 优化 资源释放机制,确保系统资源正确回收
  • 🔄 架构设计优化

    • 重构镜像管理器为独立模块,提高代码可维护性
    • 实现单例模式的全局镜像管理器,避免重复初始化
    • 优化配置解析逻辑,支持更灵活的配置文件格式
    • 增强模块间的解耦设计,提高系统扩展性
    • 实现完整的测试覆盖,确保功能稳定性
    • 标准化 算法基类设计,统一接口规范

v3.1.0 (2025-01-16)

  • 🖥️ 设备选择功能

    • 新增计算设备选择配置,支持Auto(自动检测)、CUDA(强制GPU)、CPU(强制CPU)三种模式
    • 在配置界面的算法设置中添加"计算设备"下拉选择框
    • 实现Auto模式的智能设备检测:检测GPU可用性 → 检查显存大小 → 自动选择最适合的设备
    • 优化ShareGPT4Video批处理脚本,支持设备自动检测和配置
    • 替换硬编码的'cuda'设备设置,从配置管理器动态读取用户选择
  • 🧠 智能设备检测逻辑

    • 无GPU环境:自动切换到CPU模式,确保兼容性
    • 有GPU环境:根据显存大小智能选择处理模式
      • 显存>8GB:使用标准混合模式,充分利用GPU性能
      • 显存≤8GB:使用低显存混合模式,避免内存溢出
    • 手动模式:支持用户强制指定CUDA或CPU,满足特殊需求
  • ⚙️ 配置管理优化

    • 在config_manager.py中为video_description算法添加device配置项
    • 实现配置的加载、保存和界面同步机制
    • 提供详细的设备选择工具提示和使用说明
    • 确保配置变更能够正确传递到视频处理流程
  • 🔧 代码架构改进

    • 重构BatchVideoProcessor类,添加_resolve_device方法实现设备解析
    • 优化video_description_widget.py中的设备配置读取逻辑
    • 更新命令行参数支持,扩展--device参数的可选值
    • 提升代码的可维护性和扩展性
  • 🚀 用户体验提升

    • 简化设备配置流程,用户只需在界面中选择即可
    • Auto模式让新用户无需了解硬件细节即可获得最佳性能
    • 为高级用户提供精确的设备控制选项
    • 提供清晰的配置说明和推荐设置

v3.0.0 (2025-01-15)

  • 🚀 视频描述批量处理重大优化

    • 实现"N个视频 = 1次模型加载 + N次推理"的高效批量处理模式
    • 创建新的BatchVideoProcessor类,支持模型复用和资源管理
    • 显著减少模型加载时间,特别是在处理多个视频时效果明显
    • 优化内存使用,避免重复的模型初始化开销
  • 📦 新增批量处理脚本

    • 新建batch_run.py脚本,提供完整的命令行批量处理支持
    • 支持多种输入方式:视频列表、视频文件夹、配置文件
    • 提供JSON格式输出,便于程序间数据交换
    • 包含详细的处理统计信息:总时间、平均时间、成功率等
  • 🔧 GUI界面批量处理集成

    • 重构VideoDescriptionThread类,替换单视频处理为批量处理逻辑
    • 实现批量结果解析和状态更新机制
    • 保持原有的所有参数支持和用户体验
    • 添加批量处理进度监控和实时日志输出
  • ✅ 视频多选与智能批量处理

    • 复选框多选机制:为每个视频项添加复选框,支持自由选择要处理的视频
    • 便捷选择控制:提供"全选"和"取消全选"按钮,快速管理视频选择状态
    • 实时状态显示:显示"已选择: X / Y 个视频",让用户清楚了解当前选择情况
    • 智能处理逻辑:只处理选中的视频,未选中的视频自动跳过
    • 状态保持机制:在视频状态更新时自动保持复选框的选择状态
  • 📁 多文件夹批量上传功能

    • 统一文件夹上传:合并单个和多个文件夹上传功能为一个"上传文件夹"按钮
    • 累积式添加:支持多次选择文件夹,新视频会累积添加而不覆盖已有视频
    • 多格式支持:支持 mp4、avi、mov、mkv、wmv、flv、webm 等多种视频格式
    • 智能去重机制:自动避免重复添加相同的视频文件
    • 批量管理功能:添加"删除选中视频"功能,支持批量移除不需要的视频
  • 🎯 实时结果查看与交互

    • 即时状态更新:视频处理完成后立即更新列表状态(✅成功 / ❌失败)
    • 实时结果显示:当前选中视频处理完成时,右侧面板立即显示处理结果
    • 批量处理中查看:在批量处理过程中,用户可以点击已处理的视频查看详细结果
    • 智能界面布局:重新设计上传区域,按钮布局更加合理和直观
  • ⚡ 性能优化效果

    • 模型加载优化:从每个视频重新加载改为整个批次只加载一次
    • 处理时间优化:批量处理多个视频时显著减少总处理时间
    • 资源管理优化:实现proper的资源清理和内存管理
    • 设备配置优化:支持CUDA和CPU的自动检测和优化配置
  • 🛠️ 技术实现改进

    • 使用torch.inference_mode()优化推理性能
    • 实现完善的错误处理和异常恢复机制
    • 添加详细的日志记录和调试信息
    • 修复批量处理脚本中的logger初始化问题
  • 📊 批量处理统计功能

    • 提供详细的批量处理报告:总视频数、成功数、失败数
    • 计算总处理时间和平均每个视频处理时间
    • 支持处理结果的结构化输出和保存
    • 实现处理状态的实时监控和反馈
  • 🚀 用户体验全面提升

    • 灵活的工作流:支持从单个视频到大规模批量处理的各种使用场景
    • 直观的视觉反馈:清晰的状态指示和进度显示
    • 高效的操作流程:减少重复操作,提升处理效率
    • 智能化管理:自动化的状态管理和结果展示

v3.2.0 (2024-12-21)

  • 📁 视频描述导出功能重大改进

    • 单独导出机制:将原有的批量导出改为每个视频单独导出到各自所在目录
    • 智能文件命名:导出文件命名格式为"视频文件名称_description.格式后缀"
    • 多格式支持:支持JSON、TXT、CSV、Markdown四种格式的单独导出
    • 便携性增强:每个视频的描述文件都保存在视频同目录下,方便文件管理和迁移
  • 📊 导出内容全面增强

    • 视频时长:显示视频的实际播放时长
    • 处理时长:格式化显示处理耗时(秒/分钟/小时)
    • 视频相对路径:相对于视频所在目录的路径信息
    • 完整描述内容:AI生成的详细视频描述
    • 处理状态:成功/失败状态标识
    • 时间戳信息:处理完成的具体时间
    • 设备信息:处理时使用的设备类型(CPU/GPU)
    • 错误信息:处理失败时的详细错误描述
  • 🔄 自动读取已有描述文件

    • 智能识别:打开视频文件夹时自动检测并读取已存在的描述文件
    • 状态标记:已处理的视频在列表中显示"✅"标记
    • 跨设备兼容:支持在不同设备间访问已处理的视频描述
    • 避免重复处理:智能识别已处理视频,提升工作效率
  • ⚡ 自动保存功能优化

    • 目录自动定位:自动保存功能改为直接保存到各视频所在目录
    • 简化操作流程:移除目录选择步骤,一键完成保存
    • 详细统计反馈:提供保存成功和失败的详细统计信息
    • 批量处理支持:支持选中多个视频进行批量自动保存
  • 🛠️ 技术实现改进

    • 新增核心方法
      • _export_single_video_json() - JSON格式单视频导出
      • _export_single_video_txt() - TXT格式单视频导出
      • _export_single_video_csv() - CSV格式单视频导出
      • _export_single_video_md() - Markdown格式单视频导出
      • _format_processing_time() - 处理时间格式化
    • 代码重构:移除旧的批量导出逻辑,优化代码结构
    • 错误处理增强:完善异常处理机制,提供更好的用户反馈
  • 🎯 用户体验全面提升

    • 文件管理便利:描述文件与视频文件在同一目录,便于整体迁移和管理
    • 操作简化:减少用户选择目录的步骤,提升操作效率
    • 状态可视化:清晰的处理状态标识和详细的操作反馈
    • 兼容性保证:支持多种导出格式,满足不同使用场景需求

v2.2.0 (2024-12-20)

  • 🎨 界面布局优化

    • 重新设计视频描述界面布局,将常用功能选项移至视频播放区域下方
    • 在中间面板新增快捷功能区域,包含生成模式、参数设置和快捷选项
    • 增大开始描述和停止处理按钮尺寸,提升操作便利性
    • 添加功能说明文本和进度条显示,优化用户体验
    • 实现左侧面板和中间面板控件的双向同步机制
  • ⏱️ 处理耗时计算与显示

    • 新增视频处理总耗时统计功能,精确记录每个视频的完整处理时间
    • 在处理结果中显示详细的时间信息,包括开始时间、结束时间和总耗时
    • 优化处理流程的时间记录,提供更准确的性能分析数据
    • 支持批量处理时的总体耗时统计和平均处理时间计算
  • 🎛️ 高级参数控制

    • 在视频描述界面新增"高级参数"设置组
    • 添加"最大生成长度"(max_new_tokens)控制:范围0-2048,默认200,0表示无限制
    • 添加"采样帧数"(num_frames)控制:范围0-64,默认16,0表示自动选择
    • 提供详细的工具提示说明和推荐值指导
  • 🤖 智能帧数自动选择

    • 实现基于视频时长的智能帧数选择算法
    • 短视频(≤10秒):自动选择16帧,快速处理
    • 中等视频(10-30秒):自动选择20帧,平衡质量与效率
    • 较长视频(30-60秒):自动选择25帧,确保信息捕获
    • 长视频(>60秒):自动选择32帧,最大化信息提取
    • 添加错误处理机制,获取时长失败时使用默认值
  • 🎯 生成模式增强

    • 新增"混合策略"生成模式,提供第三种生成选项
    • 混合策略参数配置:do_sample=True, top_p=0.7, temperature=0.8, num_beams=2
    • 完善生成模式映射逻辑,支持确定性、随机采样和混合三种策略
    • 优化生成参数组合,平衡输出质量和多样性
  • 🔧 参数传递机制完善

    • 修改VideoDescriptionThread类,支持max_new_tokens和num_frames参数
    • 更新_process_single_video方法,正确传递高级参数到ShareGPT4Video算法
    • 修改ShareGPT4Video的run.py文件,添加--num_frames命令行参数支持
    • 实现参数验证和默认值处理机制
  • 📝 详细日志记录

    • 添加参数设置的详细日志记录和状态提示
    • 当设置为0时显示相应的"无限制"或"自动选择"提示
    • 记录自动帧数选择的具体数值和选择原因
    • 提供处理过程的完整参数信息追踪
  • ⚠️ 安全性考虑

    • 文档化max_new_tokens无限制设置的潜在风险:内存消耗、处理时间、质量下降、系统稳定性、成本问题
    • 说明num_frames自动选择的考虑因素:计算负载、处理时间、内存占用、质量平衡
    • 提供最佳实践建议和资源监控指导
    • 建议测试验证流程,确保生产环境稳定性
  • 🚀 用户体验优化

    • 简化参数设置,降低使用门槛
    • 智能化处理,减少手动调整需求
    • 提供清晰的参数说明和推荐值
    • 支持批量处理不同长度视频的自动优化

v2.1.0 (2024-12-19)

  • 🐛 语法错误修复

    • 修复抖音爬虫(douyin_crawler.py)中第295行的缩进错误
    • 修复YouTube爬虫(youtube_crawler.py)中第162行的缩进错误
    • 解决JSON解析循环中try语句缩进不正确的问题
  • 🎬 视频播放功能修复

    • 修复视频描述模块中的视频播放问题
    • 优化视频播放器的兼容性和稳定性
    • 改进视频文件加载和播放控制机制
  • 🛡️ 视频处理错误处理增强

    • 新增validate_video_file()函数,提供全面的视频文件验证
    • 增强视频文件格式支持:mp4, avi, mov, mkv, flv, wmv, m4v, webm, mpg, mpeg
    • 改进_load_video()方法,添加多重验证和FFMPEG后端支持
    • 优化_show_frame()方法的错误处理和资源管理
    • 增强get_video_info()方法,添加文件完整性检查和帧数据验证
  • 🎯 用户体验优化

    • 文件选择时实时验证视频文件有效性
    • 批量添加视频时提供详细的错误汇总
    • 改进错误信息显示,提供更清晰的问题诊断
    • 添加完整的日志记录和用户友好的错误提示
  • 🔧 ShareGPT4Video集成

    • 集成ShareGPT4Video视频描述算法
    • 支持自定义描述要求和模型参数
    • 实现处理日志和结果的分离显示
    • 添加视频描述处理的完整工作流
  • 🚀 ShareGPT4Video算法重大优化

    • 消除重复输出: 修复视频描述结果多次输出的问题,通过添加silent_mode参数和智能输出过滤
    • 改进日志管理: 重构日志系统,支持可配置的日志级别(DEBUG/INFO/WARNING/ERROR)、静默模式和可选文件日志
    • 增强错误处理: 新增ResultFormatter类,提供统一的JSON和纯文本输出格式,完善异常处理机制
    • 优化输出格式: 支持结构化JSON输出,包含状态、描述、时间戳和元数据信息
    • 命令行界面改进: 使用argparse重构参数解析,支持--video--output-format--log-level等参数
    • 超时控制: 增加10分钟处理超时机制,提升系统稳定性
    • 备用解析: 实现JSON解析失败时的自动回退机制,确保兼容性
    • 标准错误内容优化: 过滤模型加载警告、CUDA/GPU警告等系统信息,专注于核心处理结果
  • ✅ 代码质量提升

    • 通过Python AST语法检查器验证所有修复
    • 确保爬虫模块可以正常导入和使用
    • 改进代码结构和可读性
    • 添加测试脚本验证改进功能
    • ShareGPT4Video算法代码重构,提升可维护性和扩展性
  • 🔧 技术改进

    • 优化爬虫模块的错误处理机制
    • 提升JSON数据解析的稳定性
    • 增强代码的健壮性和维护性
    • 显著减少"媒体资源错误"的发生率
    • ShareGPT4Video处理流程优化,减少冗余输出和提升处理效率

v2.0.0 (2024-12-10)

  • 🎯 新增视频描述功能

    • 集成ShareGPT4Video模型,支持高质量视频内容描述
    • 添加专用的"📝 视频描述"界面选项卡
    • 支持单个和批量视频描述处理
    • 实现三栏布局:上传/功能选择(左)、视频播放(中)、处理日志/结果(右)
  • 🤖 AI动作描述过滤

    • 新增动作描述提取功能,通过API调用去除环境和衣着描述
    • 支持自定义API端点、密钥和模型配置
    • 智能过滤,只保留动作相关的描述内容
  • ⚙️ 配置管理增强

    • 新增视频描述模型缓存路径配置
    • 添加ShareGPT4Video模型路径设置
    • 创建cache_config.txt文件,与界面配置实时同步
    • 支持API配置管理(端点、密钥、模型)
  • 📊 批量处理与导出

    • 支持多格式导出:JSON、TXT、Markdown、Excel
    • 详细的处理记录:播放时间、执行时间、成功状态、描述内容、错误信息
    • 结果备份和导出功能
    • 可选择保存到视频目录或程序目录
  • 🖥️ 界面优化

    • 添加处理状态显示,包括成功/失败标识
    • 支持.mp4视频格式验证和上传
    • 可配置描述要求,支持默认模板(淡灰色提示)
    • 实时进度监控和详细日志显示
  • 🔧 技术改进

    • 支持CPU/CUDA自动检测,优化处理性能
    • 集成PyTorch和Transformers环境检测
    • 添加完整的测试脚本和示例视频
    • 改进错误处理和用户反馈机制

v1.0.0 (2024-01-01)

  • 初始版本发布
  • 基础爬虫功能
  • 视频处理功能
  • AI算法集成
  • GUI界面
  • 插件系统

注意: 请遵守相关法律法规,仅用于学习和研究目的。使用本工具下载的内容应符合版权法和网站服务条款。

运行程序的代码: 生成fbx文件: 第一步:conda activate base 第二步:python src/algorithms/pose3d/main/run_demo.py --vid_file data/sample_video.mp4 --save_pkl --save_fbx --skeleton_only python src/algorithms/pose3d/main/run_demo.py --vid_file "data/sample_video.mp4" --save_pkl --no_render --gpu 0 python src/algorithms/pose3d/main/run_demo.py --vid_file "data/【20分钟 BASI普拉提 全身训练|增强灵活性与力量 垫上普拉提跟练】Mira普拉提 初学者课程.f30016_split_171_281.mp4" --save_pkl --no_render --gpu 0 第三步:fbx_env_py37\Scripts\python.exe fbx_test_files\improved_pkl_to_fbx_converter.py

2D和3D对齐: python src\algorithms\pose3d\test_pose_2d_3d\run_flexible_alignment.py -v data/sample_video.mp4 -p output/sample_video/pmce_output.pkl

Contributors

owenkings

39 commits

shijieS

8 commits

wellbeingss

7 commits

owenkings/text2dance

text2dance制作数据集程序

0

stars

54

commits

Python

primary language

Nov 10, 2025

updated

README

视频处理爬虫工具

一个集成了网络爬虫和视频处理功能的综合性工具,支持视频下载、处理、分析和AI算法应用。

功能特性

🕷️ 网络爬虫

  • 支持多种视频网站的视频爬取和下载
  • 智能解析视频链接和元数据
  • 批量下载和断点续传
  • 代理支持和反爬虫机制
  • 自定义下载参数和格式选择

🎬 视频处理

  • 视频格式转换和编码
  • 视频剪辑、合并和分割
  • 帧提取和视频预览
  • 批量处理和自动化工作流
  • GPU加速支持

🤖 AI算法集成

  • 2D姿态估计: OpenPose, MediaPipe, PoseNet等
  • 3D姿态估计: VideoPose3D, 3D-PoseNet等
  • 视频描述生成: Vid2Seq, Video-ChatGPT等
  • 自定义算法插件支持

🔧 系统特性

  • 现代化的PyQt5图形界面
  • 插件系统和扩展支持
  • 任务管理和进度监控
  • 配置管理和设置保存
  • 多语言支持
  • 日志记录和错误处理

系统要求

最低要求

  • 操作系统: Windows 10/11, macOS 10.14+, Ubuntu 18.04+
  • Python: 3.7 或更高版本
  • 内存: 4GB RAM (推荐 8GB+)
  • 存储: 2GB 可用空间
  • 网络: 稳定的互联网连接

推荐配置

  • CPU: Intel i5 或 AMD Ryzen 5 以上
  • GPU: NVIDIA GTX 1060 或更高 (用于GPU加速)
  • 内存: 16GB RAM
  • 存储: SSD 硬盘

快速开始

方法一:一键启动(推荐)

Windows用户

  • 双击 启动程序.bat 文件
  • 选择操作:启动程序、安装依赖或检查依赖状态
  • 程序会自动处理依赖问题

所有平台

# 智能启动(自动检查依赖)
python start.py

# 或专门安装依赖
python install_dependencies.py

方法二:手动安装

  1. 安装所有依赖:
pip install -r requirements.txt
  1. 如果遇到特定问题:
# NumPy兼容性问题
python fix_numpy.py

# MoviePy缺失问题
pip install moviepy==1.0.3

# 完整依赖修复
python install_dependencies.py
  1. 运行程序:
python main.py

常见问题解决

  • No module named 'moviepy.editor':运行 pip install moviepy==1.0.3
  • _ARRAY_API not found:运行 pip install "numpy<2.0" --force-reinstall
  • 其他依赖问题:运行 python install_dependencies.py

安装指南

1. 克隆项目

git clone https://github.com/your-username/video-crawler-tool.git
cd video-crawler-tool

2. 创建虚拟环境

# 使用 venv
python -m venv venv

# Windows
venv\Scripts\activate

# macOS/Linux
source venv/bin/activate

3. 安装依赖

# 安装基础依赖
pip install -r requirements.txt

# 如果需要GPU支持 (NVIDIA)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

4. 下载模型文件

重要: 3D姿态估计功能需要手动下载以下模型文件到指定目录:

models文件

base_data文件

pose_detector文件

pretrained文件

weights文件

注意: 请确保将下载的文件放置在正确的目录中,否则3D姿态估计功能将无法正常工作。

5. 配置环境

# 复制配置文件模板
cp config/config.example.yaml config/config.yaml

# 编辑配置文件
nano config/config.yaml

6. 运行程序

# GUI模式
python main.py

# 命令行模式
python main.py --no-gui

# 查看帮助
python main.py --help

使用指南

GUI模式

  1. 启动应用程序

    python main.py
    
  2. 爬虫功能

    • 在"爬虫"选项卡中输入视频URL
    • 选择下载目录和质量
    • 点击"开始下载"按钮
  3. 视频处理

    • 在"视频处理"选项卡中选择视频文件
    • 配置处理参数
    • 选择输出格式和目录
    • 开始处理
  4. AI分析

    • 选择要分析的视频
    • 选择算法类型(2D姿态、3D姿态、视频描述)
    • 配置算法参数
    • 开始分析

命令行模式

# 爬取视频
python main.py --no-gui --crawl "https://example.com/video" --output ./downloads

# 处理视频
python main.py --no-gui --process "video.mp4" --algorithm pose_2d --output ./results

# 批量处理
python main.py --no-gui --process "*.mp4" --algorithm video_description

配置说明

主配置文件 (config/config.yaml)

# 应用程序设置
app:
  name: "视频处理爬虫工具"
  version: "4.1.2"
  language: "zh_CN"
  theme: "dark"
  log_level: "INFO"

# 爬虫设置
crawler:
  download_path: "./downloads"
  max_concurrent: 3
  retry_count: 3
  timeout: 30
  user_agent: "Mozilla/5.0..."
  proxy: ""

# 视频处理设置
video_processing:
  temp_path: "./temp"
  output_path: "./output"
  ffmpeg_path: ""
  gpu_acceleration: false
  max_threads: 4

# AI算法设置
algorithms:
  pose_2d:
    default_algorithm: "openpose"
    models_path: "./models/pose_2d"
    confidence_threshold: 0.5
  
  pose_3d:
    default_algorithm: "videopose3d"
    models_path: "./models/pose_3d"
    confidence_threshold: 0.5
  
  video_description:
    default_algorithm: "vid2seq"
    models_path: "./models/description"
    max_length: 100

# 插件设置
plugins:
  plugins_path: "./plugins"
  auto_load: true
  enabled_plugins: []

插件开发

创建自定义插件

  1. 创建插件目录

    plugins/
    └── my_plugin/
        ├── __init__.py
        ├── plugin.py
        └── config.yaml
    
  2. 实现插件接口

    # plugins/my_plugin/plugin.py
    from src.core.plugin_base import PluginBase
    
    class MyPlugin(PluginBase):
        def __init__(self):
            super().__init__()
            self.name = "My Plugin"
            self.version = "4.2.1"
        
        def initialize(self):
            # 插件初始化逻辑
            pass
        
        def process_video(self, video_path):
            # 视频处理逻辑
            pass
    
  3. 注册插件

    # plugins/my_plugin/__init__.py
    from .plugin import MyPlugin
    
    def get_plugin():
        return MyPlugin()
    

API文档

核心模块

  • src.crawler: 爬虫相关功能
  • src.video: 视频处理功能
  • src.algorithms: AI算法集成
  • src.gui: 图形界面组件
  • src.core: 核心系统组件
  • src.utils: 工具和辅助函数

主要类

# 爬虫管理器
from src.crawler import CrawlerManager
crawler = CrawlerManager()
result = crawler.download_video(url, output_dir)

# 视频处理器
from src.video import VideoProcessor
processor = VideoProcessor()
processor.convert_format(input_file, output_file, format="mp4")

# 算法管理器
from src.algorithms import AlgorithmManager
algorithm_mgr = AlgorithmManager()
result = algorithm_mgr.run_pose_estimation(video_path, algorithm="openpose")

故障排除

常见问题

  1. 导入错误

    ImportError: No module named 'PyQt5'
    

    解决方案: 确保已安装所有依赖包

    pip install -r requirements.txt
    
  2. FFmpeg未找到

    FileNotFoundError: ffmpeg not found
    

    解决方案: 安装FFmpeg并添加到PATH,或在配置文件中指定路径

  3. GPU加速失败

    CUDA out of memory
    

    解决方案: 减少批处理大小或使用CPU模式

  4. 网络连接问题

    ConnectionError: Failed to download
    

    解决方案: 检查网络连接,配置代理或重试

日志文件

日志文件位置: logs/app.log

查看详细错误信息:

tail -f logs/app.log

贡献指南

开发环境设置

  1. Fork项目

  2. 创建开发分支

    git checkout -b feature/new-feature
    
  3. 安装开发依赖

    pip install -r requirements.txt
    pip install pytest black flake8 mypy
    
  4. 运行测试

    pytest tests/
    
  5. 代码格式化

    black src/
    flake8 src/
    mypy src/
    

提交规范

  • 使用清晰的提交信息
  • 遵循代码风格指南
  • 添加必要的测试
  • 更新文档

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

致谢

联系方式

更新日志

v4.2.1 (2025-01-24)

🎨 界面布局优化与响应式设计增强

  • 📱 视频列表动态高度调整

    • 新增 视频列表框高度动态调整功能,根据窗口高度自动适应
    • 实现 固定视频列表框与视频上传组下边框的相对距离,确保布局一致性
    • 优化 视频列表最小高度从240px调整为120px,提供更灵活的空间利用
    • 改进 视频列表尺寸策略从Expanding, Expanding修改为Expanding, Preferred
    • 添加 _adjust_video_list_height()方法,智能计算可用空间并设置动态高度约束
    • 集成 窗口大小变化监听,实时响应用户调整窗口大小的操作
  • 🖥️ 响应式布局系统完善

    • 增强 窗口大小变化处理机制,在_on_window_resized()中集成视频列表高度调整
    • 实现 初始化时延迟调用高度调整功能,确保界面加载完成后正确设置
    • 优化 布局计算逻辑,考虑上传组、间距、描述区域等所有界面元素的空间占用
    • 保护 最小高度限制,防止界面元素过度压缩影响用户体验
    • 支持 滚动功能,当内容超出可视区域时提供流畅的滚动体验
  • ⚙️ 上传组布局优化

    • 设置 上传组最大高度为600px,防止过度扩展影响整体布局
    • 修改 上传组对齐方式从AlignCenter改为AlignTop,优化视觉效果
    • 保存 上传组引用(self.upload_group),支持动态高度计算和约束设置
    • 确保 上传组与视频列表的协调布局,维持界面整体美观性
  • 🔧 技术实现与代码质量

    • 核心文件: src/gui/video_description_widget.py中的布局优化实现
    • 方法增强: 新增_adjust_video_list_height()方法,提供完整的动态高度调整逻辑
    • 事件集成: 在_on_window_resized()和初始化流程中集成高度调整功能
    • 参数优化: 精确计算预留高度(280px),包含描述区域、功能选项、间距等
    • 兼容性: 确保与现有响应式布局系统的完美集成
  • 💡 用户体验提升

    • 智能适应: 视频列表高度根据窗口大小智能调整,最大化可用空间利用
    • 视觉一致: 保持界面元素间的固定相对距离,提供稳定的视觉体验
    • 流畅交互: 窗口大小调整时实时响应,无需手动刷新或重启
    • 空间优化: 合理分配界面空间,确保所有功能区域都有适当的显示空间
    • 滚动支持: 当视频列表内容较多时,提供平滑的滚动浏览体验

v4.2.0 (2025-01-17)

🔧 批处理系统重大修复与日志管理增强

  • 🐛 批处理系统核心修复

    • 修复 run.pyvideo_answer 函数调用 model.generate() 时参数名不匹配的关键问题
    • 解决 标准批处理模式下因 input_ids 参数传递错误导致的 NoneType 异常
    • 统一 参数传递规范:将错误的 input_ids 修正为正确的 inputs 参数
    • 确保 标准批处理模式与GPU优化模式的参数传递一致性和兼容性
    • 提升 批处理系统整体稳定性,消除因参数传递错误导致的处理失败
  • 📋 日志系统优化与管理增强

    • 移除 详细日志中冗余的 "[INFO] 未设置max_new_tokens限制,模型将自由生成" 提示信息
    • 简化 日志输出内容,减少不必要的默认配置提示,提升用户体验
    • 增强 日志文件管理功能:
      • 新增日志文件轮转机制,支持按大小和时间自动轮转
      • 实现智能日志清理,自动管理历史日志文件
      • 添加日志级别配置,支持DEBUG、INFO、WARNING、ERROR等多级别
      • 优化日志格式,提供更清晰的时间戳和模块信息
    • 实时记录 处理日志到文件,确保所有操作都有完整的日志记录
    • 改进 日志查看器组件,支持实时监控和日志搜索功能
  • 🛠️ 技术实现与代码质量提升

    • 核心修复src/algorithms/video_description/ShareGPT4Video/run.py 第372行参数传递修正
    • 日志优化:移除 run.py 第388行的冗余日志输出
    • 日志管理:升级 src/utils/logger.py,新增轮转文件处理器和时间轮转处理器
    • 配置管理:支持日志文件大小限制(默认10MB)和备份数量控制(默认5个)
    • 错误处理:增强日志系统的异常处理和恢复机制
  • 💡 稳定性与性能提升

    • 解决 标准批处理模式下的运行时错误,确保所有批处理模式都能正常工作
    • 提升 系统整体可靠性,减少因参数传递问题导致的处理中断
    • 优化 日志I/O性能,采用缓冲写入和异步处理机制
    • 增强 错误诊断能力,提供更详细的错误信息和解决建议
    • 改进 用户体验,减少不必要的日志干扰,专注于重要信息展示

v4.1.3 (2025-01-16)

🔧 GPU优化批处理修复与日志增强

  • 🐛 GPU优化批处理修复

    • 修复 GPU优化功能中批处理大小设置不生效的问题
    • 移除 强制覆盖用户设置的逻辑,现在用户设置的批处理大小会被正确使用
    • 改进 对于低显存GPU,改为显示警告建议而不是强制限制
    • 增强 批处理日志输出,明确显示用户设置和实际使用的批处理大小
    • 优化 GPU显存检测和建议机制
  • 📋 日志系统增强

    • 新增 更详细的批处理设置日志输出
    • 明确显示 "用户设置 - 批处理大小: X, 预处理线程数: Y"
    • 添加 "将按照 X 个视频为一组进行批量处理"的确认信息
    • 改进 GPU显存检测的警告和建议信息显示

v4.1.2 (2025-01-16)

🚀 全面性能优化与功能增强

  • ⚡ GPU优化性能全面提升

    • 智能加载系统优化:模型缓存完整时跳过网络检测,预加载速度提升 3-5 倍
    • 快速模式选项:在模型已缓存情况下显著减少预加载时间
    • 新增 --disable-smart-loading 命令行参数,允许用户禁用智能加载获得更快预加载速度
    • 优化 镜像管理器,支持快速模式和完整模式的智能切换
    • 智能缓存检测:优先检查模型缓存完整性,避免不必要的网络检测
    • 快速加载模式:缓存完整时跳过镜像初始化和网络连接测试
  • 📝 视频描述完整性保障

    • 修复 视频描述内容被提前截断的问题,确保生成的描述完整显示
    • 移除 核心模型中的 tokenizer_model_max_length 截断逻辑,避免序列被强制截断
    • 提升 生成token限制从4096增加到8192,支持超长详细描述生成
    • 扩展 序列处理能力从8192提升到16384,提供更强大的上下文处理
    • 优化 描述提取算法,返回完整描述内容而非部分截取
    • 统一配置标准:前后端token限制统一为8192,所有API调用保持一致
    • 增强过滤功能:动作描述过滤支持处理超长描述内容
    • 完整性保障:无论描述长度如何都能完整显示在详细描述中
  • 📋 日志系统全面优化

    • 日志过滤优化:添加对transformers库警告信息的过滤,包括"Special tokens have been added"等常见警告
    • 修复 "underlying buffer has been detached"日志缓冲区分离错误
    • 创建 安全的日志处理器类(SafeStreamHandler, SafeFileHandler)来处理IO错误
    • 优化 LoggingCapture类的错误处理机制
    • 设置 TRANSFORMERS_VERBOSITY环境变量来减少transformers库的详细输出
    • 现在详细日志中不再显示干扰性的警告和错误信息
  • 🔧 镜像管理优化

    • 修复 模型缓存完整时重复镜像初始化问题
    • 修复 网络检测在缓存完整时的冗余执行
    • 新增 初始化状态标记,避免重复初始化
    • 优化 缓存检测逻辑,提升启动速度
    • 改进 模型加载性能,减少等待时间
  • 🛠️ 技术实现细节

    • 修改 llava_arch.py 注释截断逻辑,移除序列长度限制
    • 调整 run.py 默认 max_new_tokens 参数从None改为8192
    • 优化 sharegpt4video_algorithm.py 描述提取方法,返回完整内容
    • 提升 video_description_widget.py API调用限制到8192 tokens
    • 扩展 builder.py 序列长度支持到16384,增强处理能力
    • 优化 日志系统相关文件:错误处理和警告过滤机制
    • 改进 镜像管理相关文件:智能加载和缓存检测优化
  • 💡 用户体验提升

    • 更新界面文字说明,明确描述长度为"建议"而非"要求"
    • 优化用户提示信息,避免对功能的误解
    • 提升用户体验,减少不必要的等待时间
    • 优化日志输出,提供更清晰的状态信息
    • 用户可选择:通过参数控制是否启用智能加载功能

v4.1.1 (2025-01-27)

🔧 镜像管理器性能优化 - 解决重复初始化问题

  • ⚡ 镜像管理器优化

    • 修复 模型缓存完整时仍进行重复镜像初始化和网络检测的问题
    • 新增 镜像管理器初始化状态标记,避免重复执行初始化流程
    • 优化 智能模型加载逻辑,在模型缓存完整时直接跳过镜像初始化
    • 改进 模型加载性能,显著减少不必要的网络请求和初始化时间
    • 提升 用户体验,消除模型缓存完整时的额外等待时间
  • 🛠️ 技术实现细节

    • 修改 MirrorManager 类,添加 _initialized 状态标记
    • 优化 initialize_smart_mirror 方法,增加初始化状态检查,每次运行无需重复初始化
    • 调整 load_model_with_smart_retry 函数,提前进行模型缓存完整性检查
    • 确保 单例模式下的镜像管理器不会重复初始化
    • 保持 向后兼容性,不影响现有功能

v4.1.0 (2025-01-16)

⚡ GPU优化批处理功能 - 大幅提升视频描述处理性能

  • 🚀 GPU优化批处理算法

    • 新增 GPU优化批处理模式,专为大批量视频处理设计
    • 实现 智能批量推理:多个视频同时加载到GPU内存,一次性进行推理计算,避免频繁的GPU内存分配和释放
    • 优化 并行预处理:支持多线程并行处理视频预处理任务(帧提取、尺寸调整等),充分利用CPU资源
    • 改进 内存管理:智能管理GPU显存使用,根据显存大小自动调整批处理大小,避免显存溢出
    • 提升 处理效率:相比传统逐个处理模式,批处理模式可将大批量视频处理速度提升2-5倍
  • 🎛️ GPU优化用户界面

    • 新增 GPU优化选项复选框,仅在CUDA模式下可用
    • 新增 批处理大小配置(默认2),用户可根据显存大小调整
    • 新增 预处理线程数配置(默认4),充分利用多核CPU性能
    • 智能 设备适配:自动检测设备类型,非CUDA模式下自动禁用GPU优化选项
    • 完善 API模式兼容:API模式下自动禁用GPU优化,避免冲突
  • ⚙️ 技术实现细节

    • 集成 命令行参数支持:--gpu-optimized--batch-size--max-workers
    • 优化 参数传递机制:从UI界面到处理线程的完整参数传递链路
    • 增强 状态管理:GPU优化选项的智能启用/禁用控制
    • 改进 错误处理:GPU内存不足时的优雅降级处理

v4.0.0 (2025-01-16)

🚀 重大版本更新 - 智能镜像管理与AI算法全面升级

  • 🌐 智能镜像管理系统重大升级

    • 全新设计的智能镜像管理器,支持自动网络检测和最佳镜像选择
    • 实现HuggingFace官方和HF-Mirror镜像的智能切换,根据网络延迟自动选择最优镜像
    • 新增缓存空间检查功能,确保有足够存储空间进行模型下载
    • 支持用户自定义镜像站点扩展,提供更灵活的镜像配置选项
    • 移除不可用的ModelScope镜像,优化镜像站点配置
  • 🤖 姿态估计算法全面升级

    • 新增 RTMPose实时2D姿态估计算法,支持多种模型规格(tiny/small/medium/large)
    • 新增 VitPose基于Vision Transformer的2D姿态估计,提供更高精度
    • 新增 OpenPose经典2D姿态估计算法,支持COCO和MPI数据集格式
    • 新增 RTMPose3D实时3D姿态估计,支持深度信息和时序处理
    • 新增 VideoPose3D基于Facebook Research的3D姿态估计算法
    • 新增 Video2Pose3D视频3D姿态估计,支持多种提升模型
    • 优化 姿态估计界面组件,提供直观的参数配置和结果可视化
    • 改进 关键点格式标准化,支持COCO-17和Human3.6M格式
    • 新增 置信度阈值控制,过滤低质量检测结果
    • 新增 时序窗口处理,提高3D姿态估计的时间一致性
    • 优化 批量处理性能,支持GPU加速和内存优化
  • 🎬 视频描述算法重大更新

    • 新增 ShareGPT4Video多模态视频描述算法,基于大语言模型
    • 新增 DescribeAnything基于NVlabs的视频到文本描述算法
    • 新增 Vid2Seq基于Google Research的视频序列描述算法
    • 新增 多种描述长度模式:简短、中等、详细、全面分析
    • 新增 智能帧采样策略:均匀采样、随机采样、关键帧检测
    • 新增 多语言支持:中文、英文、自动语言检测
    • 新增 时间段描述功能,支持视频分段分析
    • 新增 情感和动作识别,丰富描述内容维度
    • 优化 视频描述界面,提供丰富的参数配置选项
    • 新增 生成模式控制:确定性生成、随机采样、混合策略
    • 新增 自适应帧数选择,根据视频长度智能调整
    • 新增 多格式导出支持:JSON、TXT、CSV、Markdown
    • 改进 API配置管理,支持自定义API端点和参数
    • 新增 批量处理优化,支持多线程并行处理
  • ⚙️ 配置管理系统全面重构

    • 引入cache_config.txt统一配置文件,简化用户配置流程
    • 支持网络超时、下载超时、自动镜像切换等高级网络配置
    • 实现配置文件与GUI界面的实时同步机制
    • 新增扩展API配置支持,允许用户添加多个自定义视频描述API模型
    • 完善动作过滤API配置,支持用户自定义过滤服务
  • 🚀 视频处理流程优化

    • 集成镜像管理器到所有AI算法中,自动检查模型完整性
    • 实现模型缺失时的自动镜像初始化和下载流程
    • 优化处理日志显示,分离镜像初始化日志和模型处理日志
    • 增强错误处理机制,提供更详细的故障诊断信息
    • 支持CPU/GPU设备的智能检测和自动配置
    • 优化 内存管理,支持大视频文件处理
  • 🔧 网络连接与性能优化

    • 实现网络连接质量检测,自动测试各镜像站点的延迟和可用性
    • 支持网络超时重试机制,提高下载成功率
    • 优化模型下载流程,支持断点续传和完整性验证
    • 新增缓存清理功能,自动清理损坏的模型文件
    • 实现智能设备检测,根据硬件配置自动选择最佳处理模式
    • 新增 模型下载进度显示,实时监控下载状态
  • 📊 用户体验全面提升

    • 新增详细的镜像初始化状态显示,让用户了解系统配置过程
    • 实现配置文件的可视化编辑,降低配置门槛
    • 提供完整的镜像配置说明文档,指导用户进行高级配置
    • 优化错误提示信息,提供具体的解决方案建议
    • 支持多种缓存路径配置方式,适应不同用户需求
    • 重构 算法管理器,支持动态算法注册和切换
    • 新增 关于对话框,展示算法引用和致谢信息
    • 新增 快捷键支持,提高操作效率
  • 🛡️ 系统稳定性与兼容性改进

    • 增强异常处理机制,确保镜像切换失败时的系统稳定性
    • 实现备用配置方案,当智能镜像系统不可用时自动回退
    • 优化Windows系统下的UTF-8编码支持,解决中文显示问题
    • 完善日志记录系统,提供详细的调试信息
    • 增强跨平台兼容性,支持不同操作系统的路径处理
    • 优化 资源释放机制,确保系统资源正确回收
  • 🔄 架构设计优化

    • 重构镜像管理器为独立模块,提高代码可维护性
    • 实现单例模式的全局镜像管理器,避免重复初始化
    • 优化配置解析逻辑,支持更灵活的配置文件格式
    • 增强模块间的解耦设计,提高系统扩展性
    • 实现完整的测试覆盖,确保功能稳定性
    • 标准化 算法基类设计,统一接口规范

v3.1.0 (2025-01-16)

  • 🖥️ 设备选择功能

    • 新增计算设备选择配置,支持Auto(自动检测)、CUDA(强制GPU)、CPU(强制CPU)三种模式
    • 在配置界面的算法设置中添加"计算设备"下拉选择框
    • 实现Auto模式的智能设备检测:检测GPU可用性 → 检查显存大小 → 自动选择最适合的设备
    • 优化ShareGPT4Video批处理脚本,支持设备自动检测和配置
    • 替换硬编码的'cuda'设备设置,从配置管理器动态读取用户选择
  • 🧠 智能设备检测逻辑

    • 无GPU环境:自动切换到CPU模式,确保兼容性
    • 有GPU环境:根据显存大小智能选择处理模式
      • 显存>8GB:使用标准混合模式,充分利用GPU性能
      • 显存≤8GB:使用低显存混合模式,避免内存溢出
    • 手动模式:支持用户强制指定CUDA或CPU,满足特殊需求
  • ⚙️ 配置管理优化

    • 在config_manager.py中为video_description算法添加device配置项
    • 实现配置的加载、保存和界面同步机制
    • 提供详细的设备选择工具提示和使用说明
    • 确保配置变更能够正确传递到视频处理流程
  • 🔧 代码架构改进

    • 重构BatchVideoProcessor类,添加_resolve_device方法实现设备解析
    • 优化video_description_widget.py中的设备配置读取逻辑
    • 更新命令行参数支持,扩展--device参数的可选值
    • 提升代码的可维护性和扩展性
  • 🚀 用户体验提升

    • 简化设备配置流程,用户只需在界面中选择即可
    • Auto模式让新用户无需了解硬件细节即可获得最佳性能
    • 为高级用户提供精确的设备控制选项
    • 提供清晰的配置说明和推荐设置

v3.0.0 (2025-01-15)

  • 🚀 视频描述批量处理重大优化

    • 实现"N个视频 = 1次模型加载 + N次推理"的高效批量处理模式
    • 创建新的BatchVideoProcessor类,支持模型复用和资源管理
    • 显著减少模型加载时间,特别是在处理多个视频时效果明显
    • 优化内存使用,避免重复的模型初始化开销
  • 📦 新增批量处理脚本

    • 新建batch_run.py脚本,提供完整的命令行批量处理支持
    • 支持多种输入方式:视频列表、视频文件夹、配置文件
    • 提供JSON格式输出,便于程序间数据交换
    • 包含详细的处理统计信息:总时间、平均时间、成功率等
  • 🔧 GUI界面批量处理集成

    • 重构VideoDescriptionThread类,替换单视频处理为批量处理逻辑
    • 实现批量结果解析和状态更新机制
    • 保持原有的所有参数支持和用户体验
    • 添加批量处理进度监控和实时日志输出
  • ✅ 视频多选与智能批量处理

    • 复选框多选机制:为每个视频项添加复选框,支持自由选择要处理的视频
    • 便捷选择控制:提供"全选"和"取消全选"按钮,快速管理视频选择状态
    • 实时状态显示:显示"已选择: X / Y 个视频",让用户清楚了解当前选择情况
    • 智能处理逻辑:只处理选中的视频,未选中的视频自动跳过
    • 状态保持机制:在视频状态更新时自动保持复选框的选择状态
  • 📁 多文件夹批量上传功能

    • 统一文件夹上传:合并单个和多个文件夹上传功能为一个"上传文件夹"按钮
    • 累积式添加:支持多次选择文件夹,新视频会累积添加而不覆盖已有视频
    • 多格式支持:支持 mp4、avi、mov、mkv、wmv、flv、webm 等多种视频格式
    • 智能去重机制:自动避免重复添加相同的视频文件
    • 批量管理功能:添加"删除选中视频"功能,支持批量移除不需要的视频
  • 🎯 实时结果查看与交互

    • 即时状态更新:视频处理完成后立即更新列表状态(✅成功 / ❌失败)
    • 实时结果显示:当前选中视频处理完成时,右侧面板立即显示处理结果
    • 批量处理中查看:在批量处理过程中,用户可以点击已处理的视频查看详细结果
    • 智能界面布局:重新设计上传区域,按钮布局更加合理和直观
  • ⚡ 性能优化效果

    • 模型加载优化:从每个视频重新加载改为整个批次只加载一次
    • 处理时间优化:批量处理多个视频时显著减少总处理时间
    • 资源管理优化:实现proper的资源清理和内存管理
    • 设备配置优化:支持CUDA和CPU的自动检测和优化配置
  • 🛠️ 技术实现改进

    • 使用torch.inference_mode()优化推理性能
    • 实现完善的错误处理和异常恢复机制
    • 添加详细的日志记录和调试信息
    • 修复批量处理脚本中的logger初始化问题
  • 📊 批量处理统计功能

    • 提供详细的批量处理报告:总视频数、成功数、失败数
    • 计算总处理时间和平均每个视频处理时间
    • 支持处理结果的结构化输出和保存
    • 实现处理状态的实时监控和反馈
  • 🚀 用户体验全面提升

    • 灵活的工作流:支持从单个视频到大规模批量处理的各种使用场景
    • 直观的视觉反馈:清晰的状态指示和进度显示
    • 高效的操作流程:减少重复操作,提升处理效率
    • 智能化管理:自动化的状态管理和结果展示

v3.2.0 (2024-12-21)

  • 📁 视频描述导出功能重大改进

    • 单独导出机制:将原有的批量导出改为每个视频单独导出到各自所在目录
    • 智能文件命名:导出文件命名格式为"视频文件名称_description.格式后缀"
    • 多格式支持:支持JSON、TXT、CSV、Markdown四种格式的单独导出
    • 便携性增强:每个视频的描述文件都保存在视频同目录下,方便文件管理和迁移
  • 📊 导出内容全面增强

    • 视频时长:显示视频的实际播放时长
    • 处理时长:格式化显示处理耗时(秒/分钟/小时)
    • 视频相对路径:相对于视频所在目录的路径信息
    • 完整描述内容:AI生成的详细视频描述
    • 处理状态:成功/失败状态标识
    • 时间戳信息:处理完成的具体时间
    • 设备信息:处理时使用的设备类型(CPU/GPU)
    • 错误信息:处理失败时的详细错误描述
  • 🔄 自动读取已有描述文件

    • 智能识别:打开视频文件夹时自动检测并读取已存在的描述文件
    • 状态标记:已处理的视频在列表中显示"✅"标记
    • 跨设备兼容:支持在不同设备间访问已处理的视频描述
    • 避免重复处理:智能识别已处理视频,提升工作效率
  • ⚡ 自动保存功能优化

    • 目录自动定位:自动保存功能改为直接保存到各视频所在目录
    • 简化操作流程:移除目录选择步骤,一键完成保存
    • 详细统计反馈:提供保存成功和失败的详细统计信息
    • 批量处理支持:支持选中多个视频进行批量自动保存
  • 🛠️ 技术实现改进

    • 新增核心方法
      • _export_single_video_json() - JSON格式单视频导出
      • _export_single_video_txt() - TXT格式单视频导出
      • _export_single_video_csv() - CSV格式单视频导出
      • _export_single_video_md() - Markdown格式单视频导出
      • _format_processing_time() - 处理时间格式化
    • 代码重构:移除旧的批量导出逻辑,优化代码结构
    • 错误处理增强:完善异常处理机制,提供更好的用户反馈
  • 🎯 用户体验全面提升

    • 文件管理便利:描述文件与视频文件在同一目录,便于整体迁移和管理
    • 操作简化:减少用户选择目录的步骤,提升操作效率
    • 状态可视化:清晰的处理状态标识和详细的操作反馈
    • 兼容性保证:支持多种导出格式,满足不同使用场景需求

v2.2.0 (2024-12-20)

  • 🎨 界面布局优化

    • 重新设计视频描述界面布局,将常用功能选项移至视频播放区域下方
    • 在中间面板新增快捷功能区域,包含生成模式、参数设置和快捷选项
    • 增大开始描述和停止处理按钮尺寸,提升操作便利性
    • 添加功能说明文本和进度条显示,优化用户体验
    • 实现左侧面板和中间面板控件的双向同步机制
  • ⏱️ 处理耗时计算与显示

    • 新增视频处理总耗时统计功能,精确记录每个视频的完整处理时间
    • 在处理结果中显示详细的时间信息,包括开始时间、结束时间和总耗时
    • 优化处理流程的时间记录,提供更准确的性能分析数据
    • 支持批量处理时的总体耗时统计和平均处理时间计算
  • 🎛️ 高级参数控制

    • 在视频描述界面新增"高级参数"设置组
    • 添加"最大生成长度"(max_new_tokens)控制:范围0-2048,默认200,0表示无限制
    • 添加"采样帧数"(num_frames)控制:范围0-64,默认16,0表示自动选择
    • 提供详细的工具提示说明和推荐值指导
  • 🤖 智能帧数自动选择

    • 实现基于视频时长的智能帧数选择算法
    • 短视频(≤10秒):自动选择16帧,快速处理
    • 中等视频(10-30秒):自动选择20帧,平衡质量与效率
    • 较长视频(30-60秒):自动选择25帧,确保信息捕获
    • 长视频(>60秒):自动选择32帧,最大化信息提取
    • 添加错误处理机制,获取时长失败时使用默认值
  • 🎯 生成模式增强

    • 新增"混合策略"生成模式,提供第三种生成选项
    • 混合策略参数配置:do_sample=True, top_p=0.7, temperature=0.8, num_beams=2
    • 完善生成模式映射逻辑,支持确定性、随机采样和混合三种策略
    • 优化生成参数组合,平衡输出质量和多样性
  • 🔧 参数传递机制完善

    • 修改VideoDescriptionThread类,支持max_new_tokens和num_frames参数
    • 更新_process_single_video方法,正确传递高级参数到ShareGPT4Video算法
    • 修改ShareGPT4Video的run.py文件,添加--num_frames命令行参数支持
    • 实现参数验证和默认值处理机制
  • 📝 详细日志记录

    • 添加参数设置的详细日志记录和状态提示
    • 当设置为0时显示相应的"无限制"或"自动选择"提示
    • 记录自动帧数选择的具体数值和选择原因
    • 提供处理过程的完整参数信息追踪
  • ⚠️ 安全性考虑

    • 文档化max_new_tokens无限制设置的潜在风险:内存消耗、处理时间、质量下降、系统稳定性、成本问题
    • 说明num_frames自动选择的考虑因素:计算负载、处理时间、内存占用、质量平衡
    • 提供最佳实践建议和资源监控指导
    • 建议测试验证流程,确保生产环境稳定性
  • 🚀 用户体验优化

    • 简化参数设置,降低使用门槛
    • 智能化处理,减少手动调整需求
    • 提供清晰的参数说明和推荐值
    • 支持批量处理不同长度视频的自动优化

v2.1.0 (2024-12-19)

  • 🐛 语法错误修复

    • 修复抖音爬虫(douyin_crawler.py)中第295行的缩进错误
    • 修复YouTube爬虫(youtube_crawler.py)中第162行的缩进错误
    • 解决JSON解析循环中try语句缩进不正确的问题
  • 🎬 视频播放功能修复

    • 修复视频描述模块中的视频播放问题
    • 优化视频播放器的兼容性和稳定性
    • 改进视频文件加载和播放控制机制
  • 🛡️ 视频处理错误处理增强

    • 新增validate_video_file()函数,提供全面的视频文件验证
    • 增强视频文件格式支持:mp4, avi, mov, mkv, flv, wmv, m4v, webm, mpg, mpeg
    • 改进_load_video()方法,添加多重验证和FFMPEG后端支持
    • 优化_show_frame()方法的错误处理和资源管理
    • 增强get_video_info()方法,添加文件完整性检查和帧数据验证
  • 🎯 用户体验优化

    • 文件选择时实时验证视频文件有效性
    • 批量添加视频时提供详细的错误汇总
    • 改进错误信息显示,提供更清晰的问题诊断
    • 添加完整的日志记录和用户友好的错误提示
  • 🔧 ShareGPT4Video集成

    • 集成ShareGPT4Video视频描述算法
    • 支持自定义描述要求和模型参数
    • 实现处理日志和结果的分离显示
    • 添加视频描述处理的完整工作流
  • 🚀 ShareGPT4Video算法重大优化

    • 消除重复输出: 修复视频描述结果多次输出的问题,通过添加silent_mode参数和智能输出过滤
    • 改进日志管理: 重构日志系统,支持可配置的日志级别(DEBUG/INFO/WARNING/ERROR)、静默模式和可选文件日志
    • 增强错误处理: 新增ResultFormatter类,提供统一的JSON和纯文本输出格式,完善异常处理机制
    • 优化输出格式: 支持结构化JSON输出,包含状态、描述、时间戳和元数据信息
    • 命令行界面改进: 使用argparse重构参数解析,支持--video--output-format--log-level等参数
    • 超时控制: 增加10分钟处理超时机制,提升系统稳定性
    • 备用解析: 实现JSON解析失败时的自动回退机制,确保兼容性
    • 标准错误内容优化: 过滤模型加载警告、CUDA/GPU警告等系统信息,专注于核心处理结果
  • ✅ 代码质量提升

    • 通过Python AST语法检查器验证所有修复
    • 确保爬虫模块可以正常导入和使用
    • 改进代码结构和可读性
    • 添加测试脚本验证改进功能
    • ShareGPT4Video算法代码重构,提升可维护性和扩展性
  • 🔧 技术改进

    • 优化爬虫模块的错误处理机制
    • 提升JSON数据解析的稳定性
    • 增强代码的健壮性和维护性
    • 显著减少"媒体资源错误"的发生率
    • ShareGPT4Video处理流程优化,减少冗余输出和提升处理效率

v2.0.0 (2024-12-10)

  • 🎯 新增视频描述功能

    • 集成ShareGPT4Video模型,支持高质量视频内容描述
    • 添加专用的"📝 视频描述"界面选项卡
    • 支持单个和批量视频描述处理
    • 实现三栏布局:上传/功能选择(左)、视频播放(中)、处理日志/结果(右)
  • 🤖 AI动作描述过滤

    • 新增动作描述提取功能,通过API调用去除环境和衣着描述
    • 支持自定义API端点、密钥和模型配置
    • 智能过滤,只保留动作相关的描述内容
  • ⚙️ 配置管理增强

    • 新增视频描述模型缓存路径配置
    • 添加ShareGPT4Video模型路径设置
    • 创建cache_config.txt文件,与界面配置实时同步
    • 支持API配置管理(端点、密钥、模型)
  • 📊 批量处理与导出

    • 支持多格式导出:JSON、TXT、Markdown、Excel
    • 详细的处理记录:播放时间、执行时间、成功状态、描述内容、错误信息
    • 结果备份和导出功能
    • 可选择保存到视频目录或程序目录
  • 🖥️ 界面优化

    • 添加处理状态显示,包括成功/失败标识
    • 支持.mp4视频格式验证和上传
    • 可配置描述要求,支持默认模板(淡灰色提示)
    • 实时进度监控和详细日志显示
  • 🔧 技术改进

    • 支持CPU/CUDA自动检测,优化处理性能
    • 集成PyTorch和Transformers环境检测
    • 添加完整的测试脚本和示例视频
    • 改进错误处理和用户反馈机制

v1.0.0 (2024-01-01)

  • 初始版本发布
  • 基础爬虫功能
  • 视频处理功能
  • AI算法集成
  • GUI界面
  • 插件系统

注意: 请遵守相关法律法规,仅用于学习和研究目的。使用本工具下载的内容应符合版权法和网站服务条款。

运行程序的代码: 生成fbx文件: 第一步:conda activate base 第二步:python src/algorithms/pose3d/main/run_demo.py --vid_file data/sample_video.mp4 --save_pkl --save_fbx --skeleton_only python src/algorithms/pose3d/main/run_demo.py --vid_file "data/sample_video.mp4" --save_pkl --no_render --gpu 0 python src/algorithms/pose3d/main/run_demo.py --vid_file "data/【20分钟 BASI普拉提 全身训练|增强灵活性与力量 垫上普拉提跟练】Mira普拉提 初学者课程.f30016_split_171_281.mp4" --save_pkl --no_render --gpu 0 第三步:fbx_env_py37\Scripts\python.exe fbx_test_files\improved_pkl_to_fbx_converter.py

2D和3D对齐: python src\algorithms\pose3d\test_pose_2d_3d\run_flexible_alignment.py -v data/sample_video.mp4 -p output/sample_video/pmce_output.pkl

Contributors

owenkings

39 commits

shijieS

8 commits

wellbeingss

7 commits

Languages

Python

99.4%