无法使用 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 标签,其中只填充了评论。
我想将 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 标签,其中只填充了评论。