这两个 wav 文件有什么区别?

What is the difference between these 2 wav files?

我正在尝试使用名为 arss 的程序从 wav 文件创建频谱图。我有 2 个 wav 文件,一个有效,另一个无效(它是从 mp3 转换为 wav)。

arss 抛给我的错误是:

This WAVE file is not currently supported.

很好,但我不知道要更改我的 wav 文件的哪些部分,以便 得到支持。文档在这里没有帮助(据我所知)

当我在两个 wav 文件上 运行 mediainfo 时,我得到以下规格:

工作波形:

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

不工作 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%)

比较两个文件的音频规格,除了文件大小和持续时间外,我看不出任何区别。我什至使用 ffmpeg 更新了非工作 wav 的采样率,使其与 48.0kHz 的工作 wav 匹配,但运气不好。

有什么想法吗?

两个 wav 文件都可用 here

默认情况下,FFmpeg 在数据块之前写入一个带有一些元数据的 LIST 块。 ARSS 有一个严格的解析器,并期望数据块从固定字节偏移量 (0x24) 开始。可以告诉 FFmpeg 使用 bitexact 选项跳过写入 LIST 块。

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

请注意,ARSS 不检查采样率,只检查 WAV 是否​​有小端 PCM。

这是一个相关的问题,不是完全重复,为未来的读者链接:

我有一个旧版本的 ffmpeg,仅 -bitextact 选项并没有帮助 。也就是说,它确实从 hunk 中删除了一些数据,但是 LIST hunk 仍然存在 other data.

您可能还需要使用 -map_metadata 选项要求完全不提供元数据,如下所示:

ffmpeg ... -i <input> ... -flags +bitexact -map_metadata -1 ... <output>

(...根据您的情况使用其他命令行选项表示位置)

通过添加 -map_metadata -1,它确实删除了所有内容,LIST 大块头现在完全消失了。