bc242f8a3125d083cde1f6027da9fd655b14b6f3
视频元数据分析器
基于 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.html 是离线静态页面,可以直接双击打开查看。
开发与测试
运行测试:
uv run pytest -q
查看命令帮助:
uv run video-metadata-analyzer --help
第一版边界
当前版本优先保证“扫描、提取、汇总、可视化”这条主链路可用,暂时没有做这些增强项:
- 损坏视频的深度解码验证
- 单文件失败后的错误报告面板
- 更复杂的前端交互图表
- 增量扫描与数据库缓存
如果后续要继续做,最值得优先加的是“探测失败文件单独记录,不让整次扫描因为一个坏文件直接中断”。
Description
Languages
Python
100%