首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Twilio Voice时间戳

Twilio Voice时间戳
EN

Stack Overflow用户
提问于 2019-11-27 03:06:15
回答 1查看 181关注 0票数 0

我们的应用程序使用了用于iOS、安卓和网络的Twilio voice SDK。我们的用例依赖于精确的设备同步和时间戳。我们在多个相邻设备上播放音频流(在Twilio电话会议中),并且需要音频播放同步。大多数情况下,它工作得很好,但每隔一段时间,其中一台设备就会有点落后,整个体验都会被打乱。我们想要检测设备何时落后(延迟接收数据包),这样我们就可以暂时将其静音,这样它就不会影响我们想要的用户体验。

我们相信Twilio voice在底层使用了实时通信(web RTC)和实时传输协议(RTP)。我们还相信RTP具有发送和接收数据包的时间戳信息。

我们正在寻找关于如何读取此时间戳信息(包括发送和接收)以检测设备同步问题的任何建议。

我们的iOS和安卓客户端都是使用Flutter & Dart构建的,所以任何使用Dart查看数据包信息的方式都会很棒。如果没有,我们可以通过Swift和Kotlin使用本地通道。对于web,我们需要一种使用javascript查看时间戳数据的方法。

如果可能,我们希望通过SDK访问此信息。我在Twilio的语音文档中没有看到任何关于时间戳的东西。因此,如果不可能,我们可能不得不在设备上嗅探数据包?这样,我们就可以查看来自Twilio的RTP数据包,以了解可用的信息。当然,只要不违反Twilio服务条款:)

EN

回答 1

Stack Overflow用户

发布于 2019-11-28 23:22:42

即使你能得到这些信息,我也不认为它是有用的。RTP中的timestamp字段与实时关系不大。在语音中,它实际上是音频流中的样本偏移量。对于典型的具有固定比特率和无静音抑制的窄带编解码器,它完全可以从RTP序列号中预测出来。例如,对于G.711的20ms数据包,它将恰好递增160个数据包。

RTP接收器期望在数据包的接收时间和其时间戳之间存在随机变化-称为抖动。这是由发送方、网络和接收方的延迟引入的。这就是为什么接收器使用抖动缓冲器来减少播放时缓冲器欠载的可能性。RTCP的抖动定义- the interarrival jitter -是测量这一点的计算。也就是说,(可预测的) RTP时间戳和接收器处测量的挂钟时间之间的变化。

也许您的客户端和服务器之间需要更多类似于NTP协议的东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59057830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档