opentok-network-test, 测试网络连接和统计数据( bps,数据包丢失)的样例应用

分享于 

7分钟阅读

GitHub

  繁體 雙語
Sample app to test network connectivity and statistics (bps, packet-lost)
  • 源代码名称:opentok-network-test
  • 源代码网址:http://www.github.com/opentok/opentok-network-test
  • opentok-network-test源代码文档
  • opentok-network-test源代码下载
  • Git URL:
    git://www.github.com/opentok/opentok-network-test.git
    Git Clone代码到本地:
    git clone http://www.github.com/opentok/opentok-network-test
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/opentok/opentok-network-test
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    OpenTok网络测试

    这个存储库包含示例代码,说明如果客户端( 将流发布到OpenTok会话)的调用是否成功,那么它们的网络条件。 可以将网络测试作为客户端在加入会话之前运行的一个步骤。 基于测试结果,应用程序可以决定是否允许将流发布到会话,否则流是否应使用音频。 测试用于在one-to-one调用中连接两个客户端的会话中。

    网络测试受支持:

    :它是如何工作的

    示例应用程序分别执行以下操作:

    连接到OpenTok会话并将测试流发布到会话。

    注意,已经发布的测试流对会话中的所有客户端都是可见的。 在将测试流发布到测试流的过程中,如果应用程序有其他客户端连接,可以阻止它们订阅测试流,在会话中创建流时,你可以将 NAME"测试"添加到已经发布流。

    订阅你自己的测试流以获得测试周期。

    在测试期间,视频质量将稳定,基于可用的网络连接质量。

    使用网络状态 API ( 请参见下面) 收集比特率和数据包丢失统计信息。

    比较网络统计和阈值( 请参见下面),以确定测试的结果。

    详细信息请参见示例代码。

    网络统计 API

    这里API允许你动态监视订阅服务器流的以下统计信息:

    • 接收的音频和视频字节

    • 丢失的音频和视频数据包

    • 接收的音频和视频数据包

    这里API仅在使用OpenTok媒体路由器的会话中可用。

    阈值和解释网络统计信息

    你可以使用网络统计来确定发送和接收流的能力,因此在OpenTok调用过程中具有质量体验。

    请记住,使用每个案例和对通话质量的感知是不同的。 因此,你应该根据你的用例和期望调整缺省的阈值和时间。 例如 720视频通话需要比 320 x480-pixel视频更好得多,因此你需要设置一个更高的阈值值,以限定一个可行的终端用户连接。 运行测试的时间越长,接收到的值就越准确。 同时,你可以能只需要 switch 或者不基于特定用例的音频。

    为了让开发人员更容易定制应用程序逻辑,OpenTok网络测试被实现为一个示例代码。

    下面是流行视频分辨率帧率组合的阈值示例。 下表解释了结果(。用于音频视频会话和音频会话),具有以下质量名称:

    • 优秀- 在媒体中无或者不可察觉的损伤

    • 可以接受- 媒体中的一些损伤,导致一些短暂的中断

    音频视频流

    对于给定的质量和决议,所有下列条件必须满足。

    高质量视频分辨率 @ fps视频kbps丢失
    精彩1280x720 @ 30> 1000<0.5 %
    精彩640x480 @ 30> 600<0.5 %
    精彩352x288 @ 30> 300<0.5 %
    精彩320x240 @ 30> 300<0.5 %
    可以接受1280x720 @ 30> 350<3%
    可以接受640x480 @ 30> 250<3%
    可以接受352x288 @ 30> 150<3%
    可以接受320x240 @ 30> 150<3%

    注意,视频的默认发布设置是 640 x480像素 @ 30帧 OpenTok.js 和 OpenTok iOS SDK。 默认的是 352 x288 @ 30 fps在 OpenTok Android SDK中。

    可以根据接收的视频字节和接收到的视频数据包统计信息来计算视频的kbps和包损失。 有关代码,请参见示例应用程序。

    所列出的视频分辨率代表常见的决议。 你可以通过插值最近列出的解析结果的结果来确定对其他分辨率的支持。

    音频流

    对于给定的质量,必须满足下列条件。

    高质量音频kbps丢失
    精彩> 30<0.5 %
    可以接受> 25<5%

    注意,可以根据接收的音频字节和接收到的音频数据包来计算音频的kbps和包损失。 有关代码,请参见示例应用程序。

    示例代码

    这里 repo 包含演示如何使用每个OpenTok客户端sdk构建网络测试的示例代码: Android。iOS和 JavaScript。每个示例演示如何确定将流发布到OpenTok会话时使用的音频和视频设置。 为此,每个示例应用程序将一个测试流发布到会话,然后使用网络状态API来检查流的质量。 应用程序根据质量决定客户端可以成功发布到会话的内容:

    • 客户端可以在指定的分辨率下发布音频视频流。

    • 客户端只能发布音频流。

    • 客户端无法发布。

    每个示例子目录都包含一个自述文件,描述应用程序如何使用网络状态 API。

    常见问题( FAQ )

    • 为什么OpenTok网络统计数据API值与我的Speedtest.net 结果不同?

      Speedtest.net 测试你的网络连接,而网络状态API显示WebRTC引擎( 还有 OpenTok ) 如何在你的连接上执行。

    • 网络状态API的结果为何不一致?

      WebRTC需要一些时间来稳定特定连接的调用质量。 如果允许网络测试运行得更长,则应该得到更一致的结果。 另外,请确保你正在使用路由OpenTok会话,而不是在。 有关详细信息,请参阅 OpenTok媒体路由器和媒体模式

    • 为什么输出值非常低,尽管我的用户正在播放Netflix电影?

      WebRTC在选择允许带宽方面是保守的。 例如,如果网络上有另一个高带宽消费者,WebRTC将尝试将它的自己的用法设置为最低。

    • 网络测试显示"精彩"( 或者"可以接受") 结果,但在调用过程中视频仍然得到像素化。

      你可以增加所需的阈值以更好地限定最终用户连接。 请记住,网络连接可以改变超时,尤其是在移动设备上。

    • 为什么在iOS或者Android上出现编译错误。

      你需要使用 OpenTok iOS SDK版本 2.7.0 + 或者 OpenTok SDK版本 2.7.0 +。


    STA  PAC  test  PACK  STAT  sam  
    相关文章