一个集成了网络爬虫和视频处理功能的综合性工具,支持视频下载、处理、分析和AI算法应用。
Windows用户:
启动程序.bat 文件所有平台:
# 智能启动(自动检查依赖)
python start.py
# 或专门安装依赖
python install_dependencies.py
pip install -r requirements.txt
# NumPy兼容性问题
python fix_numpy.py
# MoviePy缺失问题
pip install moviepy==1.0.3
# 完整依赖修复
python install_dependencies.py
python main.py
No module named 'moviepy.editor':运行 pip install moviepy==1.0.3_ARRAY_API not found:运行 pip install "numpy<2.0" --force-reinstallpython install_dependencies.pygit clone https://github.com/your-username/video-crawler-tool.git
cd video-crawler-tool
# 使用 venv
python -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate
# 安装基础依赖
pip install -r requirements.txt
# 如果需要GPU支持 (NVIDIA)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
重要: 3D姿态估计功能需要手动下载以下模型文件到指定目录:
./text2dance/src/algorithms/pose_3d/smplpytorch/smplpytorch/native/models./text2dance/src/algorithms/pose_3d/data/base_data./text2dance/src/algorithms/pose_3d/pose_detector./text2dance/src/algorithms/pose_3d/experiment/pretrained./text2dance/src/algorithms/pose_3d/weights注意: 请确保将下载的文件放置在正确的目录中,否则3D姿态估计功能将无法正常工作。
# 复制配置文件模板
cp config/config.example.yaml config/config.yaml
# 编辑配置文件
nano config/config.yaml
# GUI模式
python main.py
# 命令行模式
python main.py --no-gui
# 查看帮助
python main.py --help
启动应用程序
python main.py
爬虫功能
视频处理
AI分析
# 爬取视频
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
# 应用程序设置
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: []
创建插件目录
plugins/
└── my_plugin/
├── __init__.py
├── plugin.py
└── config.yaml
实现插件接口
# 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
注册插件
# plugins/my_plugin/__init__.py
from .plugin import MyPlugin
def get_plugin():
return MyPlugin()
# 爬虫管理器
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")
导入错误
ImportError: No module named 'PyQt5'
解决方案: 确保已安装所有依赖包
pip install -r requirements.txt
FFmpeg未找到
FileNotFoundError: ffmpeg not found
解决方案: 安装FFmpeg并添加到PATH,或在配置文件中指定路径
GPU加速失败
CUDA out of memory
解决方案: 减少批处理大小或使用CPU模式
网络连接问题
ConnectionError: Failed to download
解决方案: 检查网络连接,配置代理或重试
日志文件位置: logs/app.log
查看详细错误信息:
tail -f logs/app.log
Fork项目
创建开发分支
git checkout -b feature/new-feature
安装开发依赖
pip install -r requirements.txt
pip install pytest black flake8 mypy
运行测试
pytest tests/
代码格式化
black src/
flake8 src/
mypy src/
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
🎨 界面布局优化与响应式设计增强
📱 视频列表动态高度调整
Expanding, Expanding修改为Expanding, Preferred_adjust_video_list_height()方法,智能计算可用空间并设置动态高度约束🖥️ 响应式布局系统完善
_on_window_resized()中集成视频列表高度调整⚙️ 上传组布局优化
AlignCenter改为AlignTop,优化视觉效果self.upload_group),支持动态高度计算和约束设置🔧 技术实现与代码质量
src/gui/video_description_widget.py中的布局优化实现_adjust_video_list_height()方法,提供完整的动态高度调整逻辑_on_window_resized()和初始化流程中集成高度调整功能💡 用户体验提升
🔧 批处理系统重大修复与日志管理增强
🐛 批处理系统核心修复
run.py 中 video_answer 函数调用 model.generate() 时参数名不匹配的关键问题input_ids 参数传递错误导致的 NoneType 异常input_ids 修正为正确的 inputs 参数📋 日志系统优化与管理增强
🛠️ 技术实现与代码质量提升
src/algorithms/video_description/ShareGPT4Video/run.py 第372行参数传递修正run.py 第388行的冗余日志输出src/utils/logger.py,新增轮转文件处理器和时间轮转处理器💡 稳定性与性能提升
🔧 GPU优化批处理修复与日志增强
🐛 GPU优化批处理修复
📋 日志系统增强
🚀 全面性能优化与功能增强
⚡ GPU优化性能全面提升
--disable-smart-loading 命令行参数,允许用户禁用智能加载获得更快预加载速度📝 视频描述完整性保障
tokenizer_model_max_length 截断逻辑,避免序列被强制截断📋 日志系统全面优化
🔧 镜像管理优化
🛠️ 技术实现细节
llava_arch.py 注释截断逻辑,移除序列长度限制run.py 默认 max_new_tokens 参数从None改为8192sharegpt4video_algorithm.py 描述提取方法,返回完整内容video_description_widget.py API调用限制到8192 tokensbuilder.py 序列长度支持到16384,增强处理能力💡 用户体验提升
🔧 镜像管理器性能优化 - 解决重复初始化问题
⚡ 镜像管理器优化
🛠️ 技术实现细节
MirrorManager 类,添加 _initialized 状态标记initialize_smart_mirror 方法,增加初始化状态检查,每次运行无需重复初始化load_model_with_smart_retry 函数,提前进行模型缓存完整性检查⚡ GPU优化批处理功能 - 大幅提升视频描述处理性能
🚀 GPU优化批处理算法
🎛️ GPU优化用户界面
⚙️ 技术实现细节
--gpu-optimized、--batch-size、--max-workers🚀 重大版本更新 - 智能镜像管理与AI算法全面升级
🌐 智能镜像管理系统重大升级
🤖 姿态估计算法全面升级
🎬 视频描述算法重大更新
⚙️ 配置管理系统全面重构
cache_config.txt统一配置文件,简化用户配置流程🚀 视频处理流程优化
🔧 网络连接与性能优化
📊 用户体验全面提升
🛡️ 系统稳定性与兼容性改进
🔄 架构设计优化
🖥️ 设备选择功能
🧠 智能设备检测逻辑
⚙️ 配置管理优化
🔧 代码架构改进
🚀 用户体验提升
🚀 视频描述批量处理重大优化
BatchVideoProcessor类,支持模型复用和资源管理📦 新增批量处理脚本
batch_run.py脚本,提供完整的命令行批量处理支持🔧 GUI界面批量处理集成
VideoDescriptionThread类,替换单视频处理为批量处理逻辑✅ 视频多选与智能批量处理
📁 多文件夹批量上传功能
🎯 实时结果查看与交互
⚡ 性能优化效果
🛠️ 技术实现改进
torch.inference_mode()优化推理性能📊 批量处理统计功能
🚀 用户体验全面提升
📁 视频描述导出功能重大改进
📊 导出内容全面增强
🔄 自动读取已有描述文件
⚡ 自动保存功能优化
🛠️ 技术实现改进
_export_single_video_json() - JSON格式单视频导出_export_single_video_txt() - TXT格式单视频导出_export_single_video_csv() - CSV格式单视频导出_export_single_video_md() - Markdown格式单视频导出_format_processing_time() - 处理时间格式化🎯 用户体验全面提升
🎨 界面布局优化
⏱️ 处理耗时计算与显示
🎛️ 高级参数控制
🤖 智能帧数自动选择
🎯 生成模式增强
🔧 参数传递机制完善
📝 详细日志记录
⚠️ 安全性考虑
🚀 用户体验优化
🐛 语法错误修复
🎬 视频播放功能修复
🛡️ 视频处理错误处理增强
validate_video_file()函数,提供全面的视频文件验证_load_video()方法,添加多重验证和FFMPEG后端支持_show_frame()方法的错误处理和资源管理get_video_info()方法,添加文件完整性检查和帧数据验证🎯 用户体验优化
🔧 ShareGPT4Video集成
🚀 ShareGPT4Video算法重大优化
silent_mode参数和智能输出过滤ResultFormatter类,提供统一的JSON和纯文本输出格式,完善异常处理机制argparse重构参数解析,支持--video、--output-format、--log-level等参数✅ 代码质量提升
🔧 技术改进
🎯 新增视频描述功能
🤖 AI动作描述过滤
⚙️ 配置管理增强
📊 批量处理与导出
🖥️ 界面优化
🔧 技术改进
注意: 请遵守相关法律法规,仅用于学习和研究目的。使用本工具下载的内容应符合版权法和网站服务条款。
运行程序的代码: 生成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
Python
99.4%
一个集成了网络爬虫和视频处理功能的综合性工具,支持视频下载、处理、分析和AI算法应用。
Windows用户:
启动程序.bat 文件所有平台:
# 智能启动(自动检查依赖)
python start.py
# 或专门安装依赖
python install_dependencies.py
pip install -r requirements.txt
# NumPy兼容性问题
python fix_numpy.py
# MoviePy缺失问题
pip install moviepy==1.0.3
# 完整依赖修复
python install_dependencies.py
python main.py
No module named 'moviepy.editor':运行 pip install moviepy==1.0.3_ARRAY_API not found:运行 pip install "numpy<2.0" --force-reinstallpython install_dependencies.pygit clone https://github.com/your-username/video-crawler-tool.git
cd video-crawler-tool
# 使用 venv
python -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate
# 安装基础依赖
pip install -r requirements.txt
# 如果需要GPU支持 (NVIDIA)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
重要: 3D姿态估计功能需要手动下载以下模型文件到指定目录:
./text2dance/src/algorithms/pose_3d/smplpytorch/smplpytorch/native/models./text2dance/src/algorithms/pose_3d/data/base_data./text2dance/src/algorithms/pose_3d/pose_detector./text2dance/src/algorithms/pose_3d/experiment/pretrained./text2dance/src/algorithms/pose_3d/weights注意: 请确保将下载的文件放置在正确的目录中,否则3D姿态估计功能将无法正常工作。
# 复制配置文件模板
cp config/config.example.yaml config/config.yaml
# 编辑配置文件
nano config/config.yaml
# GUI模式
python main.py
# 命令行模式
python main.py --no-gui
# 查看帮助
python main.py --help
启动应用程序
python main.py
爬虫功能
视频处理
AI分析
# 爬取视频
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
# 应用程序设置
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: []
创建插件目录
plugins/
└── my_plugin/
├── __init__.py
├── plugin.py
└── config.yaml
实现插件接口
# 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
注册插件
# plugins/my_plugin/__init__.py
from .plugin import MyPlugin
def get_plugin():
return MyPlugin()
# 爬虫管理器
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")
导入错误
ImportError: No module named 'PyQt5'
解决方案: 确保已安装所有依赖包
pip install -r requirements.txt
FFmpeg未找到
FileNotFoundError: ffmpeg not found
解决方案: 安装FFmpeg并添加到PATH,或在配置文件中指定路径
GPU加速失败
CUDA out of memory
解决方案: 减少批处理大小或使用CPU模式
网络连接问题
ConnectionError: Failed to download
解决方案: 检查网络连接,配置代理或重试
日志文件位置: logs/app.log
查看详细错误信息:
tail -f logs/app.log
Fork项目
创建开发分支
git checkout -b feature/new-feature
安装开发依赖
pip install -r requirements.txt
pip install pytest black flake8 mypy
运行测试
pytest tests/
代码格式化
black src/
flake8 src/
mypy src/
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
🎨 界面布局优化与响应式设计增强
📱 视频列表动态高度调整
Expanding, Expanding修改为Expanding, Preferred_adjust_video_list_height()方法,智能计算可用空间并设置动态高度约束🖥️ 响应式布局系统完善
_on_window_resized()中集成视频列表高度调整⚙️ 上传组布局优化
AlignCenter改为AlignTop,优化视觉效果self.upload_group),支持动态高度计算和约束设置🔧 技术实现与代码质量
src/gui/video_description_widget.py中的布局优化实现_adjust_video_list_height()方法,提供完整的动态高度调整逻辑_on_window_resized()和初始化流程中集成高度调整功能💡 用户体验提升
🔧 批处理系统重大修复与日志管理增强
🐛 批处理系统核心修复
run.py 中 video_answer 函数调用 model.generate() 时参数名不匹配的关键问题input_ids 参数传递错误导致的 NoneType 异常input_ids 修正为正确的 inputs 参数📋 日志系统优化与管理增强
🛠️ 技术实现与代码质量提升
src/algorithms/video_description/ShareGPT4Video/run.py 第372行参数传递修正run.py 第388行的冗余日志输出src/utils/logger.py,新增轮转文件处理器和时间轮转处理器💡 稳定性与性能提升
🔧 GPU优化批处理修复与日志增强
🐛 GPU优化批处理修复
📋 日志系统增强
🚀 全面性能优化与功能增强
⚡ GPU优化性能全面提升
--disable-smart-loading 命令行参数,允许用户禁用智能加载获得更快预加载速度📝 视频描述完整性保障
tokenizer_model_max_length 截断逻辑,避免序列被强制截断📋 日志系统全面优化
🔧 镜像管理优化
🛠️ 技术实现细节
llava_arch.py 注释截断逻辑,移除序列长度限制run.py 默认 max_new_tokens 参数从None改为8192sharegpt4video_algorithm.py 描述提取方法,返回完整内容video_description_widget.py API调用限制到8192 tokensbuilder.py 序列长度支持到16384,增强处理能力💡 用户体验提升
🔧 镜像管理器性能优化 - 解决重复初始化问题
⚡ 镜像管理器优化
🛠️ 技术实现细节
MirrorManager 类,添加 _initialized 状态标记initialize_smart_mirror 方法,增加初始化状态检查,每次运行无需重复初始化load_model_with_smart_retry 函数,提前进行模型缓存完整性检查⚡ GPU优化批处理功能 - 大幅提升视频描述处理性能
🚀 GPU优化批处理算法
🎛️ GPU优化用户界面
⚙️ 技术实现细节
--gpu-optimized、--batch-size、--max-workers🚀 重大版本更新 - 智能镜像管理与AI算法全面升级
🌐 智能镜像管理系统重大升级
🤖 姿态估计算法全面升级
🎬 视频描述算法重大更新
⚙️ 配置管理系统全面重构
cache_config.txt统一配置文件,简化用户配置流程🚀 视频处理流程优化
🔧 网络连接与性能优化
📊 用户体验全面提升
🛡️ 系统稳定性与兼容性改进
🔄 架构设计优化
🖥️ 设备选择功能
🧠 智能设备检测逻辑
⚙️ 配置管理优化
🔧 代码架构改进
🚀 用户体验提升
🚀 视频描述批量处理重大优化
BatchVideoProcessor类,支持模型复用和资源管理📦 新增批量处理脚本
batch_run.py脚本,提供完整的命令行批量处理支持🔧 GUI界面批量处理集成
VideoDescriptionThread类,替换单视频处理为批量处理逻辑✅ 视频多选与智能批量处理
📁 多文件夹批量上传功能
🎯 实时结果查看与交互
⚡ 性能优化效果
🛠️ 技术实现改进
torch.inference_mode()优化推理性能📊 批量处理统计功能
🚀 用户体验全面提升
📁 视频描述导出功能重大改进
📊 导出内容全面增强
🔄 自动读取已有描述文件
⚡ 自动保存功能优化
🛠️ 技术实现改进
_export_single_video_json() - JSON格式单视频导出_export_single_video_txt() - TXT格式单视频导出_export_single_video_csv() - CSV格式单视频导出_export_single_video_md() - Markdown格式单视频导出_format_processing_time() - 处理时间格式化🎯 用户体验全面提升
🎨 界面布局优化
⏱️ 处理耗时计算与显示
🎛️ 高级参数控制
🤖 智能帧数自动选择
🎯 生成模式增强
🔧 参数传递机制完善
📝 详细日志记录
⚠️ 安全性考虑
🚀 用户体验优化
🐛 语法错误修复
🎬 视频播放功能修复
🛡️ 视频处理错误处理增强
validate_video_file()函数,提供全面的视频文件验证_load_video()方法,添加多重验证和FFMPEG后端支持_show_frame()方法的错误处理和资源管理get_video_info()方法,添加文件完整性检查和帧数据验证🎯 用户体验优化
🔧 ShareGPT4Video集成
🚀 ShareGPT4Video算法重大优化
silent_mode参数和智能输出过滤ResultFormatter类,提供统一的JSON和纯文本输出格式,完善异常处理机制argparse重构参数解析,支持--video、--output-format、--log-level等参数✅ 代码质量提升
🔧 技术改进
🎯 新增视频描述功能
🤖 AI动作描述过滤
⚙️ 配置管理增强
📊 批量处理与导出
🖥️ 界面优化
🔧 技术改进
注意: 请遵守相关法律法规,仅用于学习和研究目的。使用本工具下载的内容应符合版权法和网站服务条款。
运行程序的代码: 生成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
Python
99.4%