我可能问错了问题,但我在这方面的知识非常有限。
我正在使用acmStreamConvert将PCM转换为GSM (6.10)。
音频格式:8 8khz,16位,单声道
对于PCM缓冲区大小,我使用640字节(320个样本)。对于GSM缓冲区,我使用了65字节。我的理解是GSM“总是”将320个样本转换为65个字节。
我问“块或流”的原因是,我想知道是否可以使用相同的acmStreamConvert句柄安全地转换多个音频流(实时)?我看到这个函数有一些用于ACM_STREAMCONVERTF_START、ACM_STREAMCONVERTF_END和ACM_STREAMCONVERTF_BLOCKALIGN的标志,但是我需要使用这个开始/结束序列吗?我知道这可能是一些使用头/尾的格式所必需的,但我希望这不是GSM格式所必需的?
我在一个群VOIP客户端上工作,每个客户端发送GSM格式,然后需要在播放前转换为PCM。我希望每个客户端不需要一个ACM句柄。
发布于 2012-06-11 23:41:06
基于流的,或者至少是它的ACM API使用情况。尝试对多个流使用相同的ACM对象/句柄将产生意外的结果。我怀疑这也意味着它不能像其他编解码器那样处理丢失的数据包(还没有确认这一部分)。
https://stackoverflow.com/questions/10906305
复制相似问题