我目前正在开发一款嵌入式 Linux 视频服务器。当我将应用程序部署到我们计划用于生产的主板上时,我注意到音频很嘈杂。
我发现音频捕获应该抓取 640 字节数据(16 khz、1 通道、16 位宽度 @ 每个缓冲区 20 ms)。但是无论我如何抓取数据,它总是返回 682 字节,也就是说,假设我达到了采样率,即 21.3 ms 的数据。
我想,好吧,也许这只是一个 alsa 问题,所以我尝试了 pulse... 同样的问题是。然后我尝试使用 PTLib 直接从声卡抓取... 同样的问题是。我知道代码是正确的(因此问题出在这里而不是 stack overflow 上)。我应该寻找什么来解决这个问题?
为了达到抖动缓冲区的目的,我必须将正好 20 毫秒的数据传递给 rtp 流。有什么想法吗?
声卡是集成的 Realtek ALC888 6 通道高清音频编解码器。
答案1
我觉得这听起来像是硬件/芯片问题。这不是第一次硬件不遵循数据表。我会向驱动程序程序员核实。