开发者文档

推流SDK iOS
简介
YFPlayerPushStreaming.framework是云帆加速推出的iOS平台用于推流的软件开发工具包(SDK),为您提供简单、便捷的开发接口,助您在基于 iOS 8.0 及以上版本的移动设备上实现直播推流功能。

推流 iOS SDK

功能特点
  • 支持RTMP协议
  • 支持视频硬编
  • 支持后台纯音频推流
  • 支持推送主流分辨率视频,支持手动设置码率、帧率、缓存大小等配置
  • 支持动态码率
  • 支持推流水印设置
  • 支持实时美颜(基于GPU)
  • 支持纯视频推流
  • 支持主流RTMP服务器(simple-rtmp-server、crtmpserver、FMS 等)
  • 支持文件(MP4、FLV)录制
  • 支持低延时直播,控制直播延时1.5秒内
  • 支持闪光灯、摄像头切换、自动对焦等实用功能
  • 支持h265推流
运行环境
iphone ipod touch ipad iOS 8.0及以上系统版本
下载并使用SDK
1. 从github下载工程
                    
    SDK内容说明(推流SDK的完整下载包包含YFDocs、Demo三部分):

    - DOC目录:YFPlayerPushStreaming帮助文档.docx、README.MD
    
    - Demo:集成了推流sdk的所有功能示范 
                    
                
2、鉴权

获取SDK使用许可的token,初始化SDK对象的时候就会调用鉴权,鉴权成功,则对象成功生成,失败,则对象为空。

注意事项

鉴权的SDK仅支持测试域名进行推流,正式使用,请与我们联系并获取正式Token并设置推流域名

3.集成到App

集成本SDK需要添加支持库,详情请看YFPlayerPushStreaming帮助文档

                    
    /**
        @param      videoSize 视频分辨率
        @param      frameRate  帧率
        @param      bitrate 码率
        @param      bufferTime 推流缓存时间
        @param      token    
        @param      access_key
    **/
       _session = [[YfSession alloc] initWithVideoSize:CGSizeMake(480, 848) frameRate:24 bitrate:800000 bufferTime:3 withtoken:@"123" withaccess_key:@"123"];
     
    /** 属性方法 
        @property  Bool类型
        @param      isBeautify  是否美颜   //默认no 不开启美颜
        @param      IsAudioOpen 是否纯视频推流//默认no 纯视频推流
    **/
        _session.isBeautify = YES;
        _session.IsAudioOpen = YES; 
                    
                

以上属性可随时在推流中动态切换

                     
    /**
        @param      IsAutoFitBitRate    //是否打开自适应码率 ,默认自适应关闭
    **/
    一次性设置

    _session.IsAutoFitBitRate = YES; 
                    
                
                     
    开始推流
    /**
        @param  URL 推流地址  //鉴权过后 只能推流鉴权白名单的域名
    **/
        [_session startRtmpSessionWithRtmpURL:_push_url];
                    
                
                    
    停止推流

    [_session endRtmpSession];
                    
                

在代理方法中获取推流器当前状态

                     
    (void)connectionStatusChanged:(YfSessionState) state;  
    YfSessionStateNone  //无
    YfSessionStatePreviewStarted //初始化完成
    YfSessionStateStarting //正在连接
    YfSessionStateStarted //已经连接
    YfSessionStateEnded //推流结束
    YfSessionStateError //推流出错
                    
                

更多使用方法请参考demo

接口说明
参考DOC目录里的YFPlayerPushStreaming帮助文档
反馈与建议

技术支持:support@yfcloud.com