Skip to content

debugInfo

Franken Zeng edited this page Feb 16, 2017 · 17 revisions

推流端调试信息

本文可以帮助开发者定位问题。

同时,如果开发者希望向金山云提交issue,以下内容可以指导快速收集问题依赖的线索。

1. 通用信息

1.1 获取版本号

通过KSYGPUStreamerKit类的getKSYVersion方法获取当前版本信息

[_kit getKSYVersion];

2. 采集状态相关

2.1 当前采集状态

  • 通过KSYGPUStreamerKit类的captureState可查询当前采集状态
_kit.captureState
[_kit.streamerBase getCurCaptureStateName]

2.2 当前采集帧率

  • 通过KSYGPUStreamerKit类的videoFPS可获取当前采集帧率
[_kit.streamerBase getCurCaptureStateName]

3. 推流状态相关

3.1 获取当前推流的事件ID

通过KSYStreamerBase类的streamID可获取当前推流的事件ID,用于全流程追踪流信息。

_kit.streamerBase.streamID

3.2 获取当前推流的rtmp服务器的主机IP

通过KSYStreamerBase类的rtmpHostIP可获取当前推流服务器的主机IP,用于定位连接节点,排查网络问题。

_kit.streamerBase.rtmpHostIP

3.3 当前推流状态

  • 通过KSYStreamerBase类的streamState可查询当前推流状态
_kit.streamerBase.streamState
[_kit.streamerBase getCurStreamStateName]

3.4 当前编码的视频码率大小

通过KSYStreamerBase类的encodeVKbps可获取当前编码的视频码率大小,每一秒钟更新一次,更新的是一秒观察区间的编码视频码率。该值并不是真实的视频发送码率(存在丢帧)。

_kit.streamerBase.encodeVKbps

3.5 当前编码的音频码率大小

通过KSYStreamerBase类的encodeAKbps可获取当前编码的音频码率大小,每一秒钟更新一次,更新的是一秒观察区间的编码音频码率。

_kit.streamerBase.encodeAKbps

3.6 当前编码的平均视频帧率

通过KSYStreamerBase类的encodingFPS可获取当前编码的平均视频帧率,每一秒钟更新一次,更新的是一秒观察区间的视频帧率

_kit.streamerBase.encodingFPS

3.7 本次推流编码的视频总帧数

通过KSYStreamerBase类的encodedFrames可获取本次推流编码的视频总帧数,用于计算一定观察区间的视频编码帧率(观察区间需要自己计算)

_kit.streamerBase.encodedFrames

3.8 本次推流的丢帧数量

通过KSYStreamerBase类的droppedVideoFrames可获取本次推流编码后,由于网络发送阻塞导致丢弃的帧数,配合encodedFrames可以计算丢帧率

_kit.streamerBase.droppedVideoFrames

3.9 本次推流发送的流量大小

通过KSYStreamerBase类的uploadedKByte可获取本次推流发送的流量大小 ,用于计算一定观察区间的发送码率(音视频)(观察区间需要自己计算)

_kit.streamerBase.uploadedKByte

3.10 推流卡顿通知

当发现推流模块值为KSYNetStateCode_SEND_PACKET_SLOW,标致当前推流发送困难,将引入播放端卡顿。 查询接口:

注册KSYNetStateEventNotification通知:
[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(onNetStateEvent:)
                                                 name:KSYNetStateEventNotification
                                               object:nil];
响应KSYNetStateEventNotification事件,查询_kit.streamerBase.netStateCode属性:
- (void) onNetStateEvent:(NSNotification *)notification {
    KSYNetStateCode netEvent = _kit.streamerBase.netStateCode;
    if ( netEvent == ) {
        NSLog(@"bad network" );
    }
    else if ( netEvent == KSYNetStateCode_EST_BW_RAISE ) {
        NSLog(@"bitrate raising" );
    }
    else if ( netEvent == KSYNetStateCode_EST_BW_DROP ) {
        NSLog(@"bitrate dropping" );
    }
}

1. 推流环节说明

2. 特色功能说明

2.1 采集

2.2 音频处理

2.3 视频处理

2.4 编码

2.5 推流

2.6 输入多样化

2.7 集成

3. 第三方功能

4. 技术专栏

5. 已知问题

8. FAQ

金山云计算

Clone this wiki locally