![汽车音响系统显示经过 ffmpeg 处理后 mp3 文件的持续时间变短](https://linux22.com/image/1547784/%E6%B1%BD%E8%BD%A6%E9%9F%B3%E5%93%8D%E7%B3%BB%E7%BB%9F%E6%98%BE%E7%A4%BA%E7%BB%8F%E8%BF%87%20ffmpeg%20%E5%A4%84%E7%90%86%E5%90%8E%20mp3%20%E6%96%87%E4%BB%B6%E7%9A%84%E6%8C%81%E7%BB%AD%E6%97%B6%E9%97%B4%E5%8F%98%E7%9F%AD.png)
我有大约 1200 个 mp3 文件(每个约 45 分钟),其中包含讲座(不是音乐),我使用了一些 ffmpeg 命令将它们的速度提高 1.5 倍,并将它们转换为 Mono 而不是 Sterio(以减小文件大小以适合 CD)。
我使用了这两个命令(分为两个阶段):
ffmpeg -i source.mp3 -filter:a "atempo=1.5,volume=1.2" -q:a 100 first_stage.mp3
ffmpeg -i first_stage.mp3 -ac 1 -b:a 32k final.mp3
在我批量执行完这些操作后,当我把它们放进我的车载 mp3 播放器时,我注意到所有的文件展示最长 7 分钟,但它们可以毫无问题地播放所有文件。我的车载 mp3 播放器显示倒计时,我过去常常查看每个文件的剩余时间,以了解是否要开始播放新文件等。
现在,所有文件都以 5 到 7 分钟开始(而不是 30-45 分钟),并且倒计时至零,并保持 0 直到文件结束,所以我盲目地完成讲座而没有计时器,这让我很烦人。
我该怎么做才能解决这个问题,即让车载播放器正确读取时间?
答案1
感谢@golimar的评论,我找到了解决方案
应该-write_xing 0
在输出文件名前添加参数。
转换(一行)应该是这样的:
ffmpeg -i source.mp3 -filter:a "atempo=1.5,volume=1.2" -q:a 100 -ac 1 -b:a 32k -write_xing 0 out.mp3