What is the difference between these 2 wav files?

旧城冷巷雨未停 提交于 2019-12-08 06:41:02

问题


I am trying to use a program called arss to create a spectrogram from a wav file. I have 2 wav files, one works and the other does not (it was converted to wav from mp3).

The error that arss throws at me is This WAVE file is not currently supported. Which is fine, but I have no idea what parts of my wav file to change so that it will be supported. The docs don't help here (as far as I can tell)

When I run mediainfo on both wav files, I can the following specs:

working wav:

General
Complete name                            : working.wav
Format                                   : Wave
File size                                : 1.15 MiB
Duration                                 : 6 s 306 ms
Overall bit rate mode                    : Constant
Overall bit rate                         : 1 536 kb/s

Audio
Format                                   : PCM
Format settings                          : Little / Signed
Codec ID                                 : 1
Duration                                 : 6 s 306 ms
Bit rate mode                            : Constant
Bit rate                                 : 1 536 kb/s
Channel(s)                               : 2 channels
Sampling rate                            : 48.0 kHz
Bit depth                                : 16 bits
Stream size                              : 1.15 MiB (100%)

not working wav:

General
Complete name                            : not_working.wav
Format                                   : Wave
File size                                : 5.49 MiB
Duration                                 : 30 s 0 ms
Overall bit rate mode                    : Constant
Overall bit rate                         : 1 536 kb/s
Writing application                      : Lavf57.83.100

Audio
Format                                   : PCM
Format settings                          : Little / Signed
Codec ID                                 : 1
Duration                                 : 30 s 0 ms
Bit rate mode                            : Constant
Bit rate                                 : 1 536 kb/s
Channel(s)                               : 2 channels
Sampling rate                            : 48.0 kHz
Bit depth                                : 16 bits
Stream size                              : 5.49 MiB (100%)

Comparing the audio specs of both files, I can't tell any difference between anything other than the file size and duration. I even updated the Sampling rate of the non-working wav using ffmpeg so that it would match the working one at 48.0kHz, but no luck.

Any idea?

Both wav files are avaliable here


回答1:


FFmpeg, by default, writes a LIST chunk, with some metadata, before the data chunk. ARSS has a rigid parser and expects the data chunk to start at a fixed byte offset (0x24). FFmpeg can be told to skip writing the LIST chunk using the bitexact option.

ffmpeg -i not_working.wav -c copy -bitexact new.wav

Note that ARSS doesn't check for sampling rate, only that WAVs have little endian PCM.

Here's a related Q, not quite a duplicate, linked for future readers:

ffmpeg - Making a Clean WAV file



来源:https://stackoverflow.com/questions/51839572/what-is-the-difference-between-these-2-wav-files

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!