IOS视频直播接入说明

一、名词解释

分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率。常见视频分辨率的有1080P即1920x1080,720P即1080x720,640x480等。

帧率:每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数。

码率: 数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。

二、集成步骤

(一)运行环境

SDK支持iOS7.0及以上版本的设备,兼容iPhone、iPad、iPod touch

(二)申请APPKey 和 APPSecretkey

1、打开http://www.rdsdk.com/ ,在锐动官网首页选择登录或注册,新用户先注册,老用户直接登录。

2、登录完成后,进入视频云管理 点击“+新增”,填写您应用的名称等,点击“提交”,应用创建完成。

3、创建应用完成后会自动跳转至个人中心页面,此时会获取到该应用的 AppKey 和AppSecret。

(三)下载并导入SDK

1、添加libRDLiveSDK.a

2、工程设置

(1)TARGETS->General->Deployment Info仅勾选竖屏(Portrait),横屏(LandscapeLeft、LandscapeRight)不勾选:

(2)IOS9适配:

在Info.plist中添加App Transport Security Settings类型Dictionary。在App Transport Security Settings下添加Allow Arbitrary Loads类型Boolean,值设为YES。

在TARGETS->Build Settings->Enable Bitcode,将值设置为No。

(3)IOS10适配:

在Info.plist中添加NSCameraUsageDescription、NSMicrophoneUsageDescription、NSPhotoLibraryUsageDescription。

(4)在TARGETS->Build Phases->Linked Frameworks and Libraries中加入SDK依赖库

(5)设置Other Linker Flags

在TARGETS->Build Settings->Other Linker Flags中加入-ObjC。

(四)直播

1、引入头文件及初始化

#import "RDLiveSDK.h"

/**

*  初始化RDLiveSDK,此方法在使用RDLiveSDK时在主线程中调用。

*

*  @param appKey 在锐动SDK官网(http://www.rdsdk.com/ )中注册的应用Key。

*  @param secretKey 在锐动SDK官网(http://www.rdsdk.com/ )中注册的应用密钥。

*  @param successBlock 初始化成功的回调[authType:在锐动SDK官网申请的服务类型]

*  @param errorBlock    初始化失败的回调[error:初始化失败的错误码]

*/

- (instancetype) initWithAPPKey:(NSString *)appKey

andSecretKey:(NSString *)secretKey

success:(void (^)(RDLiveAuthorizationType authType))successBlock

error:(void (^)(NSError *error))errorBlock;

使用SDK开始直播视频

2、属性说明

/**

*  预览视图

*/

@property (nonatomic, strong, readonly) UIView *cameraView;

/**

*  切换摄像头

*/

@property (nonatomic, assign) RDRtmpPublishCameraState cameraState;

/**

*  美颜,默认为开启美颜(RDRTMPPUBLISH_BEAUTIFY_SELECTED)

*/

@property (nonatomic, assign) RDRtmpPublishBeautifyState beautifyState;

/**

*  麦克风音量; Default is 1.0f

*/

@property (nonatomic, assign) float         micGain;

/**

*  是否开启闪光灯

*/

@property (nonatomic, assign) BOOL          torch;

/**

*  输出分辨率

*/

@property (nonatomic, assign) CGSize            videoSize;

/**

*  码率

*/

@property (nonatomic, assign) int               bitrate;

/**

*  帧率

*/

@property (nonatomic, assign) int               fps;

/**

*  是否根据设备方向调节摄像头方向

*/

@property (nonatomic, assign) BOOL          useInterfaceOrientation;

/**

*  是否根据用户网络自动调节码率; Default is off

*/

@property (nonatomic, assign) BOOL          useAdaptiveBitrate;

@property (nonatomic, readonly) RDLiveAuthorizationType authType;

3、获取所有在线直播用户Uid接口方法说明

/**

*  获取所有在线直播用户(uid)

*/

- (void)getAllLiveList:(void (^)(NSArray *allLiveInfoArray))successBlock

error:(void (^)(NSError *error))errorBlock;

4、直播接口方法说明

(1)设置直播参数接口

/**

*  直播之前准备,用于设置直播参数。

*  @param  frame                   显示分辨率

*  @param  videoSize               输出分辨率

*  @param  bitrate                 码率

*  @param  fps                      帧率(1-30)

*  @param  useInterfaceOrientation 是否根据设备方向调节摄像头方向

*  @param  cameraState                设置前后置摄像头,默认为前置

*/

- (void) preparePublishWithFrame: (CGRect) frame

videoSize: (CGSize) videoSize

bitrate: (int) bitrate

fps: (int) fps

useInterfaceOrientation: (BOOL) useInterfaceOrientation

cameraState: (RDRtmpPublishCameraState) cameraState;

- (void) preparePublishWithFrame: (CGRect) frame

videoSize: (CGSize) videoSize

bitrate: (int) bitrate

fps: (int) fps;

- (void) preparePublishWithFrame: (CGRect) frame

videoSize: (CGSize) videoSize

bitrate: (int) bitrate

fps: (int) fps

useInterfaceOrientation: (BOOL) useInterfaceOrientation;

(2)开启/关闭摄像头

/**

*  开启摄像头:直播前需要先开启摄像头

*/

- (void) startCamera;

/**

*  停止摄像头

*/

- (void) stopCamera;

(3)开始直播接口:根据自己申请的服务类型,选择不同的直播接口,开始直播。

/**

*  在锐动SDK官网申请的服务类型是基础服务RDLive_AT_URL或RDLive_AT_URL_OR_UID时,才可使用此接口直播

*  开始直播,推送摄像头到rtmp

*

*  @param rtmpUrl      rtmp服务器地址

*  @param streamKey    rtmp流名称

*  @param errorBlock   开始直播失败的回调[status:开始直播失败的错误码]

*/

- (void) startPublishWithUrl:(NSString *)rtmpUrl

andStreamKey:(NSString *)streamKey

success:(void (^)())successBlock

error:(void (^)(RDLiveErrorCode status))errorBlock;

/**

*  在锐动SDK官网申请的服务类型是云服务RDLive_AT_UID或RDLive_AT_URL_OR_UID时,才可使用此接口直播

*  开始直播

*

*  @param userID       用户ID

*  @param errorBlock   开始直播失败的回调[error:开始直播失败的错误码]

*/

- (void) startPublishWithUid:(NSString *)userID

andTitle:(NSString *)title

success:(void (^)())successBlock

error:(void (^)(NSError *error))errorBlock;

/**

*  在锐动SDK官网申请的服务类型是云服务RDLive_AT_UID或RDLive_AT_URL_OR_UID时,才可使用此接口直播

*  由于网络不好等情况,非用户主动停止直播时,可尝试重新开始直播

*

*  @param userID       用户ID

*  @param errorBlock   开始直播失败的回调[error:开始直播失败的错误码]

*/

- (void) reStartPublishWithUid:(NSString *)userID

success:(void (^)())successBlock

error:(void (^)(NSError *error))errorBlock;

(4)直播结束

/**

*  结束直播

*/

- (void) endPublish;

(5)进入后台时结束直播

/**

*  在锐动SDK官网申请的服务类型是云服务RDLive_AT_UID或RDLive_AT_URL_OR_UID时,才可使用此接口直播

*  进入后台时结束直播

*  按下Home键不需要调用该接口,可用于分享等情况

*/

- (void) endPublishEnterBackground;

(6)回到前台时重连直播接口

/**

*  在锐动SDK官网申请的服务类型是云服务RDLive_AT_UID或RDLive_AT_URL_OR_UID时,才可使用此接口直播

*  回到前台重连直播

*  按下Home键后返回不需要调用该接口,可用于分享等情况

*/

- (void) reStartPublishBecomeActive;

(7)美颜相关

/**

*  设置是否开启美颜,默认:RDRtmpPublishFilterTypeNormal

*/

- (void) setFilter:(RDRtmpPublishFilterType) type;

/**

*  设置美颜程度,默认美颜程度为2

*/

- (void) setBeautyLevel: (NSInteger ) level;

(8)设置facue

/**

*  设置Facue,默认不设置

*/

- (void) setFacue:(RDRtmpPublishFacueType) type;

(9)添加水印

**

*  添加水印

*

*  @param waterView 水印(可支持UIImageView和UILabel)

*  @param location  水印标准位置,左右上下,中心点

*  设置位置:(1)位置均由设置的rect的origin决定

*            (2)只设置竖屏时水印位置即可,横屏时的位置,SDK内会做处理

*/

- (void) addWaterMarkView:(id) waterView

location:(RDRtmpPublishWaterMarkLocation)location;

(10)获取facue缩略图

/**

*  获取Facue缩略图

*/

- (UIImage *) getFacueImage: (RDRtmpPublishFacueType) type;

(11)申请的是基础服务时,可从该接口获取直播缩略图。申请的是云服务时,SDK内会自动上传缩略图。

/**

*  获取直播截屏

*/

- (UIImage *) getPublishScreenshot;

5、直播委托协议

直播状态回调

/**

*  推送状态回调

*

*  @param rtmpState 推送状态

*/

- (void) RDRtmpPublishConnectionStatusChanged: (RDRtmpPublishState) liveState;

具体情况

锐动直播SDK ios版通过iOS移动端实时采集视频,同时在拍摄过程中支持多种实时滤镜效果,只要调用视频直播接口,通过3G、4G、WIFI等网络,推流发送给云端流媒体直播系统处理,并通过CDN视频加速分发做现场直播播出,供远程观看,是一款专业级水平的视频直播开发包。同时,在节目直播过程中,直播视频可归档、存储,方便后续回看。视频直播SDK不断优化视频采集和处理能力,让开发者更专注自身业务应用开发和运营。


SDK功能介绍:

1.直播推流

  • 实时美颜
  • 滤镜 内置主流滤镜,支持扩展更多滤镜
  • 协议 RTMP协议,支持主流服务器
  • 编码与设置 支持H264及AAC编码;支持智能硬件编码;支持自定义分辨率、码率、帧率
  • 内置伴音 主播可以高质量卡拉OK及喊麦主持
  • 可定制的水印
  • 人脸识别及装扮 支持人脸识别并内置了一些演示人脸装扮挂件,支持扩展更多
  • 界面可定制 当前已经实现了通用的开源界面,也可根据实际业务进行扩展
  • 云服务器 支持锐动云服务器推流(UID直播推流),也支持使用第三方云服务器(URL直播推流)。
  • 摄像头切换 前、后摄像头自由切换,中间无卡顿
  • 静音 支持实时静音与取消静音
  • 支持横竖屏

2.播放器

  • 低延迟
  • 协议 支持RTSP/RTMP协议,支持主流服务器
  • 支持自定义布局
  • 静音 支持实时静音与取消静音
  • 支持横竖屏

 截图

   

功能试用:

最新SDKDemo下载(以下链接是最新的,github代码会有稍有延迟): SDK下载请单击

关于授权:

www.rdsdk.com 致力于专业的人做专业的事,降低客户的开发时间和开发成本,你只需要支付很少的费用,花上几个小时就能增加直播及回放功能。

单击申请试用

洽谈咨询:

SDK交流群: 305128688

咨询电话: 4008989105

客服电话: 15313066905 (周一至周五 9:00-18:00)

客服邮箱:2637433751@qq.com

视频直播SDK-ios版的更多相关文章

  1. Android 视频直播 SDK

    Android 视频直播 SDK接入说明 一.名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1 ...

  2. 视频云SDK iOS持续集成项目实践

    1. 前言 2016年, 我们维护的 iOS推流播放融合SDK KSYLive_iOS 在github上发布了40多个版本, 平均两周发布一个新版本, 经历了最初痛苦的全手动版本构建和维护, 到后来慢 ...

  3. 开发腾讯移动游戏平台SDK ios版Ane扩展 总结

    本文记录了在开发 腾讯移动游戏平台SDK(MSDK) ios版Ane扩展 过程中所遇到的问题 文中非常多问题都是基础的问题.对object c和xcode配置了解不深入导致的.(没办法,开发ane的程 ...

  4. iOS中集成ijkplayer视频直播框架

    ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集成ijk ...

  5. Android&iOS视频直播之旅

    现在的移动互联网时代,大家的网速真是越来越快,高带宽的WIFI和覆盖率极大的4G,4G+把手机观看视频直播推上了风口浪尖,越来越多的应用在玩手机视频直播,我们做的应用里也要嵌入视频直播. 这篇文章里我 ...

  6. 「视频直播技术详解」系列之七:直播云 SDK 性能测试模型

    ​关于直播的技术文章不少,成体系的不多.我们将用七篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面.深入地了解视频直播技术,更好地技术选型. 本系列文章大纲如下: ...

  7. 直播时代--IOS直播客户端SDK,美颜直播【开源】

    当前视频直播非常火爆,手机端的视频直播也非常火爆,PGC.UGC的视频直播门槛都降低了很多. 本文介绍一个:IOS 客户端直播的SDK,代码完全开源. 直播时代:让IOS普通开发者一天内做出一个RTM ...

  8. 超强教程:如何搭建一个 iOS 系统的视频直播 App?

    现今,直播市场热火朝天,不少人喜欢在手机端安装各类直播 App,便于随时随地观看直播或者自己当主播.作为开发者来说,搭建一个稳定性强.延迟率低.可用性强的直播平台,需要考虑到部署视频源.搭建聊天室.优 ...

  9. iOS视频直播初窥:高仿<喵播APP>

    视频直播初窥 视频直播,可以分为 采集,前处理,编码,传输, 服务器处理,解码,渲染 采集: iOS系统因为软硬件种类不多, 硬件适配性比较好, 所以比较简单. 而Android端市面上机型众多, 要 ...

随机推荐

  1. PHP导出MYSQL数据库并压缩

    PHP可以一键导出MYSQL备份文件,并压缩存放,尽管phpMyAdmin有这功能,不过若你自己开发网站或者是为别人写CMS,你不应该要求别人用你程序的时候再去另外用phpMyAdmin备份MYSQL ...

  2. grunt安装详解及失败处理

    标签: 1.官网 nodejs官网 https://nodejs.org/en/ Grunt官网 http://gruntjs.com/ Grunt插件首页  http://gruntjs.com/p ...

  3. Bootstrap3写的红色警告框样式组件

    用的是BT3的类和fa的图标 <!DOCTYPE html><html><head lang="en">    <meta charset ...

  4. 7 款华丽的 HTML5 Loading 动画特效

    我们在进行大数据的传输或者复杂操作的等待时,最好能有一个Loading等待的小动画提示用户.本文将为大家分享一些超华丽的基于HTML5的Loading加载动画特效,希望你会喜欢. 1.HTML5 Ca ...

  5. HTML5 简介、浏览器支持、新元素

    什么是 HTML5? HTML5 是最新的 HTML 标准. HTML5 是专门为承载丰富的 web 内容而设计的,并且无需额外插件. HTML5 拥有新的语义.图形以及多媒体元素. HTML5 提供 ...

  6. V8 Javascript 引擎设计理念

    Netscape Navigator 在 90 在年代中期对 JavaScript 进行了集成,这让网页开发人员对 HTML 页面中诸如 form .frame 和 image 之类的元素的访问变得非 ...

  7. WinMerge文件编码设置

    http://blog.sina.com.cn/s/blog_7575fab10101o0na.html 系统默认是System codepage,我们要选用Custom codepage.值得注意的 ...

  8. Treeview显示磁盘下的文件,并且可操作

    #region TreeView树形显示磁盘下文件夹 /// <summary> /// IconIndexs类 对应ImageList中5张图片的序列 /// </summary& ...

  9. Debian8 安装wordpress博客

    首先要安装 php5-gd 已保证wordpress可以正常安装 下载Wordpress wget http://wordpress.org/latest.tar.gz 解压 tar -xzvf la ...

  10. Ionic在windows下的环境配置难题

    具体的配置方法网上有很多,可以参考http://my.oschina.net/JeeChou/blog/219699?fromerr=k1hPtBUs,但问题还是会有,我总结的主要有以下几个方面: 1 ...