视频直播SDK-ios版

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

视频直播SDK-ios版

2、工程设置

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

视频直播SDK-ios版

(2)IOS9适配:

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

视频直播SDK-ios版

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

视频直播SDK-ios版

(3)IOS10适配:

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

视频直播SDK-ios版

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

视频直播SDK-ios版

(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协议,支持主流服务器
  • 支持自定义布局
  • 静音 支持实时静音与取消静音
  • 支持横竖屏

 截图

视频直播SDK-ios版 视频直播SDK-ios版 视频直播SDK-ios版 视频直播SDK-ios版

功能试用:

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

关于授权:

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

单击申请试用

洽谈咨询:

SDK交流群: 305128688

咨询电话: 4008989105

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

客服邮箱:2637433751@qq.com

上一篇:ASP.NET Web API中实现版本的几种方式


下一篇:How to Change RabbitMQ Queue Parameters in Production?