如何以编程方式确定WAV文件的采样率和比特率?

时间:2013-01-16 01:20:06

标签: wav

用户将WAV文件上传到我的服务。我需要以编程方式知道WAV文件的比特率和采样率。

我该怎么做?最好是在Windows上,虽然Unix工具也可以。命令行工具会很方便。

2 个答案:

答案 0 :(得分:2)

MediaInfo。此工具提供图形用户界面,命令行界面和库(.dll / .so / .dylib)。我更喜欢使用库。

如果您想尝试使用CLI,请参阅命令行示例。

MediaInfo.exe "--Inform=Audio;" --Output=XML "test.wav" --logfile=result.xml

然后我得到了一个result.xml。

<?xml version="1.0" encoding="UTF-8"?>
<Mediainfo version="0.7.61">
<File>
<track type="General">
<Complete_name>test.wav</Complete_name>
<Format>Wave</Format>
<File_size>14.2 KiB</File_size>
<Duration>659ms</Duration>
<Overall_bit_rate>177 Kbps</Overall_bit_rate>
</track>

<track type="Audio">
<ID>0</ID>
<Format>PCM</Format>
<Format_settings__Endianness>Little</Format_settings__Endianness>
<Codec_ID>1</Codec_ID>
<Duration>659ms</Duration>
<Bit_rate>176.4 Kbps</Bit_rate>
<Channel_s_>1 channel</Channel_s_>
<Sampling_rate>22.05 KHz</Sampling_rate>
<Bit_depth>8 bits</Bit_depth>
<Stream_size>14.2 KiB (100%)</Stream_size>
</track>

</File>
</Mediainfo>

只需解析此文件并找到字符串<Sampling_rate>22.05 KHz</Sampling_rate>

答案 1 :(得分:1)

从Sox下载Sox http://sox.sourceforge.net/

执行命令

sox --info filename.wav