Ffmpeg 在更改比特率时使音频更长

Ffmpeg makes audio longer when changing bitrate

我一直在使用 ffmpeg 将音频从一种格式转换为另一种格式并更改音频的比特率。当我尝试使用以下命令将 aac 音频转换为 mp3 音频时:

ffmpeg -i SomeAudio.aac -c:a mp3 -b:a 128k SomeOutputPath.mp3

一切正常,输出音频的长度与输入音频的长度相同(6 分 15 秒)。

但是,当我尝试使用类似的命令将其转换为 aac 音频时:

ffmpeg -i SomeAudio.aac -c:a aac -b:a 128k SomeOutputPath.aac

它使输出音频更长(大约 10 分钟)。我已经尝试指定输出长度,但这仍然会使视频变长,它只是削减了部分音频:

ffmpeg -i SomeAudio.aac -c:a aac -b:a 128k -t 00:06:15 SomeOutputPath.aac

这里是link截图:

我怀疑消息 "Estimating duration from bitrate, this may be innacurate"(屏幕截图中的那条)是我问题的根源,但我一直无法在网上找到任何关于它的有用信息。

非常感谢您的提前帮助:)

显示的原始 AAC 持续时间是一个猜测,因为它不包含持续时间信息。您可以通过以下方式找到实际持续时间:

ffmpeg -i input.aac -f null -

或更快的 "close enough" 方法:

ffmpeg -i input.aac -c copy -f null -

解决方法是重新合成为 M4A:

ffmpeg -i input.aac -c copy output.m4a