上云无忧 > 文档中心 > 百度智能云移动直播SDK IOS开发 - 互动直播
移动直播SDK
百度智能云移动直播SDK IOS开发 - 互动直播

文档简介:
音视频互动直播是指两个或两个以上人通过连麦方式进行超低延迟的互动,并将互动的音视频数据传递其他的不同观众。音视频互动直播通常是连麦互动场景。通过连麦可以让主播和连麦观众进行超低延迟的音视频通话,然后由主播将互动数据分发给直播观众。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

音视频互动直播是指两个或两个以上人通过连麦方式进行超低延迟的互动,并将互动的音视频数据传递其他的不同观众。音视频互动直播通常是连麦互动场景。通过连麦可以让主播和连麦观众进行超低延迟的音视频通话,然后由主播将互动数据分发给直播观众。

互动直播分为两个部分:
1、连麦加入同一个房间内进行超低延迟音视频互动。
2、将连麦房间内的音视频数据进行直播分发。

我们提供两种形式:
a) 服务端混流并分发直播:由RTC的服务端进行音视频混流,同时将混流后的数据推送给LSS直播服务器,LSS直播服务器直接下发直播流。
i. 优点:网络消耗更少,CPU和GPU压力小,能够适配低端机型。
ii. 缺点:RTC内部为了实时性会动态压缩画面质量,直播出去的清晰度可能不足;由普通推流直播和互动直播服务端转推切换时,观众端播放器需要进行重连拉流,造成卡顿。
b) 本地混流并分发直播:由RTC互动模块产出音视频数据,并由直播推流模块进行推流直播。
i. 优点:画面质量只与预设值相关,不会动态调整。由普通推流直播和互动直播本地混流切换时,观众端播放器可以流畅过度。
ii. 缺点:网络消耗更多,CPU和GPU压力答,需要高端机型适配。

1.1 设置鉴权信息appID

实时音视频通讯appId和token的获取:https://cloud.baidu.com/doc/RTC/s/Qjxbh7jpu 类型;参数
默认值:nil
@property (nonatomic, copy) NSString *appId;

示例代码:

1.	BDCloudAVRtcRoomParameter *room = [[BDCloudAVRtcRoomParameter alloc] init];
2.	room.appId = settings.rtcAppID;

1.2 设置鉴权信息token

实时音视频通讯appId和token的获取:https://cloud.baidu.com/doc/RTC/s/Qjxbh7jpu 类型;参数
默认值:nil
@property (nonatomic, copy) NSString *token;

示例代码:

1.	room.token = settings.rtcToken;

1.3 设置房间信息roomName

主播和连麦观众必须加入到同一个互动房间才能进行超低延迟会话。因此roomName两个人必须保持一致。
类型;参数
默认值:nil
@property (nonatomic, copy) NSString *roomName;

示例代码:

1.	room.roomName = settings.roomName;

1.4 设置互动房间内自己的信息userId

为了区分互动房间内的不同人,我们使用userId来区别房间内的不同用户。
注意:同一个房间(roomName)内,一定不能使用两个相同的userId。
类型;参数
默认值:0
@property (nonatomic, assign) NSInteger userId;

示例代码:

1.	room.userId = settings.userID;

1.5 设置互动房间内自己的信息userName

房间内不同的虽然不允许相同的userId,但是允许相同的userName。是为了显示房间内的用户更加的灵活。
类型;参数
默认值:nil
@property (nonatomic, copy) NSString *userName;

示例代码:

1.	room.userName= settings.userName;

1.6 设置纯音频互动

纯音频互动下,能看到对方画面和听到对方声音。但对方不能看到本端画面,只能听到本端声音。
类型;参数
默认值:NO
@property (nonatomic, assign) BOOL isOnlyAudio;

示例代码:

1.	output.isOnlyAudio = settings.isOnlyAudio;

1.7 设置允许多人互动

受移动端手机性能影响,我们不建议超过2人的音视频互动直播。SDK内我们的最大上限是房间内最多6人。但是在互动直播场景下,我们希望房间内视频通道最多2条(即最多两人开起视频通道,其他人都使用纯音频互动)
类型;参数
默认值:NO
@property (nonatomic, assign) BOOL enableMutilVideoPlayer;

示例代码:

1.	output.enableMutilVideoPlayer = NO;

1.8 设置输出视频混流模式

互动房间内的视频是多路视频,如果我们希望他们混合成一路视频画面,传递给下一个处理模块,此时就需要设置视频混流的模式。
当前我们支持左右、上下、内嵌三种模式将本地和远端的视频混合在一起。
类型:参数
默认值:BDCloudAVMetalBufferBlendTypeHorizontal
@property (nonatomic, assign) BDCloudAVMetalBufferBlendType outputVideoBlendType;

示例代码:

1.	// 这里我们设置成内嵌模式
2.	output.outputVideoBlendType = BDCloudAVMetalBufferBlendTypeEmbedded;

1.9 设置输出视频混流内嵌模式下的起点坐标

当设置成了内嵌模式,远端画面相对于本地画面是可以设置起始位置的,更加的定制化。 注意:该参数仅适用于内嵌模式
类型:参数 默认值:{ 0 , 0 } @property (nonatomic, assign) CGPoint outputVideoBlendRemotePosition;

示例代码:

1.	// 这里我们设置成内左上角
2.	output.outputVideoBlendRemotePosition = CGPointMake(0, 0);

1.10 设置输出视频混流内嵌模式下的缩放系数

当设置成了内嵌模式,远端画面相对于本地画面是可以设置缩放比的,更加的定制化。 注意:该参数仅适用于内嵌模式
类型:参数
默认值:0.5
@property (nonatomic, assign) float outputVideoBlendRemoteScale;

示例代码:

1.	// 这里我们设置0.3倍
2.	output. outputVideoBlendRemoteScale = 0.3;
相似文档
  • 本文主要介绍如何快速地将SDK(Android)集成到您的项目中,按照如下步骤进行配置,就可以完成SDK的集成工作。 1.1 适用场景: 互动直播: 在直播推流及RTC实时视频通话场景下,不仅可以使用美颜、美妆、滤镜等进行视频特效美化,还能通过丰富的2D/3D贴纸、人脸/肢体特效游戏、AR互动礼物等提升场景的趣味性与互动性,激发更高商业价值。
  • 音视频直播拉流相对与推流场景更加的常见。主要是使用支持实时在线流的播放器进行播放。(支持HTTP-FLV;、HLS、SRT等协议的播放器)
  • LiveConfig用于配置视频采集/编码参数、音频采集/编码参数、及推流参数配置等。 视频采集/编码配置信息包括: 前后置摄像头:设置初始化拍摄器时使用前置或后置相机。 摄像头旋转角度:设置摄像头方向。 视频分辨率:视频采集及编码分辨率,视频编码场景中分辨率与清晰度正相关。
  • 普通推流拥有与AR直播相同的通用接口,不同的是普通推流使用SurfaceView 作为本地预览控件,视频直接通过相机获取,相机接口与AR直播使用的AR 相机接口不同。
  • 音视频互动直播是指两个或两个以上人通过连麦方式进行超低延迟的互动,并将互动的音视频数据传递其他的不同观众。音视频互动直播通常是连麦互动场景。通过连麦可以让主播和连麦观众进行超低延迟的音视频通话,然后由主播将互动数据分发给直播观众。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部