0

我目前正在从事一个需要我处理 mpeg-2 文件的学校项目。目前,我正在使用诱变剂为我的 mpeg 文件提取元数据。但是,当我尝试获取标题、艺术家、专辑等的元数据时,它会显示以下错误。[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
4

1 回答 1

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)但它不是为此目的而明确设计的。

于 2013-11-20T12:20:32.170 回答