将 ffmpeg FLAC 转换为 MP3 后,Mp3tag 中的歌曲长度(持续时间)值不正确

问题描述 投票:0回答:1

问题

根据这篇文章,我使用以下命令将 flac 文件转换为 mp3,同时保留所有元数据:

ffmpeg -i input.flac -ab 320k -map_metadata 0 -id3v2_version 3 output.mp3

右键单击转换后的 mp3 文件,转到“属性”,然后转到“详细信息”来检查转换后的 mp3 文件时,一切看起来都按顺序进行。 “长度”的值是正确的。

用Mp3tag检查转换后的mp3文件时,“Length”的值不同。根据我的测试,“长度”值始终约为预期值的 28%。

通常情况下,这不是问题。我使用的大多数音乐播放器都会读取正确的长度值,与 Windows 相同。然而,我最近发现 Spotify Mobile 由于某种原因忽略了 Windows 面板中可以看到的长度值,而使用了 Mp3tag 中可以看到的长度值。

我想弄清楚我应该使用什么命令,以便在将 flac 文件转换为 mp3 后,Mp3tag 显示正确的长度,从而 Spotify Mobile 也读取正确的长度。

我尝试过的

1. 将文件转换为 Mp3 后,我尝试使用以下命令将 mp3 文件重新编码为... mp3 文件:

ffmpeg -i original.mp3 -c:v copy -c:a mp3 -vn -ar 44100 -ac 2 -b:a 320k copy.mp3

如上图所示,这解决了问题,并且长度在 Mp3tag 和 Spotify Mobile 中正确显示。

与此相关的问题:重新编码会降低质量,而且我不知道如何将之前的 flac 转换命令和这个命令合并到一行中。

2. 我尝试了https://cloudconvert.com/flac-to-mp3并且成功了。 Mp3tag 中长度显示正确。 (他们在服务器上使用了什么命令???)

与此相关的问题:我不想依赖云服务进行转换,我有很多文件要转换,我更喜欢在本地完成。

一些演示文件

这里是一个文件夹,其中有一个 flac 文件、一个坏的 mp3 文件(长度错误)和一个好的 mp3 文件。看起来,如果您在 Google Drive 中预览音乐,它也会播放错误的 mp3 长度(39 秒而不是 2 分 19 秒),而 vlc、groove 播放器、Spotify(桌面版而非移动版)都播放正确的完整长度(2 分 19 秒)坏的 mp3 文件。

文件夹:这是链接

audio ffmpeg mp3 converters flac
1个回答
1
投票

我的 ffmpeg 版本好像已经过时了...(ffmpeg 版本 git-2020-05-23-26b4509)我更新到最新版本,问题就消失了。我从惨痛的教训中吸取了教训。

仍然希望能解释为什么会发生这种情况。我很好奇。为什么长度有两个值?

© www.soinside.com 2019 - 2024. All rights reserved.