我正在尝试将原始文件(无标头)转换为wav
它采用ADPCM 16速率8000
我已经尝试了三个控制台命令
sox -e ima-adpcm -r 8000 input.raw output.wav
sox -e ima-adpcm -r 8000 -b 16 input.raw output.wav这些都会触发相同的错误:
sox FAIL formats: bad input format for file `input.raw': data encoding or sample size was not specified最后一次尝试
sox -t raw -t wav -e ima-adpcm -r 8000 -b 16 input.raw output.wav这会触发另一个错误
sox FAIL formats: can't open input file `input.raw': WAVE: RIFF header not found你知道为什么我会得到这些错误吗?
谢谢
编辑
FYI的前48字节的十六进制转储
C0 0C 00 03 00 00 37 C0 34 0C D0 30 37 C0 30 C7 CD D3 C0 03 CD 00 37 03
C0 00 0D 0C CD 00 C0 10 0F 00 03 55 0B 4B 0F 0F 0C 0F 34 0F 0D C3 0D 03
00 C0 31 00 00 D0 C0 00 F4 4C 03 33 34 33 31 33 0D 33 D0 03 C0 4C C0 43发布于 2015-09-19 20:48:28
看起来使用-t raw -e ima-adpcm是行不通的,但是你必须使用-t ima -e ima-adpcm。
我猜-t raw的意思是原始的PCM,而-t ima的意思是原始的ADPCM?
这对我将ADPCM文件转换成.wav很有效:
sox -t ima -r 44100 -e ima-adpcm in.raw -e signed-integer -b 16 out.wav只要您使用-t ima指示ADPCM,文件扩展名似乎就无关紧要。
发布于 2014-08-07 09:13:23
您可以将文件名从input.raw更改为input.ima吗?如果可以,那么
sox input.ima -r 8000 -b 16 output.wav应该行得通。.raw似乎是sox的一个神奇扩展,它假定了数据的某些可能性。参见this man page。
https://stackoverflow.com/questions/24951633
复制相似问题