我正在尝试使用名为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%)
无法正常工作:
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
答案 0 :(得分:2)
FFmpeg默认情况下在数据块之前写入一个LIST块以及一些元数据。 ARSS具有严格的解析器,希望数据块以固定的字节偏移量(0x24)开始。可以告诉FFmpeg使用bitexact选项跳过写LIST块。
ffmpeg -i not_working.wav -c copy -bitexact new.wav
请注意,ARSS不会检查采样率,只是WAV的字节序PCM很少。
这里有一个相关的问题,并非完全重复,供以后的读者使用: