无法使用 ffmpeg 将评论元数据提供给 MP3 文件

Can't give metadata of comment to MP3 file using ffmpeg

我想将 AAC 转换为 MP3,并使用 ffmpeg 为 MP3 文件提供评论元数据。
但是 -metadata comment 不起作用并且 ffmpeg 没有 return 任何错误。

我的代码是 ffmpeg -i "test.aac" -ab 128k -metadata comment='this is test' "test.mp3"

我尝试了 -metadata description='this is test' 并更新了 ffmpeg。 -metadata artist-metadata album 等其他函数运行良好。

这段代码有什么问题?

输出

Stream mapping:
  Stream #0:0 -> #0:0 (aac (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
Output #0, mp3, to 'test.mp3':
  Metadata:
    description     : this is test
    TSSE            : Lavf58.29.100
    Stream #0:0: Audio: mp3 (libmp3lame), 48000 Hz, stereo, fltp, 128 kb/s
    Metadata:
      encoder         : Lavc58.54.100 libmp3lame

环境
ffmpeg 版本 4.2.2 版权所有 (c) 2000-2019 the FFmpeg developers
使用 Apple clang 版本 11.0.3 (clang-1103.0.32.59) 构建

试试这个:

ffmpeg -i test.aac -c copy -metadata comment='this is test' -b:a 128k test.mp3

此处-b:a用于设置音频比特率

可能存在错误。 ffmpeg 正在将评论元数据写入为 用户文本框 (TXXX) 而不是预期的 comment (COMM).

目前我建议使用不同的评论标签工具。 eyeD3 示例:

eyeD3 --comment "added a comment" input.mp3

ffmpeg 默认写一个 ID3v2 tag to MP3 output files. As of version 4.3.1 (or even snapshot 2021-02-10) 它仍然被错误地写成 TXXX 帧而不是 COMM - /libavformat/id3v2.c 无处处理所需的关联,并且 /libavformat/id3v2enc.c 表示 -comment参数仅在提供要嵌入的图形(即专辑封面)时使用。

作为替代方案,您可以强制使用 ID3v1 标签(具有所有缺点)。您还必须禁用 ID3v2 标记创建,因为几乎所有遇到两个 ID3 版本的软件都更喜欢 v2 中的数据而不是 v1。要添加的参数将是-write_id3v1 true -id3v2_version 0,所以整体执行是:

ffmpeg -i "test.aac" -ab 128k -metadata comment='this is test' -write_id3v1 true -id3v2_version 0 "test.mp3"

这按预期工作:没有 ID3v2 标签,只有一个 ID3v1 标签,其中只填充了评论。