mcpField
V
video-metadata-inspector

video-metadata-inspector

github.com/dkyazzentwatwa创意与媒体12466 次安装29 周前更新
代码仓库

关于 video-metadata-inspector

Video Metadata Inspector 是用于检查视频文件技术与描述性元数据的 Python 库和命令行工具,适合媒体处理工作流。可用于格式核验、质量检查、转码规划和目录报告。

主要功能

  1. 01读取时长、分辨率、帧率和文件大小
  2. 02检查视频与音频编码详情
  3. 03读取容器标签和流信息
  4. 04批量分析多个文件
  5. 05导出 JSON、CSV 或文本报告

适用场景

  1. 01按要求核验视频格式
  2. 02转码规划前检查文件
  3. 03检查视频技术质量特征
  4. 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