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

Ffmpeg在更改比特率时使音频变长,ffmpeg,aac,Ffmpeg,Aac,我一直在使用ffmpeg将音频从一种格式转换为另一种格式,并更改音频的比特率。当我尝试使用以下命令将aac音频转换为mp3音频时: ffmpeg-i SomeAudio.aac-c:a mp3-b:a 128k SomeOutputPath.mp3 一切正常,输出音频与输入音频长度相同(6分15秒) 但是,当我尝试使用类似命令将其转换为aac音频时: ffmpeg-i SomeAudio.aac-c:aac-b:128k SomeOutputPath.aac 它使输出音频更长(约10分钟)。我已

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

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

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

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

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

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

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

以下是屏幕截图的链接:

我怀疑“从比特率估计持续时间,这可能不准确”(屏幕截图中的那个)是我问题的根源,但我只是在网上找不到任何有用的信息


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

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

ffmpeg -i input.aac -f null -
或者更快的“足够近”方法:

解决方法是重新复制到M4A:

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

当我在您发布的第三个命令中指定-b:a并且音频长度正确时,它会将其转换为指定的比特率。唯一的问题是,当我将其转换为aac扩展时,持续时间是错误的,我不明白为什么,因为我只是将音频流从m4a文件复制到aac文件,而m4a文件中的音频是aac格式(-I input.m4a-c:a copy output.aac)。因此,这种解决方法确实很好,但如果m4a可以在没有持续时间问题的情况下转换为aac,那将是一件令人惊讶的事情。再次非常感谢!:)@ReflexLevel0从
.aac
→ <代码>.m4a→
.aac
。问题是,
.aac
永远不能保证有准确的持续时间。我所说的“变通方法”是指,如果需要准确的持续时间,您应该使用
.m4a
而不是
.aac
。对不起,我应该更清楚这一点。
ffmpeg -i input.aac -c copy output.m4a