我目前正在开展一个学校项目,要求我处理mpeg-2文件 . 目前,我正在使用mutagen来提取我的mpeg文件的元数据 . 但是,当我尝试获取 Headers ,艺术家,专辑等的元数据时,它向我显示以下错误 . [Python代码赞赏]
如果我的输出如下:
mutagen.id3.ID3NoHeaderError:'media / test.mpeg'不以ID3标签开头
它表明没有容器这么叫拿着ID3标签,有人在乎解释我为什么会这样吗?
当我使用mp3文件而不是mpeg时,它工作得很好 .
以下是我的代码的一部分(硬编码):
from mutagen.id3 import ID3
file = "media/test.mpeg"
audio = ID3(file)
print "Artist: %s" % audio['TPE1'].text[0]
print "Track: %s" % audio["TIT2"].text[0]
print "Release Year: %s" % audio["TDRC"].text[0]
第二个问题是,当我尝试获取mpeg文件的持续时间时,它会以错误的持续时间返回给我 .
文件持续时间= 21秒
当我运行我的代码时,它显示的持续时间为:1124.5705721秒
以下是我的代码的一部分(硬编码):
import mutagen
from mutagen.mp3 import MP3
from mutagen.mp3 import MPEGInfo
file = "media/test.mpeg"
audio = MP3(file)
print audio.info.length
1 回答
Mutagen使用.mpeg后缀作为识别输入文件是MP3音频的一种方式 . 请参阅http://code.google.com/p/mutagen/source/browse/mutagen/mp3.py末尾附近的类MP3(ID3FileType)
Mutagen可以扩展为检测视频文件类型并从中读取元数据(参见例如http://code.google.com/p/mutagen/issues/attachmentText?id=90&aid=900002000&name=itunes-video.patch),但并未明确设计用于此目的 .