使用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,}]}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java SimpleCursorAdapter删除值   java结束while循环条件   java检查设备是否连接到特定网络   java组织。冬眠MappingException找不到逻辑名称为annotation getter的列   为什么java邮件中会抛出此异常?   加载SDK时发生java Eclipse错误   返回奇怪输出的Java数组   JavaXStream和对象类序列化   将枚举列表传递给namedQuery后出现java非法转换异常。Hibernate中的setParameter()   java Android studio不允许我在字符串上使用开关?   有没有办法从Java程序访问存储在Chrome中的cookie   java在枚举中构造实例而不修改枚举类   java Blackberry JDE FieldChangeListener   java修复错误:未报告的异常InterruptedException   java Spring数据JPA:findAll(具有规范和可分页)在计数查询中失败