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

约翰·G

背景:我正在编写一个python脚本,它将接收音频文件并使用pydub对其进行修改。Pydub似乎需要将音频输入转换为wav格式,该格式有4GB的限制。因此,我在pydub中放入了一个400MB .m4a文件,并收到一个错误消息,该文件太大。

我不想让pydub运行几分钟,而是在转换后的解压缩大小太大时引发错误,我想提前提前计算出解压缩后的文件大小。如果超过4GB,我的脚本将切碎原始音频,然后通过pydub运行。

谢谢。

戴维斯

计算理论上.WAV文件的大小是一种简单的算法。大小以字节为单位,是位深度除以8,乘以采样率,乘以持续时间,乘以通道数。

因此,如果您有一个3:20长,44100Hz,16位和立体声的音频剪辑,则计算将为:

sample_rate = 44100 # Hz/Samples per second - CD Quality
bit_depth = 16 # 2 bytes; CD quality
channels = 2 # stereo
duration = 200.0 # seconds

file_size = sample_rate * (bit_depth / 8) * channels * duration
        # = 44100 * (2) * 2 * 200
        # = 35280000 bytes
        # = 35.28 MB (megabytes)

我找到了这个在线音频文件大小计算器,您还可以使用它来确认数学:https : //www.colincrawley.com/audio-file-size-calculator/

相反,如果您想找出另一个方向,即理论上压缩文件的大小,则取决于您进行压缩的方式。幸运的是,典型的压缩仅使用固定的比特率,这意味着计算出最终压缩文件大小的数学方法非常简单。

因此,如果您有3:20的音频片段要转换为MP3,且比特率为128kbps(每秒千比特,常见的中档质量设置为128),则计算结果将是比特率除以8(位/字节)乘以持续时间:

bits_per_kb = 1000
bitrate_kbps = 128
bits_per_byte = 8
duration_seconds = 200
filesize_bytes = (bitrate_kbps * bits_per_kb / bits_per_byte) * duration_seconds
             # = (128000 / 8) * 200
             # = (16) * 200
             # = 3200000 bytes
             # = 3.2 MB

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在不丢失元数据的情况下将mp3转换为WAV?

使用LAME将音频文件从.wav转换为MP3时出现问题

使用 NAudio 将 .vox 音频文件转换为 .wav 或 .mp3

如何将3gp音频文件转换为mp3?

如何在(L)ubuntu中将`rm`和`ra`音频文件转换为mp3?

如何将.aif音频文件转换为mp3?

使用ffmpeg将音频文件转换为mp3

以低文件大小将 MP3 转换为 WAV

将 TTA 文件转换为 MP3 或 WAV 文件?

如何在C ++中通过FFmpeg将原始文件转换为音频文件(.wav)

如何在不使用显示的情况下将文本转换为语音,而是将文件保存为 mp3?(Python)

使用mplayer将.mp3转换为WAV文件

如何在静音段将音频文件(mp3或wav)划分为较小的文件

如何使用Swift在iOS中将音频格式从mp3转换为wav?

如何在没有大文件大小的情况下将JPG转换为PDF?

如何将音频从MP4或FLV视频文件转换为mp3?

通过 Flask 将音频文件从 mp3 转换为 flac,并保存在 Google Cloud Storage

如何在不实际运行的情况下测试可执行文件?

使用ffmpeg javascript将wav音频文件转换为pcm音频文件

如何使用命令行将 .m4a 音频文件转换为 .mp3?

如何将wav文件转换为内存中的mp3?

当我将带有ffmpeg的numpy数组转换为音频文件(python)时,mp3 / wav持续时间为何不同?

如何将G.723.1类型的音频文件转换为WAV格式?

我正在使用LAME将.wav文件转换为.mp3,如何在终端中附加传递的参数以输出.mp3名称?

如何在不改变音高和转换为WAV的情况下调整mp3歌曲的速度?

如何将未知文件转换为MP3?

如何在不实际滚动的情况下确定滚动方向

如何在Audacity中将WAV转换为MP3

如何使用Java将.wav转换为.mp3?