新闻资讯
移动直播(MLVB)和实时音视频(TRTC)如何计算上行或下行网速?
一、基础概念
- 码率
音视频场景下,有视频画面就有视频码率,有音频数据就有音频码率。码率可以简单理解为有多少数据量。
- 网络带宽 Kbps
Kbps 经常出现在网络带宽中,其表示的意思是指每秒钟传送多少个千位的信息(K表示千位,Kb表示的是多少千个位, ps是指每秒),一般的公司都是以Kb(注意是小写的b)来表示网络带宽的。
- 网速 KB/s
我们常常会发现网络传输速度是以 KB 来表示的(注意是大写的B),比如我们用迅雷下载东西,在速度一栏里面常
常看到的是KB/s,这又是怎么回事呢?那是因为我们用来表示文件的大小往往采用的是字节(KB),因为如果用位
来表示文件大小的话数字有点过于庞大,不易记忆,所以采用字节来表示。
- 比特 bit
bit 电脑记忆体中最小的单位,在二进位电脑系统中,每一bit 可以代表0 或 1 的数位讯号。
- 字节 Byte
一个 Byte 由8 bits 所组成,可代表一个ASCII码,比如:字元(A~Z)、数字(0~9)、或符号(,.?!%&+-*/),是记忆体储 存资料的基本单位,至於每个中文字则须要两Bytes。
二、计算公式
当记忆体容量过大时,位元组这个单位就不够用,因此就有千位元组的单位 KB 出现,以下乃个记忆体计算单位之间的相关性:
- 1 Byte = 8 Bits
- 1 KB = 1024 Bytes
再者,电信ADSL网络带宽1兆(M)实际上的单位换算就是 1Mbps/s = 1024kbps/s = 1024Kb÷8/s = 128KB/s,也就是说你的ADSL既可以说是1兆(M)宽带,也可以说成128KB/s宽带。
综上所述:1秒钟在网络上传输文件的大小是多少个字节,1KB = 8Kb,用在网络带宽上就是 1KB/s = 8Kbps。
三、移动直播(MLVB)
移动直播已经提供文档 SDK 指标监控,我们能在回调接口中拿到数据来计算网速。
1.推流端
TXLivePushListener 的 onNetStatus 回调,会每隔1秒 - 2秒会将视频码率和音频码率回调出来。具体参数如下:
- NET_STATUS_VIDEO_BITRATE
当前视频编码器输出的比特率,也就是编码器每秒生产了多少视频数据,单位:kbps
- NET_STATUS_AUDIO_BITRATE
当前音频编码器输出的比特率,也就是编码器每秒生产了多少音频数据,单位:kbps。
我们可以拿到该数据然后进行计算网络带宽。计算公式如下:
SPEED = (VIDEO_BITRATE + AUDIO_BITRATE)/ 8 (单位:KB/s)
2.播放端
TXLivePlayListener 的 onNetStatus 回调,会每隔1秒 - 2秒会将 SDK 内部的状态指标同步出来。其中有一个参数NET_STATUS_NET_SPEED,表示当前的网络的下载速度,单位是 kb/s。这个能直接获取然后在业务层面上显示。
四、实时音视频(TRTC)
实时音视频(TRTC)回调中同样也提供数据统计回调接口 TRTCStatistics,该类中包含了 TRTCLocalStatistics(自己本地的音视频统计信息) 和 TRTCLocalStatistics(远端成员的音视频统计信息)。我们可以拿到videoBitrate(视频发送码率),单位:Kbps和audioBitrate(音频发送码率)单位:Kbps,然后来计算。
TRTCLocalStatistics 和 TRTCRemoteStatistics 都是回到出视频数据和音频数据,都可以按照一些计算公式来计算:SPEED = (VIDEO_BITRATE + AUDIO_BITRATE)/ 8 (单位:KB/s)
原文链接:http://tapd.oa.com/vcloud_clientsdksupport/markdown_wikis/view/#1020379442010413671
回复列表