c# - 如何以编程方式确定 MP3 文件是 CBR 还是 VBR? (最好使用c#)

标签 c# mp3

我知道有许多实用程序可以告诉我 MP3 文件的比特率,但我从未见过可以告诉我 MP3 文件是否为 VBR(可变比特率 - 比特率在文件内波动)的实用程序) 或 CBR(恒定比特率 - 比特率在文件中保持不变)。我的猜测是大多数程序对发现这一点不感兴趣,因为它涉及对文件进行某种程度的分析以查看比特率是否发生变化,这会降低速度。

因此,我想编写一个实用程序来代替寻​​找实用程序 - 那么我如何以编程方式确定 MP3 文件是 VBR 还是 CBR?我有大约 15,000 个文件要查找,因此我需要自动化该过程。

最佳答案

MP3 文件本质上是由所谓的帧构成的。每个帧都有一个小标题,用于存储有关帧的信息。 header 还存储帧使用的比特率。在 CBR 文件中,所有帧都使用相同的比特率,因此每个 header 都具有相同的比特率信息。

要检测文件是否使用 VBR,您必须遍历文件的每一帧,查看 header 并检查比特率字段是否发生变化。如果是,则它是 VBR MP3。

MP3 格式的完整描述在这里:http://www.mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm

关于c# - 如何以编程方式确定 MP3 文件是 CBR 还是 VBR? (最好使用c#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/196418/

相关文章:

python - 如何在 Python 中唯一标识媒体文件的内容,而不是元数据?

ffmpeg - 使用ffmpeg将mp3中的 "start"字段设置为0

c# - 通用类和 Type.GetType()

c# - 创建一个矩形以覆盖旋转后的 Microsoft.XNA.Framework.Rectangle

c# - .Net Framework 4.0 中的 SMO 程序集

function - 我正在寻找一种简单的解决方案,使用下面的现有代码单击缩略图,即可加载新的/不同的mp3声音文件

perl - 无法重新组合 MP3 数据的分块下载

c# - SQL 数值列禁止间隙

c# - 对 LINQ 查询进行分组

python - 生成一个 15Khz 音调的声音文件