Como detectar o tamanho real da amostra e o número de canais no arquivo WAV?

4

Eu tenho esse enigma maravilhoso com um arquivo WAV, enquanto não consigo detectar o tamanho real da amostra (ou seja, quantos bits estão em uma amostra) e o número de canais.

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

O MPlayer2 relata o seguinte (mas só consigo ouvir o ruído):

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...

Enquanto o MPlayer produz o som real e parece detectar um formato 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...

E se eu reproduzi-lo com VLC, que também produz som real, ele relata:

Type: Audio
Codec: DTS Audio (dts )
Channels: 3F2R/LFE
Sample rate: 44100 Hz
Bitrate: 1411 kb/s

Alguma matemática rápida produz 1411 ∕ 44,1 ≈ 31.995465, o que implica em um tamanho de amostra de 32 bits. Então qual é: 16 bits ou 32 bits? Ou é de 16 bits por canal?

E quantos canais tem? 2 como em Stereo ou 5 como em DTS? A informação está novamente em conflito ...

Em outras palavras, existe uma ferramenta que pode relatar com precisão os dados técnicos de um arquivo WAV, sem ficar confuso com cabeçalhos errados?

    
por landroni 22.12.2014 / 01:19

3 respostas

6

Como apontado em esta questão , um excelente utilitário para essa tarefa é MediaInfo .

MediaInfo is a convenient unified display of the most relevant technical and tag data for video and audio files.

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%)

Isso confirmaria que o arquivo específico é DTS com 6 canais, mas é interessante notar que o tamanho da amostra é, na verdade, 24 bits e, estranhamente, que o modo de compactação é com perdas.

Também é possível usar esse utilitário por meio de uma GUI: mediainfo-gui .

    
por 26.12.2014 / 00:08
1

Parece com o dts-wav. Muitos desses arquivos têm um ID de formato de cabeçalho que sugere PCM, mas o fluxo de bytes real é DTS. Isso explica a saída do soxi.

Se você tem uma versão recente (2007 ou posterior) do ffmpeg / libavcodec instalada, o mplayer deve ser capaz de detectar isso e usar o codec não-PCM apropriado.

A saída do VLC implica que você tem o DTS com uma configuração 5.1 (6 canais).

    
por 22.12.2014 / 02:49
0

Para um útil on-line, clique e arraste "Free Online EXIF Viewer", que lhe dará todos os dados desejados, tente

link

Se você quiser detalhes sobre o que pode obter desse site, confira esta resposta no Superusuário.

    
por 15.11.2018 / 17:49

Tags