利用hachoir获取媒体文件元数据

pytorch-GPU版本安装,避免入坑 pytorch-GPU版本安装,避免入坑: 相对来说,安装torch,不论CPU还是GPU都比TensorFlow简单一些,这里讲如何避坑成功安装pytorch-GPU。TensorFlow的GPU版本等我按好了给大家说一下经验。 torch官网安装链接地址https://pytorch.org/get-started/locally/ 选择版本: 避坑关键: 推荐使用anaconda的prompt安装方式,其他的本人没试过,感兴趣的同学可以试一试。 其实,很难安装的主要原因是经常需要翻墙,但是网络不稳 阅读详情

概述

媒体文件(如jpg、mp4、avi等)均内置了大量元数据。Python内置的文件库只能读取少量文件元数据。
某些工具可以获取这些元数据,但是太重量级,效率不高。
如果只是想获取媒体文件元数据,hachoir是一不错的选择。

hachoir是一个二进制数据流查看、编辑工具,支持主流的压缩文件、音频文件、视频文件格式。
hachoir提供了Python API接口和四个命令行工具,命令行工具默认安装在Python的Scripts目录。

  • hachoir-grep: 从二进制文件中查找文本模式
  • hachoir-metadata:获取二进制文件的元数据
  • hachoir-strip: 删除文件元数据
  • hachoir-urwid: 以文本模式显示二进制文件内容

详细文档见https://hachoir.readthedocs.io/en/latest/

安装

pip install hachoir

案例:获取音频的播放时长

from hachoir.metadata import extractMetadata
from hachoir.parser import createParser

def get_metadata(file_path):
    try :
        metadata = extractMetadata(createParser(file_path))
        return metadata
    except:
        print(file_path)


path = r'C:\Users\Administrator\Music\Floricienta - Flores Amarillas.mp3'
metadata = get_metadata(path)
# 输出文本格式的元数据
print(metadata)
# 输出字典格式的元数据
print(metadata.exportDictionary())
# 输出duration元数据
print(metadata.get('duration'))

命令行输出信息:

Metadata:
- Title: Flores Amarillas
- Author: Floricienta
- Album: Cris Morena ¨C Grandes ¨¦xitos
- Album: Cris Morena – Grandes Éxitos
- Duration: 3 min 43 sec 257 ms
- Music genre: Blues
- Track number: 9
- Channel: Joint stereo
- Sample rate: 44.1 kHz
- Bits/sample: 16 bits
- Compression rate: 11.0x
- Bit rate: 128.0 Kbit/sec (constant)
- Format version: MPEG version 1 layer III
- MIME type: audio/mpeg
- Endianness: Big endian
{'Metadata': {'Album': 'Cris Morena – Grandes Éxitos',
              'Author': 'Floricienta',
              'Bit rate': '128.0 Kbit/sec (constant)',
              'Bits/sample': '16 bits',
              'Channel': 'Joint stereo',
              'Compression rate': '11.0x',
              'Duration': '3 min 43 sec 257 ms',
              'Endianness': 'Big endian',
              'Format version': 'MPEG version 1 layer III',
              'MIME type': 'audio/mpeg',
              'Music genre': 'Blues',
              'Sample rate': '44.1 kHz',
              'Title': 'Flores Amarillas',
              'Track number': '9'}}
0:03:43.257000
hachoir:Hachoir是一个Python库,用于逐字段查看和编辑二进制流 豪乔尔 Hachoir是一个Python库,用于逐字段查看和编辑二进制流。 换句话说,Hachoir允许您“浏览”任何二进制流,就像浏览目录和文件一样。 文件被拆分为字段树,其中最小的字段只有一位。 字段类型的示例:整数,字符串,位,填充类型,浮点数等。Hachoir是法语中的绞肉机(碎肉机),屠夫用来将肉分成长管。 屠夫使用Hachoir将二进制文件划分为多个字段。 (源代码,错误) 许可证:GNU GPL v2 使用Hachoir解析器的命令行工具: hachoir-grep:在二进制文件中查找文本模式 hachoir-metadata:从二进制文件获取元数据 hachoir-strip:修改文件以删除元数据 hachoir-urwid:以文本模式显示二进制文件的内容 安装说明: : Hachoir是为Python 3.6或更高版本编写的。 立即下载

相关推荐

Homeasstant实用插件包含HACS与xiaomi-miot-raw

Homeasstant实用插件包含HACS与xiaomi_miot_raw,其中xiaomi_miot_raw修复了使用小爱同学控制电器的bug,该插件可以让homeasstant更加实用与便利

安装配置Hbase

安装配置Hbase 1.Hbase介绍 HBase是一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,实现的编程语言为 Java。它是Apache软件基金会的Hadoop项目的一部分,运行于HDFS文件系统之上,为 Hadoop 提供类似于BigTable 规模的服务。因此,它可以容错地存储海量稀疏的数据。 2.安装环境 三台虚拟机:master、slave1、slave2并且已经安装好Hadoop环境和zookeeper name ip hadoop版本 zooke

qq_42006499的博客 606

告别理论!手把手教你用Patran/Nastran搞定机翼颤振分析(附完整模型文件)

本文提供了一份详细的机翼颤振分析实战指南,使用Patran/Nastran软件从零开始构建完整分析模型。涵盖几何建模、网格划分、模态分析到气动弹性耦合的全流程,特别适合航空航天领域工程师学习颤振分析技术。教程包含完整模型文件和实用脚本,帮助读者快速掌握这一关键飞行器设计技能。

weixin_30879169的博客 543

python项目文件结构_python 开发的目录结构

开发的目录结构学hachoir的xxx/有setup.py packet1 packet2...test放拿呢?? ---放到packet中,并且在setup.py的时候不安装test有2中,一种是testcase,一种是doctest,可以在xxx目录中放一个alltest.py,测试所有的东西test_doc的例子,从hachoircopy过来的#!/usr/bin/env python2.4...

weixin_39868414的博客 207

【隐私计算】从本地加法到在线乘法:Beaver Triple如何重塑算术秘密分享的运算效率

本文深入探讨了Beaver Triple在算术秘密分享中的关键作用,显著提升了隐私计算中的乘法运算效率。通过对比加法与乘法的实现差异,详细解析了Beaver Triple的预处理机制和在线计算优化,展示了其在减少通信量和计算时间方面的革命性突破。

weixin_29227585的博客 436

Obsidian+llama3:终于搭建了自己的知识库

Obsidian 的 Smart Connections,超出了我原本的预期,于是结合新模型非常方便地搭建了我的个人知识库。

谢彦的技术博客 3712

Hachoir 开源项目教程

Hachoir 开源项目教程 项目介绍 Hachoir 是一个用于解析和编辑二进制文件的 Python 库。它允许用户以类似于树的方式访问文件的各个字段,从而可以轻松地提取和修改文件的内容。Hachoir 支持多种文件格式,包括但不限于图片、音频、视频和文档。 项目快速启动 安装 Hachoir 首先,确保你已经安装了 Python。然后,使用 pip 安装 Hachoir: pip instal...

gitblog_00716的博客 659

DeepMD-kit描述子机制解析:从原子坐标到不变性特征

本文深入解析DeepMD-kit描述子机制,详细阐述如何将原子坐标转换为具有平移、旋转和排列不变性的特征表示。探讨了se_e2_a、se_e3等不同描述子的适用场景及性能优化技巧,帮助读者掌握这一关键技术在分子模拟中的应用实践。

weixin_42520661的博客 340

Hachoir 在黑莓手机上的实现

我们需要在黑莓手机上实现 Hachoir 库,以便解析图像文件(其中的元数据)。项目要求在黑莓手机上完成,这意味着我们需要将整个 Hachoir 库移植到黑莓手机上。另一种方法是编写利用 Hachoir 库的 Python 脚本,然后找到一种方法从黑莓手机上调用这些脚本。我们读到,可以使用 Android 上的 NDK 来调用 Python 脚本。那么在黑莓手机上有没有类似的工具呢?因此,最终我们需要在手机上安装 Hachoir(??

D0126_的博客 436

从零到精通:ROS2 MoveIt2与MPC机械臂轨迹规划的完整配置流程

本文详细介绍了ROS2 MoveIt2与MPC机械臂轨迹规划的完整配置流程,从环境准备到高级功能扩展,帮助开发者实现精准控制。通过集成模型预测控制(MPC),机械臂能够优化复杂轨迹规划,处理动态避障,提升工业自动化效率。

juice的博客 708

Pyhon在振动信号处理中的高级应用(一):振动信号特征(时域、频域)提取

文章目录一、概述二、算法原理2.1 时域统计特征三、python代码实现 一、概述 二、算法原理   这里我们借鉴西安交通大学机械学院雷教授的论文《Fault diagnosis of rotating machinery based on multiple ANFIS combination with GAs》相关研究成果。雷教授在论文中共列举了4类共24种振动信号的时域和频域特征。 2.1 时域统计特征 p1=∑n=1Nx(n)NP2=∑n=1N(x(n)−p1)2N−1p3=(∑n=1N∣x(n)∣N

白银时代的博客 1万+

python数据检索_python – Hachoir – 从组中检索数据

对于WMV文件来说,这似乎不那么简单.我已将此类视频的元数据转换为defaultdict,现在获取图像宽度更为简单:from collections import defaultdictfrom pprint import pprintfrom hachoir_metadata import metadatafrom hachoir_core.cmd_line import unicodeFile...

weixin_39692623的博客 329

BMS硬件设计核心:安全、精度与EMC的工程平衡

电池管理系统(BMS)是保障锂电安全运行的关键嵌入式子系统,其本质是在高精度模拟测量、实时故障响应与复杂电磁环境适应性之间达成工程平衡。原理上,BMS依赖专用监测芯片(如BQ76920)实现微秒级硬件保护,结合主控MCU(如STM32)完成策略决策与通信管理,形成‘安全协处理器+智能主控’双架构。技术价值体现在对过压/欠压/过流/温度等多维故障的毫秒级闭环处置能力,支撑SOC/SOH估算可信度与系统鲁棒性。典型应用场景涵盖电动工具、轻型电动车及储能模块等中低串数电池组。本文聚焦BMS控制板在时钟布局、电源滤

weixin_30591519的博客 70

Hachoir 项目常见问题解决方案

Hachoir 项目常见问题解决方案 项目基础介绍 Hachoir 是一个用于查看和编辑二进制流字段的 Python 库。它允许用户像浏览目录和文件一样浏览二进制流,将文件分割成一个字段树,其中最小的字段仅为一个比特。Hachoir 支持多种字段类型,如整数、字符串、比特、填充类型、浮点数等。Hachoir 的名称来源于法语中的“肉磨机”,象征着它将二进制文件分割成字段的功能。 主要编程语言 Ha...

gitblog_00149的博客 750

uniapp [安卓苹果App端] - 实现微信支付功能+拉起微信付款支付后返回本app页面,详解uniApp如何唤起本机微信app并跳转到支付页面全流程及示例源码(uniapp实现微信支付,可打包)

uni-app项目在APP端使用微信支付功能,uniapp前端实现微信支付,uniapp开发安卓App对接微信支付,uniapp苹果ios唤起微信支付,uniapp调用微信支付uniapp开发app-调用微信支付,uniapp开发安卓苹果app如何接入微信支付,前后端应该怎么做,UniApp中实现微信支付功能,支付报错,调起失败没响应,uniapp苹果微信支付唤起实现,app唤起微信支付,拉起微信支付,uniapp中唤醒微信进行支付并返回app,uniApp调起微信支付失败报错,全网最详细的uniapp微信

🏆 前端领域优质创作者 1万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Python二进制文件解析神器:Hachoir完整指南 [特殊字符]

Hachoir是一个强大的Python库,专门用于逐字段查看和编辑二进制流数据。它让开发者能够像浏览目录和文件一样轻松"浏览"任何二进制文件的结构,是处理多媒体文件、分析文件格式的终极工具。 ## 为什么选择Hachoir二进制解析工具? 🤔 在数据处理和文件分析领域,Hachoir提供了独特的解决方案: - **字段级精度**:将文件分解为字段树,最小字段仅为1位 - **多格式支持**

gitblog_00125的博客 301

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

如何使用 Hachoir 二进制文件解析器:Python 开发者的终极指南

Hachoir 是一个功能强大的 Python 库,专门用于以字段为单位查看和编辑二进制数据流。无论是音频文件、图片格式还是系统文件,Hachoir 都能帮助你深入分析二进制结构。 ## 🔍 什么是 Hachoir 二进制解析器? Hachoir 让开发者能够轻松解析各种二进制文件格式,包括音频、视频、图片、文档等。通过字段级的分析,你可以深入了解文件内部结构,提取元数据信息。 [![Ha

gitblog_00986的博客 404

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

视频文件详细信息python3_如何使用python3.7提取视频文件的元数据?

我没有找到一个很好的Python库,但是使用hachoir和{def get_media_properties(filename):result = subprocess.Popen(['hachoir-metadata', filename, ' raw', ' level=3'],stdout = subprocess.PIPE, stderr = subprocess.STDOUT)resu...

weixin_39622332的博客 374

怎么用python处理数据视频,如何使用Python 3.7提取视频文件的元数据?

I am looking for a simple library, compatible with Python 3.7, which can extract metadata of video files, specifically the capture/recording datetime; the date and time when the video was shot. I am m...

weixin_35867815的博客 250

怎么用python处理数据视频_如何使用Python 3.7提取视频文件的元数据?

I am looking for a simple library, compatible with Python 3.7, which can extract metadata of video files, specifically the capture/recording datetime; the date and time when the video was shot. I am m...

weixin_39519619的博客 371

python打开视频文件夹_如何在Python中获取视频文件的方向

如何在Python中获取视频文件的方向

weixin_39724004的博客 78

python打开视频文件夹,如何在Python中获取视频文件的方向

I would like to load a video file's frames into a numpy array. I want the frames to be properly upright, which means I need to read the orientation metadata in the video file, and rotate the loaded fr...

weixin_39645041的博客 162

SteganographierGUI常见问题解答:解决隐写文件解压失败的10个方法

SteganographierGUI是一款功能强大的文件隐写工具,可以将文件或文件夹巧妙地隐藏在MP4/MKV视频文件中,实现安全分享。然而,在实际使用过程中,用户可能会遇到各种隐写文件解压失败的问题。本文将为您提供10个实用方法,帮助您快速解决这些问题,确保隐写文件能够顺利提取。 ## 🔍 1. 文件后缀名修改问题 最常见的隐写文件解压失败原因就是**文件后缀名没有正确修改**。Stega

gitblog_00986的博客 811

Python批量修复视频文件时间戳:元数据处理与自动化脚本实战

在多媒体文件管理与数字资产管理中,元数据是描述文件属性的关键信息,其中时间戳是组织、检索和编辑素材的核心依据。其原理在于文件系统与媒体容器内嵌的时间标签协同记录创建、修改等时间信息。正确处理时间元数据的技术价值在于确保素材按时间线正确排序,提升剪辑效率与归档准确性。应用场景广泛覆盖视频创作、媒体资料库整理及自动化运维等领域。本文聚焦于视频文件时间戳混乱这一常见痛点,通过Python结合mutagen库与exiftool工具,提供了一套从读取媒体创建日期到批量更新系统修改时间的完整自动化解决方案,并涵盖脚本优

weixin_34074740的博客 335

如何在5分钟内搭建ESP32智能语音控制平台:小智后端服务完整指南

小智ESP32后端服务(xiaozhi-esp32-server)是一款革命性的开源智能语音控制平台,专为ESP32物联网设备打造。通过这个项目,你可以轻松构建功能强大的语音交互系统,实现从语音识别到设备控制的完整解决方案。无论你是智能家居爱好者、物联网开发者,还是想要打造个性化语音助手的新手,这个项目都能为你提供简单易用的工具和完整的生态系统。 ## ✨ 项目亮点与特色介绍 小智ESP32后

gitblog_00034的博客 535
上一篇: 使用Python根据扩展名将子目录的文件移动到指定目的目录
下一篇: Pandas简明教程(一):Series数据类型、DataFrame数据类型
mighty13
博客等级 码龄23年 728粉丝 438原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值