ZegoMixStreamConfig Class Reference

Inherits from NSObject
Declared in zego-api-mix-stream-defines-oc.h

Overview

混流配置

  outputFps

混流输出视频帧率,值范围:[1,30],根据网络情况设定该值,帧率越高画面越流畅。

@property (nonatomic, assign) int outputFps

Declared In

zego-api-mix-stream-defines-oc.h

  outputRateControlMode

  • 混流输出码率控制模式,0 表示 CBR 恒定码率,1 表示 CRF 恒定质量,默认值为 0。
@property (nonatomic, assign) int outputRateControlMode

Discussion

  • CRF 恒定质量 表示保证视频的清晰度在固定水平上,因此若采用此控制模式,码率会根据网速的变化波动。

  • 比如游戏类直播时,为了让观众看到比较流畅的操作类画面会使用恒定质量模式,提升视频质量。

Declared In

zego-api-mix-stream-defines-oc.h

  outputBitrate

  • 混流输出视频码率,输出码率控制模式参数设置为 CBR恒定码率 时此设置值生效。
@property (nonatomic, assign) int outputBitrate

Discussion

  • 视频码率值范围:(0M,10M],此参数单位是 bps,1M = 1 * 1000 * 1000 bps
  • 若设置了 ZegoMixStreamOutput.videoBitrate,则本参数会被忽略
  • @warning Deprecated, 请使用 ZegoMixStreamOutput.videoBitrate 代替

Declared In

zego-api-mix-stream-defines-oc.h

  outputQuality

  • 混流输出质量,输出码率控制模式参数设置为 CRF恒定质量 时此设置值有效,有效值范围 [0,51],默认值是 23。
@property (nonatomic, assign) int outputQuality

Discussion

  • 若想视频质量好点,在23的基础上降低质量值测试调整。

  • 若想文件大小小一点,在23的基础上升高质量值测试调整;

  • 以 x 值下的文件大小为例, x + 6 值下的文件大小是 x 值下文件大小的一半,x - 6 值下的文件大小是 x 值下文件大小的两倍。

Declared In

zego-api-mix-stream-defines-oc.h

  outputAudioBitrate

  • 混流输出音频码率,码率范围值是[10000, 192000]。
@property int outputAudioBitrate

Discussion

  • 若音频编码格式采用 默认音频编码–即 outputAudioConfig 参数填 0,采用 1/2声道时,对应的建议码率值是 48k/64k,可根据需要在此基础上调整。

  • 若音频编码格式采用 可选音频编码–即 outputAudioConfig 参数填 1,采用 1/2声道时,对应的建议码率值是 80k/128k,可根据需要在此基础上调整。

Declared In

zego-api-mix-stream-defines-oc.h

  outputResolution

  • 混流输出视频分辨率,不确定用什么分辨率时可采用16:9的规格设置。
@property (nonatomic, assign) CGSize outputResolution

Discussion

  • 此参数中的宽必须大于等于 输入流列表中所有输入流中最大的分辨率宽,即right布局值;此参数中的高必须大于等于 输入流列表中所有输入流中最大的分辨率高,即bottom布局值;且输入流的布局位置不能超出此参数规定的范围。

Declared In

zego-api-mix-stream-defines-oc.h

  outputAudioConfig

  • 混流输出音频编码格式,可选值为 0–默认编码,1–可选编码;默认值为 0。
@property (nonatomic, assign) int outputAudioConfig

Discussion

  • 0–默认编码:在低码率下,编码后的音质要明显好于 1–可选编码,在码率较大后,达到128kbps及以上,两种编码后的音质近乎相同。

  • 1–可选编码:优点在于低复杂性,能兼容更多的设备播放;但是目前经过 0–默认编码 编码后的音频不能正常播放的情况很少。

Declared In

zego-api-mix-stream-defines-oc.h

  inputStreamList

混流输入流列表,SDK 根据输入流列表中的流进行混流。

@property (nonatomic, strong) NSMutableArray<ZegoMixStreamInput*> *inputStreamList

Declared In

zego-api-mix-stream-defines-oc.h

  outputList

混流输出流列表

@property (nonatomic, strong) NSMutableArray<ZegoMixStreamOutput*> *outputList

Declared In

zego-api-mix-stream-defines-oc.h

  userData

  • 用户自定义数据
@property (nonatomic, strong) NSData *userData

Discussion

  • 注意:userData自定义的数据通过媒体次要信息的 -onRecvMediaSideInfo:ofStream: 接口回调出来。

Declared In

zego-api-mix-stream-defines-oc.h

  channels

混流声道数,1-单声道,2-双声道,默认为单声道。

@property (nonatomic, assign) int channels

Declared In

zego-api-mix-stream-defines-oc.h

  outputBackgroundColor

  • 混流背景颜色,前三个字节为 RGB,即 0xRRGGBBxx。
@property (nonatomic, assign) int outputBackgroundColor

Discussion

  • 例如:选取RGB为 #87CEFA 作为背景色,此处写为 0x87CEFA00。

Declared In

zego-api-mix-stream-defines-oc.h

  outputBackgroundImage

  • 混流背景图,支持预设图片,如 (preset-id://xxx)
@property (nonatomic, copy) NSString *outputBackgroundImage

Discussion

  • 此值由 ZEGO 提供,开发者先将背景图提供给 ZEGO,ZEGO 设置后再反馈背景图片的设置参数。

Declared In

zego-api-mix-stream-defines-oc.h

  withSoundLevel

是否开启音浪。YES:开启,NO:关闭;默认值是NO。

@property (nonatomic, assign) BOOL withSoundLevel

Declared In

zego-api-mix-stream-defines-oc.h

  audioMixMode

  • 混音模式,0 表示 raw 模式,1 表示 focus 模式,默认值为 0。
@property (nonatomic, assign) int audioMixMode

Discussion

  • raw模式:普通模式,未开启焦点语音功能。

  • focus模式:开启焦点语音功能,当未指定流(ZegoMixStreamInput.audioFocus = false)时,会自动突出4路流的音频。

  • focus模式:开启焦点语音功能,当指定流(ZegoMixStreamInput.audioFocus = true,最多同时4路流)时,如果小于4路流,会自动挑选其他流凑够4路,突出这4路流的音频。

Declared In

zego-api-mix-stream-defines-oc.h

  extra

扩展信息,备用。

@property (nonatomic, assign) int extra

Declared In

zego-api-mix-stream-defines-oc.h

  watermark

混流水印

@property (nonatomic, strong) ZegoMixStreamWatermark *watermark

Declared In

zego-api-mix-stream-defines-oc.h

  whiteboard

混流白板

@property (nonatomic, strong) ZegoMixStreamWhiteboard *whiteboard

Declared In

zego-api-mix-stream-defines-oc.h

  singleStreamPassThrough

  • 混流输入为一条流时,是否混流;非必填参数。YES:不对单流混流,混流输出的流属性与单流一致(分辨率,编码格式等),混流配置中设置的分辨率等配置无效;NO:混单流,混流服务器会对此单流重新编解码,混流输出的流属性与混流配置相同。
@property (nonatomic, assign) BOOL singleStreamPassThrough

Discussion

  • 若需要开启此功能,请与即构技术支持联系。

Declared In

zego-api-mix-stream-defines-oc.h

  streamAlignment

参考 streamAlignmentType (Deprecated: 参考 streamAlignmentType)

@property (nonatomic, assign) BOOL streamAlignment

Declared In

zego-api-mix-stream-defines-oc.h

  streamAlignmentType

  • 网络时间对齐模式;非必填参数。0:关闭混流时间对齐功能;1:尽量对齐。
@property (nonatomic, assign) int streamAlignmentType

Discussion

  • 尽量对齐指:调用setStreamAlignmentProperty设置的推流用网络时间对齐,其它流不对齐。

Declared In

zego-api-mix-stream-defines-oc.h

  advancedConfig

高级配置选项,适用于某些定制化的需求,格式 “config1=xxx;config2=xxx"。 请与即构技术支持联系了解可支持字段。

@property (nonatomic, copy) NSString *advancedConfig

Declared In

zego-api-mix-stream-defines-oc.h

  minPlayStreamBufferLength

混流服务器拉取输入流的 jitter buffer 长度

@property (nonatomic, assign) int minPlayStreamBufferLength

Discussion

推流端网络抖动较大的场景,可以增加 buffer 长度,通过增加延迟的方式降低卡顿。 推流端网络抖动较小的场景,可以减小 buffer 长度,降低延迟。 在实时合唱 KTV 场景下,推流端网络轻微波动可能会导致混流的卡顿,此时观众拉混流的时候,会有比较高概率出现卡顿的问题。 通过调节混流服务器拉流的 jitter buffer 长度,可优化观众端拉混流出现的卡顿问题。 默认不设置,即服务端使用默认的配置值。 只会对新的输入流设置生效,对于已经开始混流的输入流不生效。

Declared In

zego-api-mix-stream-defines-oc.h