首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python - CRC Lame标记eyeD3检查失败

Python - CRC Lame标记eyeD3检查失败
EN

Stack Overflow用户
提问于 2016-04-15 08:00:07
回答 7查看 4.4K关注 0票数 7

我正在尝试编写一个脚本来使用Python和eyeD3清理mp3文件名,但是当我尝试使用以下脚本加载一个mp3文件时,我得到了“WARNING:Eyd3.mp3.headers:Lame tag CRC check failed”的提示

代码语言:javascript
复制
import string
import os
import eyed3

count = 0

for root, dirs, filenames in os.walk('path'):
    for song in filenames:
        audiofile = eyed3.load(song)

因此,我无法重命名我的库中的大多数文件。在这个主题上有什么经验,或者有其他库可以使用吗?

EN

回答 7

Stack Overflow用户

发布于 2020-04-11 01:28:56

我发现了第一个方法来检测那些不幸发送到标准输出的eye3d“错误”:实际上,eyed3并不像它看起来那么脏,因为它的错误和实际上的log.warnings,所以我通过这样的方式查看日志得到了这些错误:-在eye3d调用之前,我将日志重定向到一个stringIO -在eye3d调用之后,我检查这个stringIO是否仍然是空的(或不是)。

示例代码:

代码语言:javascript
复制
import logging
import io
import eyed3

log_stream = io.StringIO()
logging.basicConfig(stream=log_stream, level=logging.INFO)
audiofile = eyed3.load('myfullfilename')
llog = log_stream.getvalue()
if llog:
    # deal here with the error message which in llog
    # and then purge the log_stream to reuse it for next eye3d call
    log_stream.truncate(0)
# all this code can be improved : enclose it in a try..catch, etc.
票数 1
EN

Stack Overflow用户

发布于 2020-10-02 09:05:34

看到几个问题没有明确的答案;这个问题似乎最有作用。我也遇到过这个问题,但很明显,这个错误与任何人的特定Python脚本无关。您可以通过运行命令行eyeD3工具进行判断,如下所示(输出已缩短):

代码语言:javascript
复制
% eyeD3 -v '03 - The Presidents Of The United States Of America - Lump.mp3'
eyed3.mp3.headers:WARNING: Lame tag CRC check failed
.../03 - The Presidents Of The United States Of America - Lump.mp3 [ 5.28 MB ]

ID3 v2.4:
title: Lump
artist: The Presidents Of The United States Of America

您可以通过以下方式查看有关LAME标记的更多信息:

代码语言:javascript
复制
% eyeD3 -P lameinfo '03 - The Presidents Of The United States Of America - Lump.mp3'
eyed3.mp3.headers:WARNING: Lame tag CRC check failed

Encoder Version     : LAME3.82U
LAME Tag Revision   : 10

Music CRC-16        : 5555
LAME Tag CRC-16     : 5555

我还没有真正研究过它,但我猜测它是如何工作的,那就是计算出的CRC与标签中的不匹配?

不幸的是,我不确定如何使用eyeD3或任何其他工具来修复这个LAME标记。然而,我能够修复的警告是重新编码和覆盖文件(在Mac上,我使用程序“开关声音文件转换器”)。LAME标签似乎在这个过程中丢失了(这是有意义的,因为LAME与编码相关):

代码语言:javascript
复制
% eyeD3 -P lameinfo '03 - The Presidents Of The United States Of America - Lump.mp3'

03 - The Presidents Of The United States Of America - Lump.mp3  [ 5.71 MB ]
-------------------------------------------------------------------------------
No LAME Tag

代码语言:javascript
复制
% eyeD3  '03 - The Presidents Of The United States Of America - Lump.mp3'
.../03 - The Presidents Of The United States Of America - Lump.mp3 [ 5.71 MB ]

ID3 v2.3:
title: Lump

因此,警告消失了(注意ID3标签版本也更改为旧版本……然后我使用一个名为Tagr的程序更新了标签,它写回了最新版本)。我现在不确定还能怎么做,但我很想知道是否有人对不同的工具有想法,或者对这一切是如何工作的有更深入的理解。

票数 1
EN

Stack Overflow用户

发布于 2016-10-18 11:55:29

我遇到了同样的问题,我的mp3文件是由ffmpeg生成的,有这个问题。而且,它没有任何信息集。

我手动(在Windows中,使用文件属性)只编辑了标题并将其设置为"X",之后我就可以使用eyed3而不会遇到CRC错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36636063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档