【发布时间】:2013-07-14 12:00:22
【问题描述】:
我们应该查看哪个 SIP 库来解决运行 OS 4.0 及更高版本的 Android 手机的音频延迟/延迟问题?
我们的实验表明延迟是 SIP 库问题。如果不是图书馆问题,还能是什么?
我们为 Android 和 iPhone 构建了一个简单的 VOIP 应用程序。您只需拨打另一个用户的来电显示,按下呼叫,然后开始与他们交谈。 iPhone 版本运行良好,我们为 SIP 功能使用了商业 API。但是由于音频延迟问题,Android 版本的效果不太好,这似乎取决于您拥有的 Android 手机。我们使用了以下Android SIP library。
我们的实验和发现
当我们在一部安卓手机和另一部安卓手机之间进行通话时,音频延迟过多。一个人会说些什么,可能需要整整 1-2 秒才能让另一个人听到。目前,这个问题似乎是三星设备所特有的,而不是其他硬件(尽管我们的测试受到了限制)。例如,Galaxy Note 1 调用 GS3 的延迟比 Galaxy Note 1 调用 Nexus 7 平板电脑 (Asus) 和 Galaxy Note 1 调用小米 MI-2 手机的延迟要长。
我们很确定我们已经消除了我们的 Asterisk 服务器作为延迟的可能原因,因为 iphone 到 iphone 的调用很棒,而且 iphone 到 android 的调用也很合理。
这是设备速度测试列表,按延迟升序排列
- iphone 到 iphone(最快,无明显延迟)
- android(三星)到 iphone(有点延迟,但仍然可以接受)
- android (samsung) to android (xiaomi MI-2)(有点延迟,但还可以接受)
- android (samsung) 到 android (asus)(延迟太大,不可接受)
- android (samsung) to android (samsung)(真的很慢,无法接受)
目前,我的团队倾向于认为我们使用的 Android SIP library 不够好。我们有兴趣使用另一个 SIP 库进行呼叫。
我们注意到像 CSipSimple 这样的其他 Android SIP 电话也遇到了这个问题。
有人对我们如何解决音频延迟/延迟问题有想法吗?
附加说明
我们注意到在 Galaxy Note 1 上使用 Skype 到 Galaxy S3 上的 Skype 时没有任何音频延迟。所以这就是为什么我们认为通过选择 SIP 库、编解码器或其他东西可能会解决这个问题......
我们知道我们正在使用G.711 Codec,以防万一。
【问题讨论】:
-
三星手机的呼叫建立时间(SIP 信令部分)是否也更高?如果只是音频面临延迟,那么它与三星手机的音频框架有关,在这种情况下,您对此无能为力。有什么方法可以对大部分延迟增加的地方进行一些分析?如果您可以原生进行媒体处理,那么我认为这将减少您的 E2E 延迟。
-
@Rajeev 感谢关于分析呼叫建立时间的建议。让我做一些分析看看。
-
@Rajeev 哦,我刚刚在我的问题中添加了以下注释:“我们注意到在 Galaxy Note 1 上使用 Skype 到 Galaxy S3 上的 Skype 时没有任何音频延迟。”
-
那么这就排除了音频框架问题的可能性,因为最终即使是 Skype 也必须使用相同的麦克风和扬声器/接收器资源。现在怀疑转移到编码器/解码器,或堆栈内的 RTP 数据处理。但正如您所说,相同的 android sip 堆栈在三星以外的 Android 手机上运行良好,因此 RTP 数据处理应该是相同的。所以最可能的原因是三星手机中使用的编码器/解码器。如果我想提供更多帮助,我真的应该研究 SIP 库。
-
@Rajeev 非常感谢您的评论。听到您表达类似的想法,我们再次放心