gpt4 book ai didi

php - 为什么使用 ffmpeg 将比特率从 124 转换为 96 会减少我的 mp3 文件的持续时间?

转载 作者:行者123 更新时间:2023-12-04 23:12:48 25 4
gpt4 key购买 nike

我想将我的 mp3 文件转换为较低的比特率。但是从 124K 转换为 96k 后,我的文件持续时间从 4:01 减少到 3:54。为什么呢?

用于转换的语法是:

exec("ffmpeg -i com.mp3 -b:a 96k com96.mp3");

最初的持续时间是 4:01,但转换后变为 3:54。我的语法有什么问题,还是 mp3 文件在从较高比特率转换到较低比特率的过程中丢失了一些数据?

最佳答案

124k 不是 MP3 的正常比特率。要么您的文件使用自由格式的恒定比特率(非常罕见......我实际上从未见过),或者这个比特率是一些可变比特率帧的平均值。

是什么让你认为这个文件是 124k 和 04:01 的持续时间?

我怀疑你有一个普通的 VBR 文件,无论向你展示的是使用帧的平均值来显示比特率,并使用该平均值与以字节为单位的文件大小来估计持续时间。

MP3 没有内置时间戳。它只是MPEG帧之后的MPEG帧,直到结束。如果没有额外的元数据或将其混合到另一个容器中,获得持续时间的唯一方法是读取整个文件,或者根据比特率和文件大小估计持续时间。使用可变比特率,您可以预期您的持续时间有些不准确。

我怀疑文件中的实际音频持续时间是 03:54。

最后,我不知道你的用例是什么,但是128k和96k的大小差别不是很大,但质量差别是。如果你想节省带宽,有更好的编解码器(即 Opus 或 AAC)。此外,您不应该从一个有损编解码器转到另一个有损编解码器……您最终会在尝试编码伪影时浪费带宽,从而进一步损害质量。

关于php - 为什么使用 ffmpeg 将比特率从 124 转换为 96 会减少我的 mp3 文件的持续时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61631647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com