MP3歌曲名称在VLC中显示乱码的解决

MP3歌曲名称在VLC中显示乱码的解决

    • 0. 背景
    • 1. 使用 kid3 查看和修改(推荐这个工具):
      • 安装 `kid3`
      • 运行
    • 2. 用命令行工具 `mid3iconv`
      • 安装
    • 3. 如果想批量检查文件的 ID3 信息
    • 4. 其他从claude.ai获取的信息
      • ID3 标签的 Tag1 和 Tag2 代表的是不同版本的 ID3 标签格式:
      • python3-mutagen 是一个 Python 音频元数据处理库,它的主要功能包括:
    • 5. 感谢这个时代,有这么好的工具

0. 背景

从网上下载的mp3文件,有些曲目用VLC播放的时候,VLC标题栏中显示的歌曲名称是乱码。
此问题,在claude.ai(免费版)的帮助下得以解决。

一开始我还以为是文件名编码问题,和claude.ai描述的也不够清晰,因此初期不太有效。

直到我说:在VLC的标题栏显示的歌曲名称为乱码,并且只有部分歌曲显示有问题。claude.ai马上说“啊,原来是这样,这种情况应该是mp3文件内部的ID3标签编码问题。并且马上给出了建议解决方案:

1. 使用 kid3 查看和修改(推荐这个工具):

安装 kid3

sudo apt-get install kid3-qt

运行

kid3-qt

在 kid3 中你可以:

  • 查看当前标签编码
  • 批量转换标签编码
  • 根据文件名更新标签

2. 用命令行工具 mid3iconv

安装

# 安装工具
sudo apt-get install python3-mutagen

# 转换单个文件
mid3iconv -e GBK "陈瑞 - 500年情缘.mp3"

# 批量转换当前目录下所有 MP3
mid3iconv -e GBK *.mp3

3. 如果想批量检查文件的 ID3 信息

# 安装 id3v2
sudo apt-get install id3v2

# 查看标签信息
id3v2 -l "陈瑞 - 500年情缘.mp3"

于是在claude.ai的帮助下,进入歌曲所在目录,执行如下命令:

mid3iconv -e GBK *.mp3

再用VLC播放,问题果然解决了。

4. 其他从claude.ai获取的信息

ID3 标签的 Tag1 和 Tag2 代表的是不同版本的 ID3 标签格式:

ID3v1 (Tag1):

最早的标签格式,位于 MP3 文件末尾
固定长度 128 字节
包含的字段有限:

歌名(30 字节)
艺术家(30 字节)
专辑(30 字节)
年份(4 字节)
注释(30 字节)
流派(1 字节)

局限性:

不支持 Unicode,只能用 ASCII 或单一编码
字段长度固定且较短
信息量有限

ID3v2 (Tag2):

更新的标签格式,位于 MP3 文件开头
可变长度,理论上最大可达 256MB
支持更多字段:

所有 v1 的字段
封面图片
歌词
作曲家
版权信息
自定义字段等

优势:

支持 Unicode 编码
字段长度可变
可存储更丰富的信息
支持多语言

所以如果你在 kid3 中看到某些 MP3 文件同时有 Tag1 和 Tag2,这表示这个文件同时包含了两种格式的标签信息。通常建议使用 ID3v2,因为它支持更好的中文显示和更丰富的信息。

python3-mutagen 是一个 Python 音频元数据处理库,它的主要功能包括:

  1. 支持读取和修改多种音频格式的元数据(标签):

    • MP3 (ID3v1, ID3v2)
    • MP4/M4A/AAC
    • FLAC
    • OGG
    • WMA
    • WAV
    • AIFF
      等多种格式
  2. 提供多个命令行工具:

# 已经用过的 mp3 标签编码转换工具
mid3iconv

# mp3 标签查看和编辑
mid3v2

# 音频文件元数据查看工具
mutagen-inspect

# 音频文件元数据编辑工具
mutagen-pony
  1. 可以用于 Python 编程:
# 简单的使用示例
from mutagen import File
from mutagen.mp3 import MP3

# 读取 MP3 文件信息
audio = MP3("song.mp3")

# 获取基本信息
print(audio.info.length)  # 播放时长
print(audio.info.bitrate) # 比特率

# 读取标签
print(audio.tags['TIT2'])  # 歌名
print(audio.tags['TPE1'])  # 艺术家
  1. 主要用途:
  • 音乐播放器开发
  • 音频文件管理工具开发
  • 音频标签批处理
  • 音乐库管理软件
  • 音频文件信息提取和统计

所以 mid3iconv 只是 mutagen 提供的众多工具之一,这个包的功能远不止于此。

5. 感谢这个时代,有这么好的工具

上一篇:JVM入门教程:从概念到实践


下一篇:一篇文章解释AI中的“算力”与“数据”两个概念!