如何计算音频文件大小?

Posted

技术标签:

【中文标题】如何计算音频文件大小?【英文标题】:How to calculate audio file size? 【发布时间】:2012-11-13 10:09:19 【问题描述】:

您有 30 秒的音频文件,以 44.1 KHz 的速率采样并使用 8 位进行量化;计算此文件的单声道和立体声版本的比特率和大小 ؟؟

【问题讨论】:

你尝试过什么样的计算? kHz = "1000 per second", bitrate = "bits per second" - 数学相当明显。 文件大小单声道 30 * 44.1 = 1323 K 立体声 30 * 44.1 * 2 =2646k ------------------------- -------------- 比特率 = 文件大小/秒 ------------------------------但我对这一行的问题“并使用 8 位量化”它将如何影响数学??? @OsamaAl-far “使用 8 位量化”是毫无意义的。你能更好地描述你想要做什么吗?您的意思是音频以每个样本 8 位进行采样吗? @Brad 但在问题上它要求计算比特率,它等于 8 吗?? 【参考方案1】:

假设未压缩的 PCM 音频...

time * sampleRate * bitsPerSample * channelCount

44.1kHz、8bps 的 30 秒单声道音频,即 1,323,000 字节。对于立体声,这是两个通道,所以加倍。

【讨论】:

30 * 44.1 * 8 = 10584 。你是如何计算出 1,323,000 字节的。 ? 44.1k = 44100,不是 44.1,所以 30*44100*8。 @OsamaAl-far 要从位到字节,您必须除以 8【参考方案2】:

比特率是每秒的比特数。

bitrate = bitsPerSample * samplesPerSecond * channels

所以在这种情况下,立体声比特率为 8 * 44100 * 2 = 705,600kbps

要获取文件大小,请将比特率乘以持续时间(以秒为单位),然后除以 8(从比特到字节):

fileSize = (bitsPerSample * samplesPerSecond * channels * duration) / 8;

所以在这种情况下,30 秒的立体声将占用 (8 * 44100 * 2 * 30) / 8 = 2,646,000 字节

【讨论】:

你保存了我的考试! 我很确定这里的单位是错误的比特率计算?你确定你不是指每秒 705,600 比特而不是每秒 705,600 千比特......?【参考方案3】:

公式 = 采样率 x 采样位 x 通道数 x 时间(以秒为单位)/8x1024

CD 质量(采样率)= 44.1Khz

Size of mono = (44 100 x 8 x 1 x 30) / 8 x 1024
             = 1291.99KB
             = 1.26 MB


Size of Stereo = (44 100 x 8 x 2 x 30) / 8 x 1024
               = 2583.98 KB
               = 2.52 MB
               ≈ 2.5 MB 

【讨论】:

别忘了 CD 质量确实是 44.1khz,但 16 位,而不是 8 位。即使问题要求 8 位,这可能读起来有点混乱。

以上是关于如何计算音频文件大小?的主要内容,如果未能解决你的问题,请参考以下文章

怎样根据视频码率/音频码率/分辨率/时间长度/视频压缩格式/帧率,计算视频文件的大小?

MP3 样本大小?

iOS - 如何将混合音频合成导出到文件大小最小的文件?

FFMPEG调整音频文件音量大小

Python Librosa:用于计算 MFCC 特征的默认帧大小是多少?

如何在不实际转换的情况下确定转换后音频文件的理论文件大小(即 mp3 到 wav)