使用ffprobe或mediainfo从视频文件中提取元数据
PyProbe的Python项目详细描述
功能
- 来自ffprobe/mediainfo的格式化数据
- 如果ffprobe/mediainfo无法获取数据,则返回数据
- 相同的数据结构
- 与python 3完全兼容
安装
pip install PyProbe
用法
importpyprobeparser=pyprobe.VideoFileParser(ffprobe="/usr/bin/ffprobe",includeMissing=True,rawMode=False)data=parser.parseFfprobe(inputFile)
此代码将返回一个值字典(如下所述)。
- includemissing将删除ffprobe/mediainfo不返回数据的值
- rawmode将使每个值成为ffprobe/mediainfo的原始输出,它将是一个字符串(resolution除外,resolution是一个字符串元组)。
还提供了两个帮助函数,用于创建格式更精确的数据-
>>>importpyprobe>>>pyprobe.timeToTuple(12345.44)(3,25,45,440)>>pyprobe.sizeStr(12345678.99)'11.8 MB'
数据格式
{"path":str,"bit_rate":int,"duration":float,"size":int,"videos":[{"aspect_ratio":str,"bit_rate":int,"codec":str,"format":str,"framerate":float,"pixel_format":str,"resolution":(int# Width,int# Height)}],"audios":[{"bit_rate":int,"channel_count":int,"channel_layout":str,"codec":str,"format":str,"sample_rate":int# Hz}],"subtitles":[{"codec":str,"language":str}],"chapters":[{"title":str,"start":float,"end":float,}]}