一个数据库怎么做二个网站/网络建站优化科技
概述
媒体文件(如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 createParserdef get_metadata(file_path):try :metadata = extractMetadata(createParser(file_path))return metadataexcept: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