Skip to content

streamStat

Franken Zeng edited this page Dec 1, 2016 · 15 revisions

##推流 配置好采集参数之后,通过kit.streamerBase类的startStream和stopStream方法启动和停止推流。

##状态 推流相关的消息通知需要通过NSNotificationCenter注册 KSYStreamStateDidChangeNotification来接收。 当收到推流状态变化的通知时,通过kit.streamerBase.streamState属性查询新的状态

状态名称 状态说明
KSYStreamStateIdle 初始化时状态为空闲
KSYStreamStateConnecting 连接中
KSYStreamStateConnected 已连接
KSYStreamStateDisconnecting 断开连接中
KSYStreamStateError 推流出错
注册通知:
[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(onStreamStateChange:)
                                                 name:KSYStreamStateDidChangeNotification
                                               object:nil];
响应事件:
- (void) onStreamStateChange:(NSNotification *)notification {
    if ( _kit.streamerBase.streamState == KSYStreamStateIdle) {
        NSLog(@"idle");
    }
    else if ( _kit.streamerBase.streamState == KSYStreamStateConnected){
        NSLog(@"connected");
    }
    else if (_kit.streamerBase.streamState == KSYStreamStateConnecting ) {
        NSLog(@"kit connecting");
    }
    else if (_kit.streamerBase.streamState == KSYStreamStateDisconnecting ) {
        NSLog(@"disconnecting");
    }
    else if (_kit.streamerBase.streamState == KSYStreamStateError ) {
        [self onStreamError];
    }
}
移除通知:
[[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:KSYStreamStateDidChangeNotification
                                                  object:nil];

##错误状态 (KSYStreamErrorCode)

状态名称 value 状态说明
KSYStreamErrorCode_NONE 0 正常无错误
KSYStreamErrorCode_KSYAUTHFAILED 1 SDK 鉴权失败 (暂时正常推流5~8分钟后终止推流)(KSY 自定义,已经不会出现)
KSYStreamErrorCode_ENCODE_FRAMES_FAILED 2 当前帧编码失败
KSYStreamErrorCode_CODEC_OPEN_FAILED 3 无法打开配置指示的CODEC,一般出现在VT264编码时,当出现该错误的时候需要重试
KSYStreamErrorCode_CONNECT_FAILED 4 连接出错,检查地址
KSYStreamErrorCode_CONNECT_BREAK 5 网络连接中断 , 当出现该错误的时候建议重推流
KSYStreamErrorCode_RTMP_NonExistDomain 6 rtmp 推流域名不存在 (KSY 自定义)
KSYStreamErrorCode_RTMP_NonExistApplication 7 rtmp 应用名不存在(KSY 自定义)
KSYStreamErrorCode_RTMP_AlreadyExistStreamName 8 rtmp 流名已存在(KSY 自定义)
KSYStreamErrorCode_RTMP_ForbiddenByBlacklist 9 rtmp 被黑名单拒绝(KSY 自定义)
KSYStreamErrorCode_RTMP_InternalError 10 rtmp 内部错误(KSY 自定义)
KSYStreamErrorCode_RTMP_URLExpired 11 rtmp URL 地址已过期(KSY 自定义)
KSYStreamErrorCode_RTMP_SignatureDoesNotMatch 12 rtmp URL 地址签名错误(KSY 自定义)
KSYStreamErrorCode_RTMP_InvalidAccessKeyId 13 rtmp URL 中AccessKeyId非法(KSY 自定义)
KSYStreamErrorCode_RTMP_BadParams 14 rtmp URL 中参数错误(KSY 自定义)
KSYStreamErrorCode_RTMP_ForbiddenByRegion 15 rtmp URL 中的推流不在发布点内(KSY 自定义)
KSYStreamErrorCode_FRAMES_THRESHOLD 16 SDK 因为鉴权失败停止推流
KSYStreamErrorCode_NO_INPUT_SAMPLE 17 没有输入的数据,无法开始推流
KSYStreamErrorCode_DNS_Parse_failed 18 对于URL中的域名解析失败
KSYStreamErrorCode_Connect_Server_failed 19 对于URL对应的服务器连接失败(无法建立TCP连接)
KSYStreamErrorCode_RTMP_Publish_failed 20 跟RTMP服务器完成握手后,向{appname}/{streamname} 推流失败
KSYStreamErrorCode_AV_SYNC_ERROR 21 音视频同步失败 (输入的音频和视频的时间戳的差值超过5s)
KSYStreamErrorCode_INVALID_ADDRESS 22 非法地址(地址为空或url中的协议或本地文件的后缀SDK不支持, 请检查)

错误处理和重连

请见 错误处理中的,自动重连实现

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