标签: adpcm

如何使用sox将无头的ima-adpcm原始文件转换为wav

我试图将原始文件(无标题)转换为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
Run Code Online (Sandbox Code Playgroud)

这些触发相同的错误:

sox FAIL formats: bad input format for file `input.raw': data encoding or sample size was not specified
Run Code Online (Sandbox Code Playgroud)

最后的尝试

sox -t raw -t wav -e ima-adpcm -r 8000 -b 16 input.raw output.wav
Run Code Online (Sandbox Code Playgroud)

这会触发另一个错误

sox FAIL formats: can't open input file `input.raw': WAVE: RIFF header not found
Run Code Online (Sandbox Code Playgroud)

你知道为什么我会收到这些错误吗?

谢谢

编辑

前48个字节FYI的十六进制转储

C0 0C 00 03 00 00 37 C0 34 0C …
Run Code Online (Sandbox Code Playgroud)

audio wav pcm sox adpcm

7
推荐指数
2
解决办法
5611
查看次数

OpenAL:alBufferData 返回 AL_INVALID_VALUE,即使输入变量 *看起来* 正常?

因此,我正在构建一个线程 IMA ADPCM 解码器,将音频数据流式传输到 OpenAL (请参阅下面的简短描述),但我遇到了一些麻烦。

我的问题之一是有时我对 alBufferData 的调用:

alBufferData(*bufferID, format, pcmData, sizeInBytes, bitRate);

AL_INVALID_VALUE即使在检查参数时也会返回,例如,如下所示:

bufferID='109770616', format='AL_FORMAT_STEREO16', dataPtr='109754188', sizeInBytes='8164'

有任何线索吗?发生这种情况时,实际播放的声音会有些卡顿,并且错误通常会连续发生约 10 次(在同一声音上)。当我重复启动相同的声音时,通常也会发生这种情况(例如,用轻机枪进行短时间连发射击时......;))

流媒体解码器模块的快速简化浏览

声音的播放方式:

  1. 触发声音播放。
  2. 一个 bufferSize 大小的音频被解码,其余的则排队等待进一步解码。
  3. OpenAL 被触发开始播放声音。

解码/流媒体循环

  1. 对于每个排队等待解码的声音,解码 bufferSize 大小的音频。
  2. 解码后的音频将添加到具有适当 bufferID 的 alBuffer(请参阅上面的调用)中。

audio openal audio-streaming adpcm

5
推荐指数
1
解决办法
5408
查看次数

标签 统计

adpcm ×2

audio ×2

audio-streaming ×1

openal ×1

pcm ×1

sox ×1

wav ×1