c5e570f38275011d823e053385b2c3ffc7988c7d
视频元数据分析器
基于 Python + uv 的命令行工具,用于递归扫描一个或多个目录中的视频文件,调用 ffprobe 提取结构化元数据,并调用 ffmpeg 记录运行环境能力,最终输出:
report.json:完整元数据与汇总统计files.csv:逐文件明细report.html:可直接打开的离线可视化报告
当前能力
- 输入一个或多个目录,递归发现常见视频文件
- 提取视频时长、大小、编码、分辨率、帧率、音频编码等字段
- 单个视频探测失败时不中断整次扫描,会单独记录错误清单
- 汇总时长分布、大小分布、视频编码分布、分辨率分布
- 生成适合人工查看的 HTML 报告,以及适合后续二次处理的 JSON / CSV
依赖要求
- Python 3.11+
uvffprobeffmpeg
要求 ffprobe 与 ffmpeg 已经在系统 PATH 中,或者在运行时通过参数显式指定。
初始化
uv sync --dev
运行方式
最直接的方式:
uv run video-metadata-analyzer D:\Videos E:\Archive --output-dir .\reports\latest
如果你更习惯模块方式:
uv run python -m video_metadata_analyzer D:\Videos --output-dir .\reports\latest
如果 ffprobe / ffmpeg 不在 PATH 中,可以显式指定:
uv run video-metadata-analyzer D:\Videos `
--ffprobe-bin C:\ffmpeg\bin\ffprobe.exe `
--ffmpeg-bin C:\ffmpeg\bin\ffmpeg.exe `
--output-dir .\reports\latest
输出内容
生成目录内默认包含以下文件:
report.jsonfiles.csvreport.html
其中:
report.json包含summary、成功文件列表files,以及失败文件列表failuresfiles.csv同时输出成功和失败结果,带status、error_type、error_message字段report.html是离线静态页面,可以直接双击打开查看,并显示错误清单面板
开发与测试
运行测试:
uv run pytest -q
查看命令帮助:
uv run video-metadata-analyzer --help
第一版边界
当前版本优先保证“扫描、提取、汇总、可视化”这条主链路可用,暂时没有做这些增强项:
- 损坏视频的深度解码验证
- 更复杂的前端交互图表
- 增量扫描与数据库缓存
Description
Languages
Python
100%