解码G711(PCM u-law)

问题描述 投票:0回答:2

请耐心等待,因为我对音频编解码器的理解有限。 我有来自 IPCAM 的音频源(通过 htto//... CGI 接口)。 我正在尝试编写几个客户端程序来在 Windows、MAC 以及 Android 手机上播放此音频源。音频采用 G711 (PCM ulaw) 编码。

我是否需要将 PCM 音频数据解码为原始音频数据,然后才能将其传递给音频引擎进行播放?如果是这样,是否有一些关于如何解码它的示例代码? 我很困惑,因为我相信 PCM 已经是 RAW 了。例如,我可以将其直接输入到 Android 上的音频引擎吗?

提前非常感谢

audio decode pcm mu-law
2个回答
6
投票

这取决于您使用什么 API 来播放声音,但大多数都需要线性 PCM,并且您有 µ-law PCM,因此除非您的 API 支持 µ-law 播放,否则您需要将 µ-law 样本值转换为线性。

使用 G.711,压缩的 µ 律样本为 8 位,这些样本将转换为 14 位线性值,您将其作为每个样本 2 个字节存储在缓冲区中。 G.711 维基百科页面上有 µ-law 编码的简要描述。


2
投票

您可能会发现这很有用:

C 中的 u-Law 压扩算法

© www.soinside.com 2019 - 2024. All rights reserved.