![如何检测WAV文件中的真实样本大小和通道数?](https://linux22.com/image/35115/%E5%A6%82%E4%BD%95%E6%A3%80%E6%B5%8BWAV%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E7%9C%9F%E5%AE%9E%E6%A0%B7%E6%9C%AC%E5%A4%A7%E5%B0%8F%E5%92%8C%E9%80%9A%E9%81%93%E6%95%B0%EF%BC%9F.png)
我对 WAV 文件遇到了这个奇妙的难题,但我无法检测到它的实际样本大小(即样本中有多少位)和通道数。
geek@liv-inspiron:~$ soxi file.wav
Input File : 'file.wav'
Channels : 2
Sample Rate : 44100
Precision : 16-bit
Duration : 00:03:19.56 = 8800596 samples = 14967 CDDA sectors
File Size : 35.2M
Bit Rate : 1.41M
Sample Encoding: 16-bit Signed Integer PCM
MPlayer2 报告以下内容(但我只能听到噪音):
geek@liv-inspiron:~$ mplayer file.wav
MPlayer2 2.0-701-gd4c5b7f-2ubuntu2 (C) 2000-2012 MPlayer Team
Playing file.wav.
Detected file format: WAV / WAVE (Waveform Audio) (libavformat)
[wav @ 0x7f21516c9600]max_analyze_duration reached
[lavf] stream 0: audio (pcm_s16le), -aid 0
Load subtitles in .
Selected audio codec: Uncompressed PCM [pcm]
AUDIO: 44100 Hz, 2 ch, s16le, 1411.2 kbit/100.00% (ratio: 176400->176400)
AO: [alsa] 44100Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
虽然 MPlayer 输出实际声音,并且似乎检测到 DTS 格式:
geek@liv-inspiron:~$ mplayer file.wav
MPlayer 1.1-4.8 (C) 2000-2012 MPlayer Team
Playing file.wav.
libavformat version 54.20.3 (external)
Audio only file format detected.
Load subtitles in ./
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 54.35.0 (external)
AUDIO: 44100 Hz, 2 ch, floatle, 1411.2 kbit/50.00% (ratio: 176400->352800)
Selected audio codec: [ffdca] afm: ffmpeg (FFmpeg DTS)
==========================================================================
AO: [pulse] 44100Hz 2ch floatle (4 bytes per sample)
Video: no video
Starting playback...
如果我用 VLC 播放它,它也输出实际声音,它会报告:
Type: Audio
Codec: DTS Audio (dts )
Channels: 3F2R/LFE
Sample rate: 44100 Hz
Bitrate: 1411 kb/s
一些快速数学计算得出 1411 ∕ 44.1 ≈ 31.995465,这意味着 32 位样本大小。那么它是哪一种:16 位还是 32 位?或者每个通道 16 位?
它有多少个频道?立体声中的 2 个还是 DTS 中的 5 个?信息又矛盾了……
换句话说,是否有一种工具可以准确报告 WAV 文件的技术数据,而不会被错误的标头所困扰?
答案1
MediaInfo 是视频和音频文件最相关的技术和标签数据的便捷统一显示。
geek@liv-inspiron:~$ mediainfo file.wav
General
Complete name : file.wav
Format : Wave
File size : 33.6 MiB
Duration : 3mn 19s
Overall bit rate mode : Constant
Overall bit rate : 1 411 Kbps
Audio
Format : DTS
Format/Info : Digital Theater Systems
Mode : 14
Format settings, Endianness : Little
Codec ID : 1
Duration : 3mn 19s
Bit rate mode : Constant
Bit rate : 1 411.2 Kbps
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 44.1 KHz
Bit depth : 24 bits
Compression mode : Lossy
Stream size : 33.6 MiB (100%)
这将确认特定文件是具有 6 个通道的 DTS,但有趣的是样本大小实际上是 24 位,并且奇怪的是压缩模式是有损的。
还可以通过 GUI 使用此实用程序:mediainfo-gui
。
答案2
看起来像 dts-wav。其中许多文件都有一个标头格式 ID,表明是 PCM,但实际的字节流是 DTS。这解释了 soxi 输出。
如果您安装了最新版本(2007 或更高版本)的 ffmpeg/libavcodec,mplayer 应该能够检测到并使用适当的非 PCM 编解码器。
VLC 输出意味着您拥有 5.1 配置(6 通道)的 DTS。
答案3
对于一个有用的在线拖放式“免费在线 EXIF 查看器”,它可以为您提供您想要的所有数据,请尝试
更新
网站的 URL 已更改,但功能相同。
如果您想了解可以从该网站获得什么的详细信息,请查看这个答案在超级用户上。