关于 video-metadata-inspector
Video Metadata Inspector 是用于检查视频文件技术与描述性元数据的 Python 库和命令行工具,适合媒体处理工作流。可用于格式核验、质量检查、转码规划和目录报告。
主要功能
- 01读取时长、分辨率、帧率和文件大小
- 02检查视频与音频编码详情
- 03读取容器标签和流信息
- 04批量分析多个文件
- 05导出 JSON、CSV 或文本报告
适用场景
- 01按要求核验视频格式
- 02转码规划前检查文件
- 03检查视频技术质量特征
- 04整理视频库元数据
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dkyazzentwatwa/ chatgpt-skills --skill video-metadata-inspector安装后在 Claude Code 中输入/video-metadata-inspector确认已加载。
附带文件scripts/requirements.txtscripts/video_metadata_inspector.py
详细介绍
视频元数据检查器
从视频文件中提取并分析全面的元数据,包括时长、分辨率、编解码器、帧率和技术规格。
用途
视频元数据检查适用于:
- 格式验证和兼容性检查
- 质量评估和验证
- 转码规划和优化
- 视频库编目
- 技术规格报告
功能
- 基本信息:时长、分辨率、帧率、文件大小
- 编解码器详情:视频/音频编解码器、配置文件、比特率
- 技术规格:宽高比、像素格式、采样率
- 元数据:标题、艺术家、创建日期、标签
- 批量分析:一次操作处理多个文件
- 导出格式:JSON、CSV、易读文本
快速开始
from video_metadata_inspector import VideoMetadataInspector
# Inspect single video
inspector = VideoMetadataInspector()
inspector.load('video.mp4')
metadata = inspector.get_metadata()
print(f"Duration: {metadata['duration_seconds']:.2f}s")
print(f"Resolution: {metadata['width']}x{metadata['height']}")
print(f"FPS: {metadata['fps']}")
# Export full report
inspector.export_report('report.json', format='json')
# Batch inspect directory
inspector.batch_inspect(
input_files=['video1.mp4', 'video2.mkv'],
output='metadata.csv',
format='csv'
)
CLI 用法
# Basic metadata
python video_metadata_inspector.py input.mp4
# Full technical details
python video_metadata_inspector.py input.mp4 --verbose
# Export to JSON
python video_metadata_inspector.py input.mp4 --output metadata.json --format json
# Batch inspect directory
python video_metadata_inspector.py *.mp4 --output metadata.csv --format csv
# Compare multiple videos
python video_metadata_inspector.py video1.mp4 video2.mp4 --compare
API 参考
VideoMetadataInspector
class VideoMetadataInspector:
def load(self, filepath: str) -> 'VideoMetadataInspector'
def get_metadata(self) -> Dict[str, Any]
def get_basic_info(self) -> Dict[str, Any]
def get_video_info(self) -> Dict[str, Any]
def get_audio_info(self) -> Dict[str, Any]
def get_format_info(self) -> Dict[str, Any]
def export_report(self, output: str, format: str = 'json') -> str
def batch_inspect(self, input_files: List[str], output: str = None,
format: str = 'csv') -> pd.DataFrame
def compare_videos(self, video_files: List[str]) -> pd.DataFrame
元数据类别
基本信息
- 时长(秒数、格式化显示)
- 分辨率(宽 × 高)
- 帧率(FPS)
- 文件大小
- 宽高比
视频流
- 视频编解码器(H.264、H.265、VP9 等)
- 编解码器配置文件和级别
- 比特率(kbps)
- 像素格式(yuv420p 等)
- 色彩空间和范围
音频流
- 音频编解码器(AAC、MP3、Opus 等)
- 采样率(Hz)
- 声道数(单声道、立体声、5.1 等)
- 音频比特率(kbps)
容器格式
- 容器类型(MP4、MKV、AVI 等)
- 创建日期
- 元数据标签(标题、艺术家、描述)
- 流数量
使用场景
格式验证:
inspector.load('video.mp4')
info = inspector.get_video_info()
if info['codec'] == 'h264' and info['width'] >= 1920:
print("✓ Meets requirements: 1080p H.264")
转码规划:
# Check if transcoding needed
metadata = inspector.get_metadata()
if metadata['video_codec'] != 'h265' or metadata['bitrate_kbps'] > 5000:
print("Transcode recommended")
质量评估:
# Analyze video quality metrics
info = inspector.get_metadata()
quality_score = (
(info['width'] * info['height']) / 2073600 * 50 + # Resolution score
min(info['fps'] / 60, 1) * 25 + # Frame rate score
min(info['bitrate_kbps'] / 10000, 1) * 25 # Bitrate score
)
常见检查
视频是否为 4K?
metadata['width'] >= 3840 and metadata['height'] >= 2160
视频是否为 HDR?
'hdr' in metadata.get('color_space', '').lower()
音频是否为立体声?
metadata['audio_channels'] == 2
编解码器是否较新?
metadata['video_codec'] in ['h265', 'vp9', 'av1']
限制
- 无法提取损坏视频的元数据
- 某些专有格式的支持可能有限
- 无法分析受 DRM 保护的内容
- 对于非常大的文件,元数据提取可能较慢
- 完整的编解码器详情需要 FFmpeg/FFprobe
评论
支持 Markdown