让我解释一下我所说的流畅音频流是什么意思。
我有一个 VOIP 应用程序,它通过 UDP 传输包装在 RTP 包中的 PCMU 编码音频。我已经实现了处理包裹丢失的机制(如 rfc3550 中所建议的)。
问题是由于平台限制(黑莓操作系统),我需要保持恒定的数据流,即我需要每 S 毫秒传递 X 个字节。
由于网络延迟、未传递的数据报等。我不能保证持续的数据流,所以我创建了一个单独的线程来补偿被丢弃或延迟传递的包与假包(“沉默”)。
所以我的问题是 - 谁能建议一种将假包和真包结合起来的好方法?我意识到添加假包会自动增加延迟,也许在那之后我应该忽略真正的 RTP 包,但正如我所说,这是因为平台限制,我愿意在音频质量上做出妥协,并有一些额外的演讲损失。
最佳答案
您需要阅读:
- 抖动缓冲器
- 丢包隐藏
它们的存在正是为了处理您正在处理的那类问题。
关于algorithm - RTP:推荐策略以实现流畅的音频流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6466527/