被 com.juphoon.cloud.jrtc.JRTCEngineImpl 继承.
|
| abstract void | destroy () |
| |
| abstract String | getSdkVersion () |
| |
| abstract int | setMediaConfig (JRTCMediaConfig config) |
| |
| abstract JRTCMediaDeviceCamera | getCamera () |
| |
| abstract List< JRTCMediaDeviceCamera > | getAllCameras () |
| |
| abstract int | switchCamera (JRTCMediaDeviceCamera camera) |
| |
| abstract int | enableAudioOutput (String channelId, boolean enable) |
| |
| abstract int | enableSpeaker (boolean enable) |
| |
| abstract int | setCameraFocus (float xPercent, float yPercent) |
| |
| abstract int | getCameraMaxZoom () |
| |
| abstract int | setCameraZoom (int zoom) |
| |
| abstract boolean | isCameraTorchSupported () |
| |
| abstract int | setCameraTorchOn (boolean enable) |
| |
| abstract int | setCameraExposureLevel (int level) |
| |
| abstract int | getAudioRoute () |
| |
| abstract int | joinChannel (@NonNull String channelId, @NonNull String uid, @Nullable String token, @Nullable JRTCChannelConfig channelConfig) |
| |
| abstract int | leaveChannel (String channelId) |
| |
| abstract JRTCVideoCanvas | startLocalVideoDevice (JRTCMediaDeviceCamera camera, @RenderType int renderType, boolean play) |
| |
| abstract int | publishLocalAudioStream (String channelId, boolean publish) |
| |
| abstract int | publishLocalVideoStream (String channelId, boolean publish) |
| |
| abstract int | playRemoteAudioStream (String channelId, String uid, boolean play) |
| |
| abstract JRTCVideoCanvas | playRemoteVideoStream (String channelId, String uid, boolean play, @PictureSize int pictureSize, @RenderType int renderType) |
| |
| abstract int | muteLocalAudioStream (String channelId, boolean mute) |
| |
| abstract int | muteLocalVideoStream (String channelId, boolean mute) |
| |
| abstract String | getStatistics (String channelId) |
| | 获取频道的统计信息 更多...
|
| |
| abstract int | sendMessage (String channelId, String content, String toUserId) |
| |
| abstract int | enableScreenShare (String channelId, boolean enable, ScreenShareParam screenShareParam) |
| |
| abstract JRTCVideoCanvas | startScreenShareVideo (String channelId, @RenderType int renderType, @PictureSize int pictureSize, boolean play) |
| |
| abstract int | uploadLog (String reason) |
| |
| abstract void | info (String type, String format, Object... args) |
| |
| abstract void | error (String type, String format, Object... args) |
| |
| abstract void | debug (String type, String format, Object... args) |
| |
| abstract int | getNetType () |
| |
| abstract boolean | hasNet () |
| |
| abstract JRTCAdvanced | getAdvanced () |
| |
| abstract void | setAudioFrameCallback (JRTCAudioFrameCallback callback) |
| |
| abstract void | setVideoFrameCallback (JRTCVideoFrameCallback callback) |
| |
JRTC SDK 的核心接口类,实现实时音视频的主要功能。
| abstract String com.juphoon.cloud.jrtc.JRTCEngine.getStatistics |
( |
String |
channelId | ) |
|
|
abstract |
获取频道的统计信息
- 参数
-
- 返回
- 统计信息
- 注解
- 该接口需要在成功加入频道后才能调用
以 JSON 字符串形式返回,其中包含 "Config"、"Network"、"Transport"、"Participants" 4个键值,示例如下:
{
"Config": "Video Config: SRTP:off Codec:H264-SVC Payload:125 Bitrate:1000 Framerate:24 Resolution:640x352 FEC:on|124|123 FIR:off Key Interval:0 Repeat:0 NACK:off RTX:off TMMBR:off RPSI:off Small NALU:on ARS:off BR Min:10 BR Max:2000 FR Min:1 FR Max:30 Res. Ctrl:off Res. Mode:0 Fr Ctrl:off CPU Load Ctrl:off Target:80 Bw Efficient:off Error Conceal:off Enhance color:off Boost bright:off Boost contrast:off RTP Ext:CVO Render Name:N/A",
"Network": "Server(-176574541330799):4466(1): BWE(4592|1231) IN(A:0;)",
"Transport": "Local: 100.306884891:44795 Remote: 120:14243 LastPaths: 120,120Path: 120 [tcp] Step1:Delay/Loss(S/R): 55/0/0 Cost: 65** (best: 40)Path: 151 [udp] Step1:Delay/Loss(S/R): 43/0/0 Cost: 132Path: 105 [tcp] Step1:Delay/Loss(S/R): 55/0/0 Cost: 142Path: 100 [tcp] Step1:Delay/Loss(S/R): 43/0/0 Cost: 144",
"Participants": [{
"4466": "Video Sending Stats: Packets:0 Capture Fr:24 FPS/IDR:0/0 Resolution:640x352[0|0|0] Bitrate/Setrate:0/1000 QP:0 FecPrecent:20Be Subscribed Stats: Audio:true Video:[0|0|0|0] Screen:[0|0|0|0]"
}]
}
1.实时统计解释
I) Sent Statistics: 发送数据
- Packets: 发送的数据包的个数。
- 如果为0,或者几秒内都是个位数,则表示摄像头可能打开失败;对面看不到这边的图像
- 没有持续增加: 发送出错,或内部未知错误
- Lost: 丢失的数据包的个数。
- Lost Ratio: 当前的丢包率,单位百分比。
- Jitter: 网络的扰动,表征数据包乱序的时间,单位毫秒。
- FPS: 当前发送的帧速率,在1-30之间波动
- Key-F: 接收到的关键帧请求个数。
- SLI-F: 接收到的SLI帧请求个数。
- Resolution: 当前发送图像的分辨率。
- Bitrate: 当前发送的数据包的码率,单位kbps。
- Setrate: 当前估计的带宽的码率,单位kbps。
- 当低于80kbps时,对面看到的视频质量会明显变差
- FEC: 在丢包网络下的前向纠错冗余数据包的码率,单位kbps。
- NACK: 在丢包网络下的重发数据包的码率,单位kbps。
- QP: 发送当前图像的量化步长(0-51),越小图像画质越好。
II) Received Statistics: 接收数据
- Packets: 收到的数据包的个数。
- 如果为0,则看不到对面的图像
- 如果没有持续增加:则接收出错,对面的图像将无法刷新
- Lost: 丢失的数据包的个数。
- Lost Ratio: 当前的丢包率,单位百分比。
- Jitter: 网络的扰动,表征数据包乱序的时间,单位毫秒。
- Framerate: 当前接收到的帧速率。
- 0:看到的对面图像不更新
- 5以下:看到的对面图像有卡顿感
- Resolution: 当前接收到的分辨率大小,表示看到的对面图像清晰度,值越大越清晰
- 1280×720: 超清晰
- 640×480或者640×352:很清晰
- 448×332: 清晰
- 320×240:有点模糊
- Bitrate: 当前接收的数据包的码率,单位kbps。
- Codec: 接收到的图像的编码类型。
III) General Statistics: 通常的统计数据
- Capture Res: 采集分辨率。
- Capture Fr: 采集帧速率。
- Render Fr: 渲染帧速率。
- RTT: 网络双向延时的时间,单位为毫秒。
- 正常网络下:wifi 在100ms以内,4G网络在60-150ms左右;跨国网络在500ms左右
- RTT超过正常值2倍以上,都表示网络差
- Netw Status: 统计的网络状况,有Very Good、Good、Normal、Bad、Very Bad。
- 网络状况Bad 或者Very Bad时,视频通话受影响,可能有卡顿、模糊等问题
- CPU Load: 比如35/60。前一个35表示媒体占用的CPU使用率,后一个代表所有程序占用的CPU使用率, 只有android上有统计。
- 后一个值超过90的时候:表示系统负载高,手机可能快速发热,视频可能卡顿
IV) Configuration: 配置信息
- Capture: 采集源。
- Local IP: 本地的ip地址。
- Local Port: 现在本地使用的端口号。
- Remote IP: 连接的远端ip地址。
- Remote Port: 连接的远端的端口号。
- RTCP Mux: RTCP是否使用多路复用的技术。
- SRTP: 是否对RTP数据加密。
- Codec: 双方通话采用的编解码类型。
- Payload: payload的类型。
- Bitrate: 设置的初始发送码率值,单位kbps。
- Framerate: 设置的初始发送帧速率大小,单位fps。
- FEC: FEC是否打开和payload的类型号。
- FIR: 是否允许重发关键帧。
- Key Interval: 允许的最小关键帧间隔。
- Repeat: 关键帧丢失是否允许重发。
- NACK: 丢包是否允许数据包重传。
- RTX: 是否允许RTX技术,RTX的payload类型。
- TMMBR: 是否允许带宽估计。
- RPSI: 是否允许RPSI技术。
- Small NALU: 是否允许NALU技术。
- ARS: 是否开启自动码率检测。
- BR Min: 发送码率下限。
- BR Max: 发送码率上限。
- 根据界面选择的码率模式: 最小模式下为300kbps;节省模式为500kbps;标准以及720P模式下,根据MDM能力协商得出,一般在1000kbps以上
- FR Min: 发送帧速率下限。
- FR Max: 发送帧速率上限。
- Res. Ctrl: 是否允许分辨率控制。
- Fr Ctrl: 是否允许帧速率控制。
- CPU Load Ctrl: 是否允许CPU控制。
- Target: CPU控制的最大使用率。
- Bw Efficient: 是否采用节省带宽模式。
- Error Conceal: 是否允许错误隐藏技术,在解码出错的时候采用。
- Enhance color: 是否采用颜色增强技术。
- Boost bright: 是否采用亮度增强技术。
- Boost contrast: 是否采用对比度增强技术。
- RTP Ext: 使用的RTP扩展的类型。
- Render Name: 渲染图像的名字。
2. NAT 网络统计信息
网络统计信息分为Server、CHL和File media三个部分。
Server
- Server 1: 选用的第一个服务器
- Server 2: 选用的第二个服务器
CHL
通道传输类型,udp,tcp等。
- Score: 该通道传输数据的综合评分。
- Send delay/loss: 发送的延时/丢包率,延时单位为毫秒,丢包率为百分比。
- Recv delay/loss: 接收的延时/丢包率,延时单位为毫秒,丢包率为百分比。
其中CHL有[CHL0]、[CHL1]、[CHL2]、[CHL3],[CHLO]数据选用Server1转发,[CHL1]数据选用Server2转发,[CHL2]数据选用Server1,Server2共同转发,[CHL3]数据选择走P2P通道。
File media
File media有两个,最前面的一个为音频,后面的一个为视频。
- Send all(kbps): 发送的所有数据,包括包头等。
- Send data(kbps): 发送的有效内容数据。
- Send delay(ms): 发送的延时。
- Send loss(%): 发送的丢包率。
- Try p2p: 是否采用的p2p方式
- Local: 近端的ip地址和端口号。
- Remote: 远端的ip地址和端口号。
mdm 3. MDM 媒体配置信息
媒体配置信息分为Mode、Input、Output等。
- Mode: 声音通道Android Mode Manager模式。
- Input: 声音输入模式。
- Output: 声音输出模式。
- OS Aec: 是否采用系统的回声消除模式。
- OS Agc: 是否采用系统的自动增益控制模式。
- Mmp: mdm网站的第几次更新数据。其中,mdm网站是用来优化媒体配置信息的网站,每天通话会同步最优配置信息。如果Mmp为0则选用本地默认的配置信息。