【发布时间】:2019-01-08 02:32:14
【问题描述】:
我正在使用 ffmpeg 更改我的 mp3 文件的比特率。它运作良好,但有一点非常令人沮丧。
ffmpeg 会自动更改一些元数据字段。具体来说,它将 ID3v2.3 转换为 ID3v2.4,但它不正确。例如,它写入了 ID3v2.4 中实际上不存在的TYER 字段。但最令人沮丧的是,它将USLT 字段转换为lyrics-LANGCODE(如lyrics-eng)。大多数音乐播放器无法识别此标签!
我不希望 ffmpeg 弄乱元数据字段。我只是想让它改变比特率。有没有办法告诉 ffmpeg 它不应该触及任何元数据字段?
我在 Windows 64 位中运行 ffmpeg 4.0.2。选项是:
ffmpeg -i input.mp3 -codec:a libmp3lame -b:a 128k output.mp3
不,-id3v2_version 3 没有帮助。它纠正了TYER 的问题,但没有纠正歌词问题。
【问题讨论】:
-
FFmpeg 将重写标签,默认版本为 2.4。歌词也将如您所见。你能用输出文件再次确认 TYER 是用你的第一个命令编写的吗?
-
@Gyan 是的,如果原始文件是 2.3,它会写入 TYER。但是,如果原始文件是 2.4,则不会。
-
这里无法重现。用 Exiftool 检查。创建后是否在单独的命令中检查输出?
-
我使用
strings重新检查。它在我的输入中;它有-id3v2_version 3输出;没有。 -
输入标签格式错误。 TYER 应该是 exactly 4(+1) 个字符;在您的输入中,它是 10 个字符。 ffmpeg 的 ID3 解析器不会完全中止并将 TXXX 帧中的键+值写入输出。可能被视为错误。
标签: ffmpeg