HWDeviceType
enum bytertc::HWDeviceType
cpp

硬件加速设备类型

Defined in : bytertc_advance.h

枚举值
类型值说明
kHWDeviceTypeNone0未知的设备类型
kHWDeviceTypeD3D111direct3d 11 视频加速设备
kHWDeviceTypeCuda2cuda 硬件加速设备
kHWDeviceTypeQsv3intel 平台下 qsv 加速设备
kHWDeviceTypeDxva24windows 平台 dx 硬件加速设备
kHWDeviceTypeMediaCodec5Android 平台下硬件加速设备 mediacodec
kHWDeviceTypeVideoToolbox6IOS、MACOS 平台下硬件加速设备 VideoToolbox
kHWDeviceTypeEglContext7android、linux 平台下硬件加速设备 egl context
kHWDeviceTypeVaapi8linux、windows 平台下硬件加速设备 va context
IHWDeviceContext
class bytertc::IHWDeviceContext
cpp

硬件加速设备 context

Defined in : bytertc_advance.h

成员函数
返回名称
virtual HWDeviceTypedeviceType
virtual voidsetProperty
virtual void*getProperty
virtual boolownContext
virtual voidsetOwnContext
virtual IHWDeviceContext*moveContext
virtual voidrelease
函数说明

deviceType
virtual HWDeviceType bytertc::IHWDeviceContext::deviceType() const
cpp

获取硬件加速设备 context 类型

返回值
硬件加速设备类型,详见 HWDeviceType

setProperty
virtual void bytertc::IHWDeviceContext::setProperty(
    HWDeviceContextKey key,
    void* value)
cpp

设置属性

传入参数

参数名类型说明
keyHWDeviceContextKey硬件加速设备 context 类型,详见 ByteRTCHWDeviceContextKey:ByteRTCHWDeviceContextKey
valuevoid*指向硬件加速设备 context 地址的指针

getProperty
virtual void* bytertc::IHWDeviceContext::getProperty(
    HWDeviceContextKey key)
cpp

获取属性

传入参数

参数名类型说明
keyHWDeviceContextKey硬件加速设备 context 类型,详见 ByteRTCHWDeviceContextKey:ByteRTCHWDeviceContextKey

返回值
返回硬件加速设备 context 地址的指针

ownContext
virtual bool bytertc::IHWDeviceContext::ownContext() const
cpp

内部 context 是否由该实例拥有

返回值

setOwnContext
virtual void bytertc::IHWDeviceContext::setOwnContext(
    bool own_context)
cpp

设置 context 是否被实例对象拥有

传入参数

参数名类型说明
own_contextbool• true: context 被实例对象拥有
• false: context 不被实例对象拥有

moveContext
virtual IHWDeviceContext* bytertc::IHWDeviceContext::moveContext()
cpp

转移硬件设备 context,

返回值
指向硬件设备 context 的指针

release
virtual void bytertc::IHWDeviceContext::release()
cpp

释放实例对象

AudioSampleRate
enum bytertc::AudioSampleRate
cpp

音频采样率,单位为 Hz。

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioSampleRateAuto-1默认设置。48000Hz。
kAudioSampleRate800080008000Hz
kAudioSampleRate160001600016000Hz
kAudioSampleRate320003200032000Hz
kAudioSampleRate441004410044100Hz
kAudioSampleRate480004800048000Hz
AudioChannel
enum bytertc::AudioChannel
cpp

音频声道。

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioChannelAuto-1默认设置。
kAudioChannelMono1单声道
kAudioChannelStereo2双声道
AudioFormat
struct bytertc::AudioFormat
cpp

音频格式

Defined in : bytertc_audio_defines.h

成员变量
类型名称
AudioSampleRatesample_rate
AudioChannelchannel
变量说明

sample_rate
AudioSampleRate bytertc::AudioFormat::sample_rate;
cpp

音频采样率,详见 AudioSampleRate

channel
AudioChannel bytertc::AudioFormat::channel;
cpp

音频声道,详见 AudioChannel

AudioProcessorMethod
enum bytertc::AudioProcessorMethod
cpp

返回给音频处理器的音频类型。

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioFrameProcessorRecord0本地采集的音频。
kAudioFrameProcessorPlayback1远端音频流的混音音频。
kAudioFrameProcessorRemoteUser2各个远端音频流。
kAudioFrameProcessorScreen4屏幕共享音频。
RTCAudioDeviceType
enum bytertc::RTCAudioDeviceType
cpp

音频设备类型

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kRTCAudioDeviceTypeUnknown-1未知设备类型
kRTCAudioDeviceTypeRenderDevice0音频渲染设备
kRTCAudioDeviceTypeCaptureDevice1音频采集设备
kRTCAudioDeviceTypeScreenCaptureDevice2屏幕流音频设备
AudioRoute
enum bytertc::AudioRoute
cpp

音频播放设备

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioRouteDefault-1默认设备
kAudioRouteHeadset1有线耳机
kAudioRouteEarpiece2听筒
kAudioRouteSpeakerphone3扬声器
kAudioRouteHeadsetBluetooth4蓝牙耳机
kAudioRouteHeadsetUSB5USB设备
AudioPlaybackDevice
enum bytertc::AudioPlaybackDevice
cpp

音频播放设备

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioPlaybackDeviceHeadset1有线耳机
kAudioPlaybackDeviceEarpiece2听筒
kAudioPlaybackDeviceSpeakerphone3扬声器
kAudioPlaybackDeviceHeadsetBluetooth4蓝牙耳机
kAudioPlaybackDeviceHeadsetUSB5USB设备
AudioScenarioType
enum bytertc::AudioScenarioType
cpp

音频场景类型。

选择音频场景后,RTC 会自动根据客户端音频采集播放设备和采集播放状态,适用通话音量/媒体音量。

如果预设的音频场景类型无法满足你的业务需要,请联系技术支持人员进行定制。

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioScenarioTypeMusic0音乐场景。默认为此场景。

此场景适用于对音乐表现力有要求的场景。如音乐直播等。

音频采集播放设备和采集播放状态,到音量类型的映射如下:






不采集音频采集音频备注
设备自带麦克风和扬声器/听筒媒体音量通话音量/
有线耳机/ USB 耳机/ 外置声卡媒体音量媒体音量/
蓝牙耳机媒体音量媒体音量即使蓝牙耳机有麦克风,也只能使用设备自带麦克风进行本地音频采集。
kAudioScenarioTypeHighQualityCommunication1高质量通话场景。

此场景适用于对音乐表现力有要求,但又希望能够使用蓝牙耳机上自带的麦克风进行音频采集的场景。
此场景下,更倾向于使用媒体音量。由此,可能引起开关麦时音量突变。如不希望有此突变,请使用 kAudioScenarioTypeHighQualityChat。
此场景可以兼顾外放/使用蓝牙耳机时的音频体验;并尽可能避免使用蓝牙耳机时音量类型切换导致的听感突变。

音频采集播放设备和采集播放状态,到音量类型的映射如下:






不采集音频采集音频备注
设备自带麦克风和扬声器/听筒媒体音量通话音量/
有线耳机/ USB 耳机/ 外置声卡媒体音量媒体音量/
蓝牙耳机通话音量通话音量能够使用蓝牙耳机上自带的麦克风进行音频采集。
kAudioScenarioTypeCommunication2纯通话音量场景。

此场景下,无论客户端音频采集播放设备和采集播放状态,全程使用通话音量。

适用于需要频繁上下麦的通话或会议场景。

此场景可以保持统一的音频模式,不会有音量突变的听感;

最大程度上的消除回声,使通话清晰度达到最优;

使用蓝牙耳机时,能够使用蓝牙耳机上自带的麦克风进行音频采集。

但是,使用媒体音量进行播放的其他音频的音量会被压低,且音质会变差。
kAudioScenarioTypeMedia3纯媒体场景。一般不建议使用。
此场景下,无论客户端音频采集播放设备和采集播放状态,全程使用媒体音量。
外放通话时,可能出现回声和啸叫,请联系技术支持人员。
kAudioScenarioTypeGameStreaming4游戏媒体场景。仅适合游戏场景。
若外放通话且无游戏音效消除优化时音质不理想,请联系技术支持人员。
音频采集播放设备和采集播放状态,到音量类型的映射如下:






不采集音频采集音频备注
设备自带麦克风和扬声器/听筒媒体音量媒体音量/
有线耳机/ USB 耳机/ 外置声卡媒体音量媒体音量/
蓝牙耳机通话音量通话音量能够使用蓝牙耳机上自带的麦克风进行音频采集。
kAudioScenarioTypeHighQualityChat5高质量畅聊场景。

此场景和 kAudioScenarioTypeHighQualityCommunication 高度类似,唯一的差异在于:此场景下,在使用设备自带的麦克风和扬声器/听筒进行通话时,开关麦始终采用通话音量,不会引起音量类型突变。

音频采集播放设备和采集播放状态,到音量类型的映射如下:






不采集音频采集音频备注
设备自带麦克风和扬声器/听筒通话音量通话音量/
有线耳机/ USB 耳机/ 外置声卡媒体音量媒体音量/
蓝牙耳机通话音量通话音量能够使用蓝牙耳机上自带的麦克风进行音频采集。
VoiceChangerType
enum bytertc::VoiceChangerType
cpp

变声特效类型。如需更多类型,联系技术支持。

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kVoiceChangerTypeOriginal0原声,不含特效
kVoiceChangerTypeGiant1巨人
kVoiceChangerTypeChipmunk2花栗鼠
kVoiceChangerTypeMinionst3小黄人
kVoiceChangerTypeVibrato4颤音
kVoiceChangerTypeRobot5机器人
VoiceReverbType
enum bytertc::VoiceReverbType
cpp

Private method. 混响特效类型

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kVoiceReverbTypeOriginal0原声,不含特效
kVoiceReverbTypeEcho1回声
kVoiceReverbTypeConcert2演唱会
kVoiceReverbTypeEthereal3空灵
kVoiceReverbTypeKTV4KTV
kVoiceReverbTypeStudio5录音棚
kVoiceReverbTypeVirtualStereo6虚拟立体声
kVoiceReverbTypeSpacious7空旷
kVoiceReverbType3D83D人声
VoiceEqualizationBandFrequency
enum bytertc::VoiceEqualizationBandFrequency
cpp

音频均衡效果。

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kVoiceEqualizationBandFrequency310中心频率为 31Hz 的频带。
kVoiceEqualizationBandFrequency621中心频率为 62Hz 的频带。
kVoiceEqualizationBandFrequency1252中心频率为 125Hz 的频带。
kVoiceEqualizationBandFrequency2503中心频率为 250Hz 的频带。
kVoiceEqualizationBandFrequency5004中心频率为 500Hz 的频带。
kVoiceEqualizationBandFrequency1k5中心频率为 1kHz 的频带。
kVoiceEqualizationBandFrequency2k6中心频率为 2kHz 的频带。
kVoiceEqualizationBandFrequency4k7中心频率为 4kHz 的频带。
kVoiceEqualizationBandFrequency8k8中心频率为 8kHz 的频带。
kVoiceEqualizationBandFrequency16k9中心频率为 16kHz 的频带。
VoiceEqualizationConfig
struct bytertc::VoiceEqualizationConfig
cpp

语音均衡效果。

Defined in : bytertc_audio_defines.h

成员变量
类型名称
VoiceEqualizationBandFrequencyfrequency
intgain
变量说明

frequency
VoiceEqualizationBandFrequency bytertc::VoiceEqualizationConfig::frequency;
cpp

频带。参看 VoiceEqualizationBandFrequency。

gain
int bytertc::VoiceEqualizationConfig::gain;
cpp

频带增益(dB)。取值范围是 [-15, 15]。

VoiceReverbConfig
struct bytertc::VoiceReverbConfig
cpp

音频混响效果。

Defined in : bytertc_audio_defines.h

成员变量
类型名称
floatroom_size
floatdecay_time
floatdamping
floatwet_gain
floatdry_gain
floatpre_delay
变量说明

room_size
float bytertc::VoiceReverbConfig::room_size = 50.0f;
cpp

混响模拟的房间大小,取值范围 [0.0, 100.0]。默认值为 50.0f。房间越大,混响越强。

decay_time
float bytertc::VoiceReverbConfig::decay_time = 50.0f;
cpp

混响的拖尾长度,取值范围 [0.0, 100.0]。默认值为 50.0f。

damping
float bytertc::VoiceReverbConfig::damping = 50.0f;
cpp

混响的衰减阻尼大小,取值范围 [0.0, 100.0]。默认值为 50.0f。

wet_gain
float bytertc::VoiceReverbConfig::wet_gain = 0.0f;
cpp

早期反射信号强度。取值范围 [-20.0, 10.0],单位为 dB。默认值为 0.0f。

dry_gain
float bytertc::VoiceReverbConfig::dry_gain = 0.0f;
cpp

原始信号强度。取值范围 [-20.0, 10.0],单位为 dB。默认值为 0.0f。

pre_delay
float bytertc::VoiceReverbConfig::pre_delay = 0.0f;
cpp

早期反射信号的延迟。取值范围 [0.0, 200.0],单位为 ms。默认值为 0.0f。

AudioVolumeInfo
struct bytertc::AudioVolumeInfo
cpp

音频流来源的用户 ID 及对应的音量。

Defined in : bytertc_audio_defines.h

成员变量
类型名称
intlinear_volume
intnonlinear_volume
const char*uid
变量说明

linear_volume
int bytertc::AudioVolumeInfo::linear_volume;
cpp

线性音量,取值范围是:[0, 255],与原始音量呈线性关系,数值越大,音量越大。
无声为 25 以下(绝对无声为 0,25 以下可视为无声),低音量为 25~76,中音量为 76~204,高音量为 204 以上。

nonlinear_volume
int bytertc::AudioVolumeInfo::nonlinear_volume;
cpp

非线性音量,取值范围是:[–127, 0],单位 dB。此音量范围是将原始音量进行对数转化,在中低音量时分辨更为灵敏,适用于 Active Speaker(房间内最活跃用户)的识别。
高音量为 0~–20 dB,中音量为 –20~–40dB,低音量为 –40~–60dB,若低于 –60 dB,则为无声。

uid
const char* bytertc::AudioVolumeInfo::uid;
cpp

音频流来源的用户 ID

AudioMixingState
enum bytertc::AudioMixingState
cpp

音频混音文件播放状态。

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioMixingStatePreloaded0混音已加载
kAudioMixingStatePlaying1混音正在播放
kAudioMixingStatePaused2混音暂停
kAudioMixingStateStopped3混音停止
kAudioMixingStateFailed4混音播放失败
kAudioMixingStateFinished5混音播放结束
kAudioMixingStatePCMEnabled6准备PCM混音
kAudioMixingStatePCMDisabled7PCM混音播放结束
AudioMixingError
enum bytertc::AudioMixingError
cpp

混音错误码。

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioMixingErrorOk0正常
kAudioMixingErrorPreloadFailed1预加载失败。找不到混音文件或者文件长度超出 20s
kAudioMixingErrorStartFailed2混音开启失败。找不到混音文件或者混音文件打开失败
kAudioMixingErrorIdNotFound3混音 ID 异常
kAudioMixingErrorSetPositionFailed4设置混音文件的播放位置出错
kAudioMixingErrorInValidVolume5音量参数不合法,仅支持设置的音量值为[0, 400]
kAudioMixingErrorLoadConflict6播放的文件与预加载的文件不一致。请先使用 unloadAudioMixing 卸载此前的文件。
kAudioMixingErrorIdTypeNotMatch7不支持此混音类型。
kAudioMixingErrorInValidPitch8设置混音文件的音调不合法
kAudioMixingErrorInValidAudioTrack9设置混音文件的音轨不合法
kAudioMixingErrorIsStarting10混音文件正在启动中
kAudioMixingErrorInValidPlaybackSpeed11设置混音文件的播放速度不合法
EarMonitorMode
enum bytertc::EarMonitorMode
cpp

是否开启耳返功能

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kEarMonitorModeOff0不开启
kEarMonitorModeOn1开启
AudioFormatType
enum class bytertc::AudioFormatType
cpp

音频输入格式

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kRawPCMs160
kRawPCMs321
BluetoothMode
enum bytertc::BluetoothMode
cpp

蓝牙模式, 仅能在媒体模式下被设置

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kBluetoothModeAuto0自动选择模式
kBluetoothModeA2DP1使用A2DP模式
kBluetoothModeHFP2HFP 模式
AudioSourceType
enum bytertc::AudioSourceType
cpp

音频输入源类型

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioSourceTypeExternal0
kAudioSourceTypeInternal1
AudioRenderType
enum bytertc::AudioRenderType
cpp

音频输出类型

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioRenderTypeExternal0
kAudioRenderTypeInternal1
ASRAuthorizationType
enum bytertc::ASRAuthorizationType
cpp

语音识别服务鉴权方式,详情请咨询语音识别服务相关人员

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kASRAuthorizationTypeToken0Token 鉴权
kASRAuthorizationTypeSignature1Signature 鉴权
RTCASRConfig
struct bytertc::RTCASRConfig
cpp

使用自动语音识别服务所需校验信息

Defined in : bytertc_audio_defines.h

成员变量
类型名称
const char*app_id
const char*user_id
ASRAuthorizationTypeauthorization_type
const char*access_token
const char*secret_key
const char*cluster
变量说明

app_id
const char* bytertc::RTCASRConfig::app_id;
cpp

应用 ID

user_id
const char* bytertc::RTCASRConfig::user_id;
cpp

用户 ID

authorization_type
ASRAuthorizationType bytertc::RTCASRConfig::authorization_type;
cpp

鉴权方式,参看 ASRAuthorizationType

access_token
const char* bytertc::RTCASRConfig::access_token;
cpp

访问令牌

secret_key
const char* bytertc::RTCASRConfig::secret_key;
cpp

私钥。Signature 鉴权模式下不能为空,token 鉴权模式下为空。参看关于鉴权

cluster
const char* bytertc::RTCASRConfig::cluster;
cpp

场景信息,参看业务集群

AudioMixingType
enum bytertc::AudioMixingType
cpp

混音播放类型

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioMixingTypePlayout0仅本地播放
kAudioMixingTypePublish1仅远端播放
kAudioMixingTypePlayoutAndPublish2本地和远端同时播放
AudioMixingConfig
struct bytertc::AudioMixingConfig
cpp

混音配置

Defined in : bytertc_audio_defines.h

成员变量
类型名称
AudioMixingTypetype
intplay_count
intposition
int64_tcallback_on_progress_interval
boolsync_progress_to_record_frame
变量说明

type
AudioMixingType bytertc::AudioMixingConfig::type;
cpp

混音播放类型,详见 AudioMixingType

play_count
int bytertc::AudioMixingConfig::play_count;
cpp

混音播放次数,

position
int bytertc::AudioMixingConfig::position;
cpp

混音时音频文件播放进度条位置,参数为整数,单位为毫秒

callback_on_progress_interval
int64_t bytertc::AudioMixingConfig::callback_on_progress_interval = 0;
cpp

设置音频文件播放进度回调的时间间隔,参数为大于 0 的 10 的倍数,单位为毫秒,设置后 SDK 将按照设置的值触发 onAudioMixingPlayingProgress 回调,默认不回调。

sync_progress_to_record_frame
bool bytertc::AudioMixingConfig::sync_progress_to_record_frame = false;
cpp

在采集音频数据时,附带本地混音文件播放进度的时间戳。启用此功能会提升远端人声和音频文件混音播放时的同步效果。

注意:

AudioMixingDualMonoMode
enum bytertc::AudioMixingDualMonoMode
cpp

混音播放声道类型

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioMixingDualMonoModeAuto0和音频文件一致
kAudioMixingDualMonoModeL1只能听到音频文件中左声道的音频
kAudioMixingDualMonoModeR2只能听到音频文件中右声道的音频
kAudioMixingDualMonoModeMix3能同时听到音频文件中左右声道的音频
AudioReportMode
enum bytertc::AudioReportMode
cpp

音量回调模式。

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioReportModeNormal0默认始终开启音量回调。
kAudioReportModeDisconnect1可见用户进房并停止推流后,关闭音量回调。
kAudioReportModeReset2可见用户进房并停止推流后,开启音量回调,回调值重置为0。
AudioPropertiesMode
enum bytertc::AudioPropertiesMode
cpp

onLocalAudioPropertiesReport 中包含的音频信息的范围。

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioPropertiesModeMicrophone0仅包含本地麦克风采集的音频数据和本地屏幕音频采集数据。
kAudioPropertiesModeAudioMixing1包含以下信息:
+ 本地麦克风采集的音频数据和本地屏幕音频采集数据;
+ 本地混音的音频数据。
AudioPropertiesConfig
struct bytertc::AudioPropertiesConfig
cpp

音频属性信息提示的相关配置。

Defined in : bytertc_audio_defines.h

成员变量
类型名称
intinterval
boolenable_spectrum
boolenable_vad
AudioReportModelocal_main_report_mode
floatsmooth
AudioPropertiesModeaudio_report_mode
变量说明

interval
int bytertc::AudioPropertiesConfig::interval = 0;
cpp

信息提示间隔,单位:ms

enable_spectrum
bool bytertc::AudioPropertiesConfig::enable_spectrum = false;
cpp

是否开启音频频谱检测。

enable_vad
bool bytertc::AudioPropertiesConfig::enable_vad = false;
cpp

是否开启人声检测 (VAD)。

local_main_report_mode
AudioReportMode bytertc::AudioPropertiesConfig::local_main_report_mode = kAudioReportModeNormal;
cpp

音量回调配置模式。详见 AudioReportMode。

smooth
float bytertc::AudioPropertiesConfig::smooth = 1.0f;
cpp

适用于音频属性信息提示的平滑系数。取值范围是 (0.0, 1.0]。

默认值为 1.0,不开启平滑效果;值越小,提示音量平滑效果越明显。如果要开启平滑效果,可以设置为 0.3。

audio_report_mode
AudioPropertiesMode bytertc::AudioPropertiesConfig::audio_report_mode = kAudioPropertiesModeMicrophone;
cpp

onLocalAudioPropertiesReport 中包含音频数据的范围。参看 AudioPropertiesMode。
默认仅包含本地麦克风采集的音频数据和本地屏幕音频采集数据。

AudioPropertiesInfo
struct bytertc::AudioPropertiesInfo
cpp

音频属性信息

Defined in : bytertc_audio_defines.h

成员变量
类型名称
intlinear_volume
intnonlinear_volume
floatspectrum
intvad
变量说明

linear_volume
int bytertc::AudioPropertiesInfo::linear_volume = 0;
cpp

线性音量,与原始音量呈线性关系,数值越大,音量越大。取值范围是:[0,255]。

nonlinear_volume
int bytertc::AudioPropertiesInfo::nonlinear_volume = 0;
cpp

非线性音量。由原始音量的对数值转化而来,因此在中低音量时更灵敏,可以用作 Active Speaker(房间内最活跃用户)的识别。取值范围是:[-127,0],单位 dB。

spectrum
float bytertc::AudioPropertiesInfo::spectrum[SPECTRUM_SIZE] = {0};
cpp

频谱数组。默认长度为 257。

vad
int bytertc::AudioPropertiesInfo::vad = -1;
cpp

人声检测(VAD)结果

RemoteAudioPropertiesInfo
struct bytertc::RemoteAudioPropertiesInfo
cpp

远端音频属性信息

Defined in : bytertc_audio_defines.h

成员变量
类型名称
RemoteStreamKeystream_key
AudioPropertiesInfoaudio_properties_info
变量说明

stream_key
RemoteStreamKey bytertc::RemoteAudioPropertiesInfo::stream_key;
cpp

远端流信息,详见 RemoteStreamKey

audio_properties_info
AudioPropertiesInfo bytertc::RemoteAudioPropertiesInfo::audio_properties_info;
cpp

音频属性信息,详见 AudioPropertiesInfo

LocalAudioPropertiesInfo
struct bytertc::LocalAudioPropertiesInfo
cpp

本地音频属性信息

Defined in : bytertc_audio_defines.h

成员变量
类型名称
StreamIndexstream_index
AudioPropertiesInfoaudio_properties_info
变量说明

stream_index
StreamIndex bytertc::LocalAudioPropertiesInfo::stream_index = StreamIndex::kStreamIndexMain;
cpp

流属性,主流或屏幕流。参看 StreamIndex

audio_properties_info
AudioPropertiesInfo bytertc::LocalAudioPropertiesInfo::audio_properties_info;
cpp

音频属性信息,详见 AudioPropertiesInfo

AudioProfileType
enum bytertc::AudioProfileType
cpp

音质档位

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioProfileTypeDefault0默认音质

服务器下发或客户端已设置的 RoomProfileType 的音质配置
kAudioProfileTypeFluent1流畅

单声道,采样率为 16 kHz,编码码率为 32 Kbps。

流畅优先、低功耗、低流量消耗,适用于大部分游戏场景,如小队语音、组队语音、国战语音等。
kAudioProfileTypeStandard2单声道标准音质。

采样率为 24 kHz,编码码率为 48 Kbps。

适用于对音质有一定要求的场景,同时延时、功耗和流量消耗相对适中,适合教育场景和狼人杀等游戏。
kAudioProfileTypeHD3双声道音乐音质

采样率为 48 kHz,编码码率为 128 kbps。

超高音质,同时延时、功耗和流量消耗相对较大,适用于连麦 PK 等音乐场景。

游戏场景不建议使用。
kAudioProfileTypeStandardStereo4双声道标准音质。采样率为 48 KHz,编码码率最大值为 80 Kbps
kAudioProfileTypeHDMono5单声道音乐音质。采样率为 48 kHz,编码码率最大值为 64 Kbps
AnsMode
enum bytertc::AnsMode
cpp

降噪模式。降噪算法受调用 joinRoom 时设置的房间模式影响。

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAnsModeDisable0禁用音频降噪。
kAnsModeLow1适用于微弱降噪。
kAnsModeMedium2适用于抑制中度平稳噪音,如空调声、风扇声。
kAnsModeHigh3适用于抑制嘈杂非平稳噪音,如键盘声、敲击声、碰撞声、动物叫声。
kAnsModeAutomatic4启用音频降噪能力。具体的降噪算法由 RTC 决定。
Position
struct bytertc::Position
cpp

本地用户在房间内的位置坐标,需自行建立空间直角坐标系

Defined in : bytertc_audio_defines.h

成员变量
类型名称
floatx
floaty
floatz
变量说明

x
float bytertc::Position::x;
cpp

x 坐标

y
float bytertc::Position::y;
cpp

y 坐标

z
float bytertc::Position::z;
cpp

z 坐标

Orientation
struct bytertc::Orientation
cpp

方向朝向信息

Defined in : bytertc_audio_defines.h

成员变量
类型名称
floatx
floaty
floatz
变量说明

x
float bytertc::Orientation::x;
cpp

x 坐标

y
float bytertc::Orientation::y;
cpp

y 坐标

z
float bytertc::Orientation::z;
cpp

z 坐标

HumanOrientation
struct bytertc::HumanOrientation
cpp

三维朝向信息,三个向量需要两两垂直。参看 Orientation。

Defined in : bytertc_audio_defines.h

成员变量
类型名称
Orientationforward
Orientationright
Orientationup
变量说明

forward
Orientation bytertc::HumanOrientation::forward =  { 1, 0, 0 };
cpp

正前方朝向,默认值为 {1,0,0},即正前方朝向 x 轴正方向

Orientation bytertc::HumanOrientation::right = { 0, 1, 0 };
cpp

正右方朝向,默认值为 {0,1,0},即右手朝向 y 轴正方向

up
Orientation bytertc::HumanOrientation::up = { 0, 0, 1 };
cpp

正上方朝向,默认值为 {0,0,1},即头顶朝向 z 轴正方向

AudioAbilityType
enum bytertc::AudioAbilityType
cpp

音频音量是否可设置

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioAbilityTypeUnknown-1未知
kAudioAbilityAble0音量可设置
kAudioAbilityUnable1音量不可设置
AudioAlignmentMode
enum bytertc::AudioAlignmentMode
cpp

远端音频流精准对齐模式

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioAlighmentModeOff0不对齐
kAudioAlighmentModeAudioMixing1远端音频流都对齐伴奏进度同步播放
AudioDeviceInfo
struct bytertc::AudioDeviceInfo
cpp

音频设备信息

Defined in : bytertc_audio_defines.h

成员变量
类型名称
chardevice_id
chardevice_name
chardevice_short_name
chardevice_container_id
int64_tdevice_vid
int64_tdevice_pid
DeviceTransportTypetransport_type
AudioAbilityTypevolume_settable
boolis_system_default
变量说明

device_id
char bytertc::AudioDeviceInfo::device_id[MAX_DEVICE_ID_LENGTH];
cpp

设备 ID

device_name
char bytertc::AudioDeviceInfo::device_name[MAX_DEVICE_ID_LENGTH];
cpp

设备全称,包含设备类型与设备名称。例如 "扬声器 (XYZ Audio Adapter)"

device_short_name
char bytertc::AudioDeviceInfo::device_short_name[MAX_DEVICE_ID_LENGTH];
cpp

设备名称,不含设备类型。例如 "XYZ Audio Adapter"

device_container_id
char bytertc::AudioDeviceInfo::device_container_id[MAX_DEVICE_ID_LENGTH];
cpp

设备所连接的声卡 ID,便于选择使用同一声卡的扬声器和麦克风。

device_vid
int64_t bytertc::AudioDeviceInfo::device_vid;
cpp

设备的厂商 ID

device_pid
int64_t bytertc::AudioDeviceInfo::device_pid;
cpp

设备的产品编码

transport_type
DeviceTransportType bytertc::AudioDeviceInfo::transport_type;
cpp

设备的传输方式

volume_settable
AudioAbilityType bytertc::AudioDeviceInfo::volume_settable;
cpp

是否支持设置音量

is_system_default
bool bytertc::AudioDeviceInfo::is_system_default;
cpp

是否系统默认设备

StandardPitchInfo
struct bytertc::StandardPitchInfo
cpp

标准音高数据

Defined in : bytertc_audio_defines.h

成员变量
类型名称
intstart_time
intduration
intpitch
变量说明

start_time
int bytertc::StandardPitchInfo::start_time;
cpp

开始时间,单位 ms。

duration
int bytertc::StandardPitchInfo::duration;
cpp

持续时间,单位 ms。

pitch
int bytertc::StandardPitchInfo::pitch;
cpp

音高。

MulDimSingScoringMode
enum bytertc::MulDimSingScoringMode
cpp

K 歌打分维度。

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kMulDimSingScoringModeNote0按照音高进行评分。
SingScoringConfig
struct bytertc::SingScoringConfig
cpp

K 歌评分配置。

Defined in : bytertc_audio_defines.h

成员变量
类型名称
AudioSampleRatesample_rate
MulDimSingScoringModemode
const char*lyrics_filepath
const char*midi_filepath
变量说明

sample_rate
AudioSampleRate bytertc::SingScoringConfig::sample_rate;
cpp

音频采样率。仅支持 44100 Hz、48000 Hz。

mode
MulDimSingScoringMode bytertc::SingScoringConfig::mode;
cpp

打分维度,详见 MulDimSingScoringMode。

lyrics_filepath
const char* bytertc::SingScoringConfig::lyrics_filepath;
cpp

歌词文件路径。打分功能仅支持 KRC 歌词文件。

midi_filepath
const char* bytertc::SingScoringConfig::midi_filepath;
cpp

歌曲 midi 文件路径。

SingScoringRealtimeInfo
struct bytertc::SingScoringRealtimeInfo
cpp

实时评分信息。

Defined in : bytertc_audio_defines.h

成员变量
类型名称
intcurrent_position
intuser_pitch
intstandard_pitch
intsentence_index
intsentence_score
inttotal_score
intaverage_score
变量说明

current_position
int bytertc::SingScoringRealtimeInfo::current_position;
cpp

当前播放进度。

user_pitch
int bytertc::SingScoringRealtimeInfo::user_pitch;
cpp

演唱者的音高。

standard_pitch
int bytertc::SingScoringRealtimeInfo::standard_pitch;
cpp

标准音高。

sentence_index
int bytertc::SingScoringRealtimeInfo::sentence_index;
cpp

歌词分句索引。

sentence_score
int bytertc::SingScoringRealtimeInfo::sentence_score;
cpp

上一句歌词的评分。

total_score
int bytertc::SingScoringRealtimeInfo::total_score;
cpp

当前演唱的累计分数。

average_score
int bytertc::SingScoringRealtimeInfo::average_score;
cpp

当前演唱的平均分数。

AudioFrameSource
enum bytertc::AudioFrameSource
cpp

音频文件录制内容来源。

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioFrameSourceMic0本地麦克风采集的音频数据。
kAudioFrameSourcePlayback1远端所有用户混音后的数据
kAudioFrameSourceMixed2本地麦克风和所有远端用户音频流的混音后的数据
AudioQuality
enum bytertc::AudioQuality
cpp

音频质量。

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioQualityLow0低音质
kAudioQualityMedium1中音质
kAudioQualityHigh2高音质
kAudioQualityUltraHigh3超高音质
AudioRecordingConfig
struct bytertc::AudioRecordingConfig
cpp

录音配置

Defined in : bytertc_audio_defines.h

成员变量
类型名称
const char*absolute_file_name
AudioFrameSourceframe_source
AudioSampleRatesample_rate
AudioChannelchannel
AudioQualityquality
变量说明

absolute_file_name
const char* bytertc::AudioRecordingConfig::absolute_file_name;
cpp

录制文件路径。一个有读写权限的绝对路径,包含文件名和文件后缀。

注意:
录制文件的格式仅支持 .aac 和 .wav。
录制文件的格式仅支持 .aac 和 .wav。

frame_source
AudioFrameSource bytertc::AudioRecordingConfig::frame_source;
cpp

录音内容来源,参看 AudioFrameSource。

sample_rate
AudioSampleRate bytertc::AudioRecordingConfig::sample_rate;
cpp

录音采样率。参看 AudioSampleRate。

channel
AudioChannel bytertc::AudioRecordingConfig::channel;
cpp

录音音频声道。参看 AudioChannel。
如果录制时设置的的音频声道数与采集时的音频声道数不同:

quality
AudioQuality bytertc::AudioRecordingConfig::quality;
cpp

录音音质。仅在录制文件格式为 .aac 时可以设置。参看 AudioQuality。

注意:
采样率为 32kHz 时,不同音质录制文件(时长为 10min)的大小分别是: + 低音质:1.2MB;

采样率为 32kHz 时,不同音质录制文件(时长为 10min)的大小分别是: + 低音质:1.2MB;

AudioRecordingState
enum bytertc::AudioRecordingState
cpp

录音配置

Defined in : bytertc_audio_defines.h

枚举值
类型值说明
kAudioRecordingStateError0录制异常
kAudioRecordingStateProcessing1录制进行中
kAudioRecordingStateSuccess2已结束录制,并且录制文件保存成功。
AudioFrameType
enum bytertc::AudioFrameType
cpp

音频帧类型

Defined in : bytertc_audio_frame.h

枚举值
类型值说明
kFrameTypePCM160PCM 16bit
AudioFrameBuilder
typedef struct bytertc::AudioFrameBuilder
cpp

音频帧构建类

Defined in : bytertc_audio_frame.h

成员变量
类型名称
AudioSampleRatesample_rate
AudioChannelchannel
int64_ttimestamp_us
uint8_t*data
int64_tdata_size
booldeep_copy
变量说明

sample_rate
AudioSampleRate bytertc::AudioFrameBuilder::sample_rate;
cpp

音频采样率

channel
AudioChannel bytertc::AudioFrameBuilder::channel;
cpp

音频通道数

timestamp_us
int64_t bytertc::AudioFrameBuilder::timestamp_us = 0;
cpp

音频帧时间戳,单位:微秒

data
uint8_t* bytertc::AudioFrameBuilder::data;
cpp

音频帧数据

data_size
int64_t bytertc::AudioFrameBuilder::data_size = 0;
cpp

音频帧数据大小

deep_copy
bool bytertc::AudioFrameBuilder::deep_copy = true;
cpp

是否深拷贝

IAudioFrame
class bytertc::IAudioFrame
cpp

音频帧

Defined in : bytertc_audio_frame.h

成员函数
返回名称
virtual int64_ttimestampUs
virtual AudioSampleRatesampleRate
virtual AudioChannelchannel
virtual uint8_t*data
virtual intdataSize
virtual AudioFrameTypeframeType
virtual voidrelease
virtual boolisMutedData
函数说明

timestampUs
virtual int64_t bytertc::IAudioFrame::timestampUs() const
cpp

获取音频帧时间戳。

返回值
音频帧时间戳,单位:微秒

sampleRate
virtual AudioSampleRate bytertc::IAudioFrame::sampleRate() const
cpp

获取音频采样率。参看 AudioSampleRate

返回值
音频采样率,单位:Hz

channel
virtual AudioChannel bytertc::IAudioFrame::channel() const
cpp

获取音频通道数。参看 AudioChannel

返回值
音频通道数

注意
双声道的情况下,左右声道的音频帧数据以 LRLRLR 形式排布。

data
virtual uint8_t* bytertc::IAudioFrame::data() const
cpp

获取音频帧内存块地址

返回值
音频帧内存块地址

dataSize
virtual int bytertc::IAudioFrame::dataSize() const
cpp

获取音频帧数据大小

返回值
音频帧数据大小,单位:字节。

frameType
virtual AudioFrameType bytertc::IAudioFrame::frameType() const
cpp

获取音频帧类型

返回值
音频帧类型,目前只支持 PCM,详见 AudioFrameType

release
virtual void bytertc::IAudioFrame::release()
cpp

释放音频帧

isMutedData
virtual bool bytertc::IAudioFrame::isMutedData() const
cpp

获取音频静音标志

返回值
是否静音数据

AudioFrameCallbackMethod
enum class bytertc::AudioFrameCallbackMethod
cpp

音频回调方法

Defined in : bytertc_audio_frame.h

枚举值
类型值说明
kAudioFrameCallbackRecord0本地麦克风录制的音频数据回调
kAudioFrameCallbackPlayback1订阅的远端所有用户混音后的音频数据回调
kAudioFrameCallbackMixed2本地麦克风录制和订阅的远端所有用户混音后的音频数据回调
kAudioFrameCallbackRemoteUser3订阅的远端每个用户混音前的音频数据回调
kAudioFrameCallbackRecordScreen4本地屏幕录制的音频数据回调
ReturnStatus
enum bytertc::ReturnStatus
cpp

方法调用结果。

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kReturnStatusSuccess0成功。
kReturnStatusFailure-1失败。
kReturnStatusParameterErr-2参数错误。
kReturnStatusWrongState-3接口状态错误。
kReturnStatusHasInRoom-4失败,用户已在房间内。
kReturnStatusHasInLogin-5失败,用户已登录。
kReturnStatusHasInEchoTest-6失败,用户已经在进行通话回路测试中。
kReturnStatusNeitherVideoNorAudio-7失败,音视频均未采集。
kReturnStatusRoomIdInUse-8失败,该 roomId 已被使用。
kReturnStatusScreenNotSupport-9失败,屏幕流不支持。
kReturnStatusAudioNoFrame-101失败,没有音频帧。
kReturnStatusAudioNotImplemented-102失败,未实现。
kReturnStatusAudioNoPermission-103失败,采集设备无麦克风权限,尝试初始化设备失败。
kReturnStatusAudioDeviceNotExists-104失败,设备不存在。当前没有设备或设备被移除时返回该值。
kReturnStatusAudioDeviceFormatNotSupport-105失败,设备音频格式不支持。
kReturnStatusAudioDeviceNoDevice-106失败,系统无可用设备。
kReturnStatusAudioDeviceCannotUse-107失败,当前设备不可用,需更换设备。
kReturnStatusAudioDeviceInitFailed-108系统错误,设备初始化失败。
kReturnStatusAudioDeviceStartFailed-109系统错误,设备开启失败。
StreamRemoveReason
enum bytertc::StreamRemoveReason
cpp

房间内远端流被移除的原因。

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kStreamRemoveReasonUnpublish0远端用户停止发布流。
kStreamRemoveReasonPublishFailed1远端用户发布流失败。
kStreamRemoveReasonKeepLiveFailed2保活失败。
kStreamRemoveReasonClientDisconnected3远端用户断网。
kStreamRemoveReasonRepublish4远端用户重新发布流。
kStreamRemoveReasonOther5其他原因。
kStreamRemoveReasonPrivilegeTokenExpired6远端用户 Token 发布权限过期。
DataMessageSourceType
enum bytertc::DataMessageSourceType
cpp

数据消息来源

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kDataMessageSourceTypeDefault0通过客户端或服务端的插入的自定义消息。
kDataMessageSourceTypeSystem1系统数据,包含音量指示信息。
SEICountPerFrame
enum bytertc::SEICountPerFrame
cpp

SEI 发送模式。

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kSingleSEIPerFrame0单发模式。即在 1 帧间隔内多次发送 SEI 数据时,多个 SEI 按队列逐帧发送。
kMultiSEIPerFrame1多发模式。即在 1 帧间隔内多次发送 SEI 数据时,多个 SEI 随下个视频帧同时发送。
NetworkQualityStats
struct bytertc::NetworkQualityStats
cpp

上行/下行网络质量

Defined in : bytertc_media_defines.h

成员变量
类型名称
const char*uid
doublefraction_lost
intrtt
inttotal_bandwidth
NetworkQualitytx_quality
NetworkQualityrx_quality
变量说明

uid
const char* bytertc::NetworkQualityStats::uid;
cpp

用户 ID

fraction_lost
double bytertc::NetworkQualityStats::fraction_lost;
cpp

本端的上行/下行的丢包率,范围 [0.0,1.0]
当 uid 为本地用户时,代表发布流的上行丢包率。
当 uid 为远端用户时,代表接收所有订阅流的下行丢包率。

rtt
int bytertc::NetworkQualityStats::rtt;
cpp

当 uid 为本地用户时有效,客户端到服务端的往返延时(RTT),单位:ms

total_bandwidth
int bytertc::NetworkQualityStats::total_bandwidth;
cpp

本端的音视频 RTP 包 2 秒内的平均传输速率,单位:bps
当 uid 为本地用户时,代表发送速率。
当 uid 为远端用户时,代表所有订阅流的接收速率。

tx_quality
NetworkQuality bytertc::NetworkQualityStats::tx_quality;
cpp

上行网络质量评分,详见 NetworkQuality。

rx_quality
NetworkQuality bytertc::NetworkQualityStats::rx_quality;
cpp

下行网络质量评分,详见 NetworkQuality。

RoomProfileType
enum bytertc::RoomProfileType
cpp

房间模式

根据所需场景,选择合适的房间模式,应用不同的音视频算法、视频参数和网络配置

调用 setAudioProfile 改变音频参数配置

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kRoomProfileTypeCommunication0默认场景,通用模式

与 kRoomProfileTypeMeeting = 16 配置相同。

你可以联系技术支持更换默认配置参数。
kRoomProfileTypeGame2游戏语音模式,低功耗、低流量消耗。

低端机在此模式下运行时,进行了额外的性能优化:

+ 部分低端机型配置编码帧长 40/60

+ 部分低端机型关闭软件 3A 音频处理

增强对 iOS 其他屏幕录制进行的兼容性,避免音频录制被 RTC 打断。
kRoomProfileTypeCloudGame3云游戏模式。

如果你的游戏场景需要低延迟的配置,使用此设置。

此设置下,弱网抗性较差。
kRoomProfileTypeLowLatency4云渲染模式。超低延时配置。

如果你的应用并非游戏但又对延时要求较高时,选用此模式

该模式下,音视频通话延时会明显降低,但同时弱网抗性、通话音质等均会受到一定影响。
kRoomProfileTypeChat5适用于 1 vs 1 音视频通话
kRoomProfileTypeChatRoom6适用于 3 人及以上纯语音通话。

通话中,闭麦时为是媒体模式,上麦后切换为通话模式。
kRoomProfileTypeLwTogether7实现多端同步播放音视频,适用于 “一起看” 或 “一起听” 场景。

该场景中,使用 RTC 信令同步播放进度,共享的音频内容不通过 RTC 进行传输。
kRoomProfileTypeGameHD8适用于对音质要求较高的游戏场景,优化音频 3A 策略,只通过媒体模式播放音频
kRoomProfileTypeCoHost9适用于直播中主播之间连麦的业务场景。

直播时通过 CDN,发起连麦 PK 时使用 RTC。
kRoomProfileTypeInteractivePodcast10适用于单主播和观众进行音视频互动的直播。通话模式,上下麦不会有模式切换,避免音量突变现象
kRoomProfileTypeKTV11线上 KTV 场景,音乐音质,低延迟

使用 RTC 传输伴奏音乐,混音后的歌声,适合独唱或单通合唱
kRoomProfileTypeChorus12适合在线实时合唱场景,高音质,超低延迟。使用本配置前请联系技术支持进行协助完成其他配置。
kRoomProfileTypeVRChat13适用于 VR 场景。支持最高 192 KHz 音频采样率,可开启球形立体声。
kRoomProfileTypeGameStreaming14适用于 1 vs 1 游戏串流,支持公网或局域网。
kRoomProfileTypeLanLiveStreaming15适用于局域网的 1 对多视频直播,最高支持 8K, 60 帧/秒, 100 Mbps 码率

需要在局域网配置私有化部署媒体服务器。
kRoomProfileTypeMeeting16适用于云端会议中的个人设备
kRoomProfileTypeMeetingRoom17适用于云端会议中的会议室终端设备,例如 Rooms,投屏盒子等。
kRoomProfileTypeClassroom18适用于课堂互动,房间内所有成员都可以进行音视频互动

当你的场景中需要同时互动的成员超过 10人时使用此模式
AudioRoomConfig
struct bytertc::AudioRoomConfig
cpp

多房间参数配置

Defined in : bytertc_media_defines.h

成员变量
类型名称
RoomProfileTyperoom_profile_type
boolis_auto_subscribe_audio
boolis_auto_publish_audio
变量说明

room_profile_type
RoomProfileType bytertc::AudioRoomConfig::room_profile_type = kRoomProfileTypeCommunication;
cpp

房间模式,参看 RoomProfileType,默认为 kRoomProfileTypeCommunication,进房后不可更改。

is_auto_subscribe_audio
bool bytertc::AudioRoomConfig::is_auto_subscribe_audio = true;
cpp

是否自动订阅音频流,默认为自动订阅。

is_auto_publish_audio
bool bytertc::AudioRoomConfig::is_auto_publish_audio = true;
cpp

是否自动发布音视频流,默认为自动发布。

若调用 setUserVisibility 将自身可见性设为 false,无论是默认的自动发布流还是手动设置的自动发布流都不会进行发布,你需要将自身可见性设为 true 后方可发布。

多房间场景下,若已在其中一个房间成功设置了自动发布,其他房间的自动发布设置均不会生效。若每个房间均不做设置,则默认在第一个加入的房间内自动发布流。

MediaDeviceType
enum bytertc::MediaDeviceType
cpp

媒体设备类型

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kMediaDeviceTypeAudioUnknown-1未知设备
kMediaDeviceTypeAudioRenderDevice0音频渲染设备
kMediaDeviceTypeAudioCaptureDevice1音频采集设备
kMediaDeviceTypeVideoCaptureDevice3视频采集设备
kMediaDeviceTypeScreenVideoCaptureDevice4屏幕流视频设备
kMediaDeviceTypeScreenAudioCaptureDevice5屏幕流音频设备
MediaDeviceState
enum bytertc::MediaDeviceState
cpp

媒体设备状态。

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kMediaDeviceStateStarted1设备已开启
kMediaDeviceStateStopped2设备已停止
kMediaDeviceStateRuntimeError3设备运行时错误

例如,当媒体设备的预期行为是正常采集,但没有收到采集数据时,将回调该状态。
kMediaDeviceStatePaused4设备已暂停。包括:
+ 采集过程中,目标应用窗体最小化到任务栏。
+ 开启采集或采集过程中,目标应用窗体被隐藏。
+ 采集过程中,目标应用窗体正在被拉伸。
+ 采集过程中,目标应用窗体正在被拖动。
kMediaDeviceStateResumed5设备已恢复
kMediaDeviceStateAdded10设备已插入
kMediaDeviceStateRemoved11设备被移除
kMediaDeviceInterruptionBegan12用户合盖打断了视频通话。如果系统未休眠或关机,将在开盖后自动恢复视频通话。
kMediaDeviceInterruptionEnded13视频通话已从合盖打断中恢复
kMediaDeviceBecomeSystemDefault14设备成为系统默认
kMediaDeviceResignSystemDefault15设备不再是系统默认
MediaDeviceError
enum bytertc::MediaDeviceError
cpp

媒体设备错误类型

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kMediaDeviceErrorOK0媒体设备正常
kMediaDeviceErrorDeviceNoPermission1没有权限启动媒体设备
kMediaDeviceErrorDeviceBusy2媒体设备已经在使用中
kMediaDeviceErrorDeviceFailure3媒体设备错误
kMediaDeviceErrorDeviceNotFound4未找到指定的媒体设备
kMediaDeviceErrorDeviceDisconnected5媒体设备被移除。

对象为采集屏幕流时,表明窗体被关闭或显示器被移除。
kMediaDeviceErrorDeviceNoCallback6设备没有数据回调
kMediaDeviceErrorDeviceUNSupportFormat7设备采样率不支持
MediaDeviceWarning
enum bytertc::MediaDeviceWarning
cpp

媒体设备警告

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kMediaDeviceWarningOK0无警告
kMediaDeviceWarningOperationDenied1非法设备操作。在使用外部设备时,调用了 SDK 内部设备 API。
kMediaDeviceWarningCaptureSilence2采集静音。
kMediaDeviceWarningDetectLeakEcho11通话中出现回声现象。

当 RoomProfileType 为 kRoomProfileTypeMeeting 和 kRoomProfileTypeMeetingRoom,且 AEC 关闭时,SDK 自动启动回声检测,如果检测到回声问题,将通过 onAudioDeviceWarning 返回本枚举值。
kMediaDeviceWarningCaptureDetectHowling16啸叫。触发该回调的情况如下:1)不支持啸叫抑制的房间模式下,检测到啸叫;2)支持啸叫抑制的房间模式下,检测到未被抑制的啸叫。
仅 kRoomProfileTypeCommunication、kRoomProfileTypeMeeting、kRoomProfileTypeMeetingRoom 三种房间模式支持啸叫抑制。
建议提醒用户检查客户端的距离或将麦克风和扬声器调至静音。
kMediaDeviceWarningPlayoutUseSilentDevice28使用无声的播放设备
SubscribeState
enum bytertc::SubscribeState
cpp

订阅媒体流状态

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kSubscribeStateSuccess0订阅/取消订阅流成功
kSubscribeStateFailedNotInRoom1订阅/取消订阅流失败,本地用户未在房间中
kSubscribeStateFailedStreamNotFound2订阅/取消订阅流失败,房间内未找到指定的音视频流
kSubscribeStateFailedOverLimit3超过订阅流数上限
RemoteUserPriority
enum bytertc::RemoteUserPriority
cpp

远端用户优先级,在性能不足需要回退时,会优先回退优先级低的用户的音视频流

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kRemoteUserPriorityLow0用户优先级为低(默认值)
kRemoteUserPriorityMedium100用户优先级为正常
kRemoteUserPriorityHigh200用户优先级为高
PublishFallbackOption
enum bytertc::PublishFallbackOption
cpp

发布端音视频流回退选项

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kPublishFallbackOptionDisabled0上行网络不佳或设备性能不足时,不对音视频流作回退处理。默认设置。
kPublishFallbackOptionSimulcast1上行网络不佳或设备性能不足时,发布的视频流会从大流到小流依次降级,直到与当前网络性能匹配,具体降级规则参看性能回退文档。
SubscribeFallbackOption
enum bytertc::SubscribeFallbackOption
cpp

订阅端音视频流回退选项。

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kSubscribeFallbackOptionDisable0下行网络不佳或设备性能不足时,不对音视频流作回退处理。默认设置。
kSubscribeFallbackOptionVideoStreamLow1下行网络不佳或设备性能不足时,对视频流做降级处理,具体降级规则参看音视频流回退。

该设置仅对发布端调用 enableSimulcastMode 开启发送多路流功能的情况生效。
kSubscribeFallbackOptionAudioOnly2下行网络不佳或设备性能不足时,先对视频流做回退处理。当网络状况不满足接收弱流时,则自动取消接收视频,仅接收音频。

该设置仅对发布端调用 enableSimulcastMode 开启发送多路流功能的情况生效。
FallbackOrRecoverReason
enum bytertc::FallbackOrRecoverReason
cpp

远端订阅流发生回退或恢复的原因

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kFallbackOrRecoverReasonUnknown-1其他原因,非带宽和性能原因引起的回退或恢复。默认值
kFallbackOrRecoverReasonSubscribeFallbackByBandwidth0由带宽不足导致的订阅端音视频流回退。
kFallbackOrRecoverReasonSubscribeFallbackByPerformance1由性能不足导致的订阅端音视频流回退。
kFallbackOrRecoverReasonSubscribeRecoverByBandwidth2由带宽恢复导致的订阅端音视频流恢复。
kFallbackOrRecoverReasonSubscribeRecoverByPerformance3由性能恢复导致的订阅端音视频流恢复。
kFallbackOrRecoverReasonPublishFallbackByBandwidth4由带宽不足导致的发布端音视频流回退。
kFallbackOrRecoverReasonPublishFallbackByPerformance5由性能不足导致的发布端音视频流回退。
kFallbackOrRecoverReasonPublishRecoverByBandwidth6由带宽恢复导致的发布端音视频流恢复。
kFallbackOrRecoverReasonPublishRecoverByPerformance7由性能恢复导致的发布端音视频流恢复。
PerformanceAlarmReason
enum bytertc::PerformanceAlarmReason
cpp

性能相关告警的原因

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kPerformanceAlarmReasonBandwidthFallbacked0网络原因差,造成了发送性能回退。仅在开启发送性能回退时,会收到此原因。
kPerformanceAlarmReasonBandwidthResumed1网络性能恢复,发送性能回退恢复。仅在开启发送性能回退时,会收到此原因。
kPerformanceAlarmReasonPerformanceFallbacked2如果未开启发送性能回退,收到此告警时,意味着性能不足;

如果开启了发送性能回退,收到此告警时,意味着性能不足,且已发生发送性能回退。
kPerformanceAlarmReasonPerformanceResumed3如果未开启发送性能回退,收到此告警时,意味着性能不足已恢复;

如果开启了发送性能回退,收到此告警时,意味着性能不足已恢复,且已发生发送性能回退恢复。
PerformanceAlarmMode
enum bytertc::PerformanceAlarmMode
cpp

是否开启发布性能回退

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kPerformanceAlarmModeNormal0未开启发布性能回退
kPerformanceAlarmModeSimulcast1已开启发布性能回退
LocalAudioStreamState
enum bytertc::LocalAudioStreamState
cpp

本地音频流状态。

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kLocalAudioStreamStateStopped0本地音频默认初始状态。
麦克风停止工作时回调该状态,对应错误码 kLocalAudioStreamErrorOk
kLocalAudioStreamStateRecording1本地音频录制设备启动成功。
采集到音频首帧时回调该状态,对应错误码 kLocalAudioStreamErrorOk
kLocalAudioStreamStateEncoding2本地音频首帧编码成功。
音频首帧编码成功时回调该状态,对应错误码 kLocalAudioStreamErrorOk
kLocalAudioStreamStateFailed3本地音频启动失败,在以下时机回调该状态:

+ 本地录音设备启动失败,对应错误码 kLocalAudioStreamErrorRecordFailure

+ 检测到没有录音设备权限,对应错误码 kLocalAudioStreamErrorDeviceNoPermission

+ 音频编码失败,对应错误码 kLocalAudioStreamErrorEncodeFailure
kLocalAudioStreamMute4本地音频静音成功后回调该状态。
调用 setAudioCaptureDeviceMute 成功后回调,对应错误码 LocalAudioStreamError 中的 kLocalAudioStreamErrorOk 。
kLocalAudioStreamUnmute5本地音频解除静音成功后回调该状态。
调用 setAudioCaptureDeviceMute 成功后回调,对应错误码 LocalAudioStreamError 中的 kLocalAudioStreamErrorOk 。
LocalAudioStreamError
enum bytertc::LocalAudioStreamError
cpp

本地音频流状态改变时的错误码。

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kLocalAudioStreamErrorOk0本地音频状态正常
kLocalAudioStreamErrorFailure1本地音频出错原因未知
kLocalAudioStreamErrorDeviceNoPermission2没有权限启动本地音频录制设备
kLocalAudioStreamErrorRecordFailure4本地音频录制失败,建议你检查录制设备是否正常工作
kLocalAudioStreamErrorEncodeFailure5本地音频编码失败
kLocalAudioStreamErrorNoRecordingDevice6没有可用的音频录制设备
LocalVideoStreamState
enum bytertc::LocalVideoStreamState
cpp

本地视频流状态

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kLocalVideoStreamStateStopped0本地视频采集停止状态
kLocalVideoStreamStateRecording1本地视频采集设备启动成功
kLocalVideoStreamStateEncoding2本地视频采集后,首帧编码成功
kLocalVideoStreamStateFailed3本地视频采集设备启动失败
RemoteAudioState
enum bytertc::RemoteAudioState
cpp

远端音频流状态。

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kRemoteAudioStateStopped0不接收远端音频流。
kRemoteAudioStateStarting1开始接收远端音频流首包。
kRemoteAudioStateDecoding2远端音频流正在解码,正常播放。
kRemoteAudioStateFrozen3远端音频流卡顿。
RemoteAudioStateChangeReason
enum bytertc::RemoteAudioStateChangeReason
cpp

接收远端音频流状态改变的原因。

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kRemoteAudioStateChangeReasonInternal0内部原因
kRemoteAudioStateChangeReasonNetworkCongestion1网络阻塞
kRemoteAudioStateChangeReasonNetworkRecovery2网络恢复正常
kRemoteAudioStateChangeReasonLocalMuted3本地用户停止接收远端音频流
kRemoteAudioStateChangeReasonLocalUnmuted4本地用户恢复接收远端音频流
kRemoteAudioStateChangeReasonRemoteMuted5远端用户停止发送音频流
kRemoteAudioStateChangeReasonRemoteUnmuted6远端用户恢复发送音频流
kRemoteAudioStateChangeReasonRemoteOffline7远端用户离开房间
RemoteVideoState
enum bytertc::RemoteVideoState
cpp

远端视频流状态。状态改变时,会收到 onRemoteVideoStateChanged 回调

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kRemoteVideoStateStopped0远端视频流默认初始状态,视频尚未开始播放。
kRemoteVideoStateStarting1本地用户已接收远端视频流首包。
kRemoteVideoStateDecoding2远端视频流正在解码,正常播放。
kRemoteVideoStateFrozen3远端视频流卡顿,可能有网络等原因。
kRemoteVideoStateFailed4远端视频流播放失败。
RemoteVideoStateChangeReason
enum bytertc::RemoteVideoStateChangeReason
cpp

远端视频流状态改变的原因

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kRemoteVideoStateChangeReasonInternal0内部原因
kRemoteVideoStateChangeReasonNetworkCongestion1网络阻塞
kRemoteVideoStateChangeReasonNetworkRecovery2网络恢复正常
kRemoteVideoStateChangeReasonLocalMuted3本地用户停止接收远端视频流或本地用户禁用视频模块
kRemoteVideoStateChangeReasonLocalUnmuted4本地用户恢复接收远端视频流或本地用户启用视频模块
kRemoteVideoStateChangeReasonRemoteMuted5远端用户停止发送视频流或远端用户禁用视频模块
kRemoteVideoStateChangeReasonRemoteUnmuted6远端用户恢复发送视频流或远端用户启用视频模块
kRemoteVideoStateChangeReasonRemoteOffline7远端用户离开频道。状态转换参考 onUserUnPublishStream。
SEIStreamEventType
enum bytertc::SEIStreamEventType
cpp

黑帧视频流状态

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kSEIStreamEventTypeStreamAdd0远端用户发布黑帧视频流。

纯语音通话场景下,远端用户调用 sendSEIMessage 发送 SEI 数据时,SDK 会自动发布一路黑帧视频流,并触发该回调。
kSEIStreamEventTypeStreamRemove1远端黑帧视频流移除。该回调的触发时机包括:

+ 远端用户开启摄像头采集,由语音通话切换至视频通话,黑帧视频流停止发布;

+ 远端用户调用 sendSEIMessage 后 1min 内未有 SEI 数据发送,黑帧视频流停止发布;

+ 远端用户调用 setVideoSourceType 切换至自定义视频采集时,黑帧视频流停止发布。
SourceWantedData
struct bytertc::SourceWantedData
cpp

性能回退相关数据

Defined in : bytertc_media_defines.h

成员变量
类型名称
intwidth
intheight
intframe_rate
变量说明

width
int bytertc::SourceWantedData::width;
cpp

未开启发布回退时,此值表示推荐的视频输入宽度,当回退模式为大小流模式时,表示当前推流的最大宽度 如果未开启发送性能回退,此值表示推荐的视频输入宽度;
如果开启了发送性能回退,此值表示当前推流的最大宽度。

height
int bytertc::SourceWantedData::height;
cpp

如果未开启发送性能回退,此值表示推荐的视频输入高度;

如果开启了发送性能回退,此值表示当前推流的最大高度。

frame_rate
int bytertc::SourceWantedData::frame_rate;
cpp

如果未开启发送性能回退,此值表示推荐的视频输入帧率,单位 fps;

如果开启了发送性能回退,此值表示当前推流的最大帧率,单位 fps。

UserInfo
struct bytertc::UserInfo
cpp

用户信息

Defined in : bytertc_media_defines.h

成员变量
类型名称
const char*uid
const char*extra_info
变量说明

uid
const char* bytertc::UserInfo::uid = nullptr;
cpp

用户 ID。该字符串符合正则表达式:[a-zA-Z0-9_@\-\.]{1,128}。

extra_info
const char* bytertc::UserInfo::extra_info = nullptr;
cpp

用户的额外信息,最大长度为 200 字节。会在 onUserJoined 中回调给远端用户。

RtcRoomStats
struct bytertc::RtcRoomStats
cpp

通话相关的统计信息

Defined in : bytertc_media_defines.h

成员变量
类型名称
floattxLostrate
floatrxLostrate
intrtt
unsigned intduration
unsigned inttx_bytes
unsigned intrx_bytes
unsigned shorttx_kbitrate
unsigned shortrx_kbitrate
unsigned shortrx_audio_kbitrate
unsigned shorttx_audio_kbitrate
unsigned shortrx_video_kbitrate
unsigned shorttx_video_kbitrate
unsigned shortrx_screen_kbitrate
unsigned shorttx_screen_kbitrate
unsigned intuser_count
doublecpu_app_usage
inttx_jitter
intrx_jitter
unsigned shorttx_cellular_kbitrate
unsigned shortrx_cellular_kbitrate
变量说明

txLostrate
float bytertc::RtcRoomStats::txLostrate;
cpp

当前应用的上行丢包率,取值范围为 [0, 1]

rxLostrate
float bytertc::RtcRoomStats::rxLostrate;
cpp

当前应用的下行丢包率,取值范围为 [0, 1]

rtt
int bytertc::RtcRoomStats::rtt;
cpp

客户端到服务端数据传输的往返时延(单位 ms)

duration
unsigned int bytertc::RtcRoomStats::duration;
cpp

进房到退房之间累计时长,单位为 s

tx_bytes
unsigned int bytertc::RtcRoomStats::tx_bytes;
cpp

本地用户的总发送字节数 (bytes),累计值

rx_bytes
unsigned int bytertc::RtcRoomStats::rx_bytes;
cpp

本地用户的总接收字节数 (bytes),累计值

tx_kbitrate
unsigned short bytertc::RtcRoomStats::tx_kbitrate;
cpp

发送码率(kbps),获取该数据时的瞬时值

rx_kbitrate
unsigned short bytertc::RtcRoomStats::rx_kbitrate;
cpp

接收码率(kbps),获取该数据时的瞬时值

rx_audio_kbitrate
unsigned short bytertc::RtcRoomStats::rx_audio_kbitrate;
cpp

音频接收码率(kbps),获取该数据时的瞬时值

tx_audio_kbitrate
unsigned short bytertc::RtcRoomStats::tx_audio_kbitrate;
cpp

音频包的发送码率(kbps),获取该数据时的瞬时值

rx_video_kbitrate
unsigned short bytertc::RtcRoomStats::rx_video_kbitrate;
cpp

视频接收码率(kbps),获取该数据时的瞬时值

tx_video_kbitrate
unsigned short bytertc::RtcRoomStats::tx_video_kbitrate;
cpp

视频发送码率(kbps),获取该数据时的瞬时值

rx_screen_kbitrate
unsigned short bytertc::RtcRoomStats::rx_screen_kbitrate;
cpp

屏幕接收码率,获取该数据时的瞬时值,单位为 Kbps

tx_screen_kbitrate
unsigned short bytertc::RtcRoomStats::tx_screen_kbitrate;
cpp

屏幕发送码率,获取该数据时的瞬时值,单位为 Kbps

user_count
unsigned int bytertc::RtcRoomStats::user_count;
cpp

当前房间内的可见用户人数

cpu_app_usage
double bytertc::RtcRoomStats::cpu_app_usage;
cpp

当前应用的 CPU 使用率 (%)

tx_jitter
int bytertc::RtcRoomStats::tx_jitter;
cpp

系统上行网络抖动(ms)

rx_jitter
int bytertc::RtcRoomStats::rx_jitter;
cpp

系统下行网络抖动(ms)

tx_cellular_kbitrate
unsigned short bytertc::RtcRoomStats::tx_cellular_kbitrate;
cpp

蜂窝路径发送的码率 (kbps),为获取该数据时的瞬时值

rx_cellular_kbitrate
unsigned short bytertc::RtcRoomStats::rx_cellular_kbitrate;
cpp

蜂窝路径接收码率 (kbps),为获取该数据时的瞬时值

VideoCodecType
enum bytertc::VideoCodecType
cpp

视频的编码类型

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kVideoCodecTypeUnknown0未知类型
kVideoCodecTypeH2641标准 H264 编码格式
kVideoCodecTypeByteVC12ByteVC1 编码格式
VideoDenoiseMode
enum bytertc::VideoDenoiseMode
cpp

视频降噪模式。

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kVideoDenoiseModeOff0视频降噪关闭。
kVideoDenoiseModeAuto1视频降噪开启,由 ByteRTC 后台配置视频降噪算法。
LocalAudioStats
struct bytertc::LocalAudioStats
cpp

本地音频流统计信息,统计周期为 2s 。

本地用户发布音频流成功后,SDK 会周期性地通过 onLocalStreamStats
通知用户发布的音频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。

Defined in : bytertc_media_defines.h

成员变量
类型名称
floataudio_loss_rate
intsend_kbitrate
intrecord_sample_rate
intstats_interval
intrtt
intnum_channels
intsent_sample_rate
intjitter
变量说明

audio_loss_rate
float bytertc::LocalAudioStats::audio_loss_rate;
cpp

音频丢包率。此次统计周期内的音频上行丢包率,单位为 % ,取值范围为 [0, 1]。

send_kbitrate
int bytertc::LocalAudioStats::send_kbitrate;
cpp

发送码率。此次统计周期内的音频发送码率,单位为 kbps 。

record_sample_rate
int bytertc::LocalAudioStats::record_sample_rate;
cpp

采集采样率。此次统计周期内的音频采集采样率信息,单位为 Hz 。

stats_interval
int bytertc::LocalAudioStats::stats_interval;
cpp

统计间隔。此次统计周期的间隔,单位为 ms 。

此字段用于设置回调的统计周期,默认设置为 2s 。

rtt
int bytertc::LocalAudioStats::rtt;
cpp

往返时延。单位为 ms 。

num_channels
int bytertc::LocalAudioStats::num_channels;
cpp

音频声道数。

sent_sample_rate
int bytertc::LocalAudioStats::sent_sample_rate;
cpp

音频发送采样率。此次统计周期内的音频发送采样率信息,单位为 Hz 。

jitter
int bytertc::LocalAudioStats::jitter;
cpp

音频上行网络抖动,单位为 ms 。

RemoteAudioStats
struct bytertc::RemoteAudioStats
cpp

远端音频流统计信息,统计周期为 2s。

本地用户订阅远端音频流成功后,SDK 会周期性地通过 onRemoteStreamStats 通知本地用户订阅的音频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。

Defined in : bytertc_media_defines.h

成员变量
类型名称
floataudio_loss_rate
intreceived_kbitrate
intstall_count
intstall_duration
longe2e_delay
intplayout_sample_rate
intstats_interval
intrtt
inttotal_rtt
intquality
intjitter_buffer_delay
intnum_channels
intreceived_sample_rate
intfrozen_rate
intconcealed_samples
intconcealment_event
intdec_sample_rate
intdec_duration
intjitter
变量说明

audio_loss_rate
float bytertc::RemoteAudioStats::audio_loss_rate;
cpp

音频丢包率。统计周期内的音频下行丢包率,取值范围为 [0, 1] 。

received_kbitrate
int bytertc::RemoteAudioStats::received_kbitrate;
cpp

接收码率。统计周期内的音频接收码率,单位为 kbps 。

stall_count
int bytertc::RemoteAudioStats::stall_count;
cpp

音频卡顿次数。统计周期内的卡顿次数。

stall_duration
int bytertc::RemoteAudioStats::stall_duration;
cpp

音频卡顿时长。统计周期内的卡顿时长,单位为 ms 。

e2e_delay
long bytertc::RemoteAudioStats::e2e_delay;
cpp

用户体验级别的端到端延时。从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为 ms 。

playout_sample_rate
int bytertc::RemoteAudioStats::playout_sample_rate;
cpp

播放采样率。统计周期内的音频播放采样率信息,单位为 Hz 。

stats_interval
int bytertc::RemoteAudioStats::stats_interval;
cpp

统计间隔。此次统计周期的间隔,单位为 ms 。

rtt
int bytertc::RemoteAudioStats::rtt;
cpp

客户端到服务端数据传输的往返时延,单位为 ms。

total_rtt
int bytertc::RemoteAudioStats::total_rtt;
cpp

发送端——服务端——接收端全链路数据传输往返时延。单位为 ms 。

quality
int bytertc::RemoteAudioStats::quality;
cpp

远端用户发送的音频流质量。远端用户发送的音频流质量。值含义参考 NetworkQuality。

jitter_buffer_delay
int bytertc::RemoteAudioStats::jitter_buffer_delay;
cpp

因引入 jitter buffer 机制导致的延时。单位为 ms 。

num_channels
int bytertc::RemoteAudioStats::num_channels;
cpp

音频声道数。

received_sample_rate
int bytertc::RemoteAudioStats::received_sample_rate;
cpp

音频接收采样率。统计周期内接收到的远端音频采样率信息,单位为 Hz 。

frozen_rate
int bytertc::RemoteAudioStats::frozen_rate;
cpp

远端用户在加入房间后发生音频卡顿的累计时长占音频总有效时长的百分比。音频有效时长是指远端用户进房发布音频流后,除停止发送音频流和禁用音频模块之外的音频时长。

concealed_samples
int bytertc::RemoteAudioStats::concealed_samples;
cpp

音频丢包补偿(PLC) 样点总个数。

concealment_event
int bytertc::RemoteAudioStats::concealment_event;
cpp

音频丢包补偿(PLC) 累计次数。

dec_sample_rate
int bytertc::RemoteAudioStats::dec_sample_rate;
cpp

音频解码采样率。统计周期内的音频解码采样率信息,单位为 Hz 。

dec_duration
int bytertc::RemoteAudioStats::dec_duration;
cpp

此次订阅中,对远端音频流进行解码的累计耗时。单位为 s。

jitter
int bytertc::RemoteAudioStats::jitter;
cpp

音频下行网络抖动,单位为 ms 。

LocalVideoStats
struct bytertc::LocalVideoStats
cpp

本地视频流统计信息,统计周期为 2s 。

本地用户发布视频流成功后,SDK 会周期性地通过 onLocalStreamStats
通知用户发布的视频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。

Defined in : bytertc_media_defines.h

成员变量
类型名称
intsent_kbitrate
intinput_frame_rate
intsent_frame_rate
intencoder_output_frame_rate
intrenderer_output_frame_rate
intstats_interval
floatvideo_loss_rate
intrtt
intencoded_bitrate
intencoded_frame_width
intencoded_frame_height
intencoded_frame_count
VideoCodecTypecodec_type
boolis_screen
intjitter
VideoDenoiseModevideo_denoise_mode
变量说明

sent_kbitrate
int bytertc::LocalVideoStats::sent_kbitrate;
cpp

发送码率。此次统计周期内实际发送的分辨率最大的视频流的发送码率,单位为 Kbps

input_frame_rate
int bytertc::LocalVideoStats::input_frame_rate;
cpp

采集帧率。此次统计周期内的视频采集帧率,单位为 fps 。

sent_frame_rate
int bytertc::LocalVideoStats::sent_frame_rate;
cpp

发送帧率。此次统计周期内实际发送的分辨率最大的视频流的视频发送帧率,单位为 fps 。

encoder_output_frame_rate
int bytertc::LocalVideoStats::encoder_output_frame_rate;
cpp

编码器输出帧率。当前编码器在此次统计周期内实际发送的分辨率最大的视频流的输出帧率,单位为 fps 。

renderer_output_frame_rate
int bytertc::LocalVideoStats::renderer_output_frame_rate;
cpp

本地渲染帧率。此次统计周期内的本地视频渲染帧率,单位为 fps 。

stats_interval
int bytertc::LocalVideoStats::stats_interval;
cpp

统计间隔,单位为 ms 。
此字段用于设置回调的统计周期,默认设置为 2s 。

video_loss_rate
float bytertc::LocalVideoStats::video_loss_rate;
cpp

视频丢包率。此次统计周期内的视频上行丢包率,取值范围为 [0,1] 。

rtt
int bytertc::LocalVideoStats::rtt;
cpp

往返时延,单位为 ms 。

encoded_bitrate
int bytertc::LocalVideoStats::encoded_bitrate;
cpp

视频编码码率。此次统计周期内的实际发送的分辨率最大的视频流视频编码码率,单位为 Kbps 。

encoded_frame_width
int bytertc::LocalVideoStats::encoded_frame_width;
cpp

实际发送的分辨率最大的视频流的视频编码宽度,单位为 px 。

encoded_frame_height
int bytertc::LocalVideoStats::encoded_frame_height;
cpp

实际发送的分辨率最大的视频流的视频编码高度,单位为 px 。

encoded_frame_count
int bytertc::LocalVideoStats::encoded_frame_count;
cpp

此次统计周期内实际发送的分辨率最大的视频流的发送的视频帧总数。

codec_type
VideoCodecType bytertc::LocalVideoStats::codec_type;
cpp

视频的编码类型,具体参考 VideoCodecType 。

is_screen
bool bytertc::LocalVideoStats::is_screen;
cpp

所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

jitter
int bytertc::LocalVideoStats::jitter;
cpp

视频上行网络抖动,单位为 ms 。

video_denoise_mode
VideoDenoiseMode bytertc::LocalVideoStats::video_denoise_mode;
cpp

视频降噪模式。具体参看 VideoDenoiseMode 。

RemoteVideoStats
struct bytertc::RemoteVideoStats
cpp

远端视频流统计信息,统计周期为 2s 。

本地用户订阅远端视频流成功后,SDK 会周期性地通过 onRemoteStreamStats
通知本地用户订阅的远端视频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。

Defined in : bytertc_media_defines.h

成员变量
类型名称
intwidth
intheight
floatvideo_loss_rate
intreceived_kbitrate
intdecoder_output_frame_rate
intrenderer_output_frame_rate
intstall_count
intstall_duration
longe2e_delay
boolis_screen
intstats_interval
intrtt
intfrozen_rate
VideoCodecTypecodec_type
intvideo_index
intjitter
变量说明

width
int bytertc::RemoteVideoStats::width;
cpp

视频宽度

height
int bytertc::RemoteVideoStats::height;
cpp

视频高度

video_loss_rate
float bytertc::RemoteVideoStats::video_loss_rate;
cpp

视频丢包率。统计周期内的视频下行丢包率,单位为 % ,取值范围:[0,1] 。

received_kbitrate
int bytertc::RemoteVideoStats::received_kbitrate;
cpp

接收码率。统计周期内的视频接收码率,单位为 kbps 。

decoder_output_frame_rate
int bytertc::RemoteVideoStats::decoder_output_frame_rate;
cpp

解码器输出帧率。统计周期内的视频解码器输出帧率,单位 fps 。

renderer_output_frame_rate
int bytertc::RemoteVideoStats::renderer_output_frame_rate;
cpp

渲染帧率。统计周期内的视频渲染帧率,单位 fps 。

stall_count
int bytertc::RemoteVideoStats::stall_count;
cpp

卡顿次数。统计周期内的卡顿次数。

stall_duration
int bytertc::RemoteVideoStats::stall_duration;
cpp

卡顿时长。统计周期内的视频卡顿总时长。单位 ms 。

e2e_delay
long bytertc::RemoteVideoStats::e2e_delay;
cpp

用户体验级别的端到端延时。从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为 ms 。

is_screen
bool bytertc::RemoteVideoStats::is_screen;
cpp

所属用户的媒体流是否为屏幕流。你可以知道当前数据来自主流还是屏幕流。

stats_interval
int bytertc::RemoteVideoStats::stats_interval;
cpp

统计间隔,此次统计周期的间隔,单位为 ms 。

此字段用于设置回调的统计周期,目前设置为 2s 。

rtt
int bytertc::RemoteVideoStats::rtt;
cpp

往返时延,单位为 ms 。

frozen_rate
int bytertc::RemoteVideoStats::frozen_rate;
cpp

远端用户在进房后发生视频卡顿的累计时长占视频总有效时长的百分比(%)。视频有效时长是指远端用户进房发布视频流后,除停止发送视频流和禁用视频模块之外的视频时长。

codec_type
VideoCodecType bytertc::RemoteVideoStats::codec_type;
cpp

视频的编码类型,具体参考 VideoCodecType 。

video_index
int bytertc::RemoteVideoStats::video_index;
cpp

对应多种分辨率的流的下标。

jitter
int bytertc::RemoteVideoStats::jitter;
cpp

视频下行网络抖动,单位为 ms。

LocalStreamStats
struct bytertc::LocalStreamStats
cpp

本地音/视频流统计信息以及网络状况,统计周期为 2s 。

本地用户发布音/视频流成功后,SDK 会周期性地通过 onLocalStreamStats
通知本地用户发布的音/视频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。

Defined in : bytertc_media_defines.h

成员变量
类型名称
LocalAudioStatsaudio_stats
LocalVideoStatsvideo_stats
boolis_screen
NetworkQuality[deprecated] local_tx_quality
NetworkQuality[deprecated] local_rx_quality
变量说明

audio_stats
LocalAudioStats bytertc::LocalStreamStats::audio_stats;
cpp

本地设备发送音频流的统计信息,详见 LocalAudioStats

video_stats
LocalVideoStats bytertc::LocalStreamStats::video_stats;
cpp

本地设备发送视频流的统计信息,详见 LocalVideoStats

local_tx_quality
NetworkQuality bytertc::LocalStreamStats::local_tx_quality;
cpp

所属用户的媒体流上行网络质量,详见 NetworkQuality

Deprecated since 3.36 and will be deleted in 3.51, use onNetworkQuality instead.

local_rx_quality
NetworkQuality bytertc::LocalStreamStats::local_rx_quality;
cpp

所属用户的媒体流下行网络质量,详见 NetworkQuality

Deprecated since 3.36 and will be deleted in 3.51, use onNetworkQuality instead.

is_screen
bool bytertc::LocalStreamStats::is_screen;
cpp

所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

RemoteStreamStats
struct bytertc::RemoteStreamStats
cpp

用户订阅的远端音/视频流统计信息以及网络状况,统计周期为 2s 。

订阅远端用户发布音/视频流成功后,SDK 会周期性地通过 onRemoteStreamStats
通知本地用户订阅的远端音/视频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。

Defined in : bytertc_media_defines.h

成员变量
类型名称
const char*uid
RemoteAudioStatsaudio_stats
RemoteVideoStatsvideo_stats
boolis_screen
NetworkQuality[deprecated] remote_tx_quality
NetworkQuality[deprecated] remote_rx_quality
变量说明

uid
const char* bytertc::RemoteStreamStats::uid;
cpp

用户 ID 。音/视频来源的远端用户 ID 。

audio_stats
RemoteAudioStats bytertc::RemoteStreamStats::audio_stats;
cpp

远端音频流的统计信息,详见 RemoteAudioStats

video_stats
RemoteVideoStats bytertc::RemoteStreamStats::video_stats;
cpp

远端视频流的统计信息,详见 RemoteVideoStats

remote_tx_quality
NetworkQuality bytertc::RemoteStreamStats::remote_tx_quality;
cpp

所属用户的媒体流上行网络质量,详见 NetworkQuality

Deprecated since 3.36 and will be deleted in 3.51, use onNetworkQuality instead.

remote_rx_quality
NetworkQuality bytertc::RemoteStreamStats::remote_rx_quality;
cpp

所属用户的媒体流下行网络质量,详见 NetworkQuality

Deprecated since 3.36 and will be deleted in 3.51, use onNetworkQuality instead.

is_screen
bool bytertc::RemoteStreamStats::is_screen;
cpp

所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

ProblemFeedbackOption
enum bytertc::ProblemFeedbackOption
cpp

音视频质量反馈问题类型

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kProblemFeedbackOptionNone0没有问题
kProblemFeedbackOptionOtherMessage(1ULL << 0)其他问题
kProblemFeedbackOptionDisconnected(1ULL << 1)连接失败
kProblemFeedbackOptionEarBackDelay(1ULL << 2)耳返延迟大
kProblemFeedbackOptionLocalNoise(1ULL << 10)本端有杂音
kProblemFeedbackOptionLocalAudioLagging(1ULL << 11)本端声音卡顿
kProblemFeedbackOptionLocalNoAudio(1ULL << 12)本端无声音
kProblemFeedbackOptionLocalAudioStrength(1ULL << 13)本端声音大/小
kProblemFeedbackOptionLocalEcho(1ULL << 14)本端有回声
kProblemFeedbackOptionLocalVideoFuzzy(1ULL << 24)本端视频模糊
kProblemFeedbackOptionLocalNotSync(1ULL << 25)本端音视频不同步
kProblemFeedbackOptionLocalVideoLagging(1ULL << 26)本端视频卡顿
kProblemFeedbackOptionLocalNoVideo(1ULL << 27)本端无画面
kProblemFeedbackOptionRemoteNoise(1ULL << 37)远端有杂音
kProblemFeedbackOptionRemoteAudioLagging(1ULL << 38)远端声音卡顿
kProblemFeedbackOptionRemoteNoAudio(1ULL << 39)远端无声音
kProblemFeedbackOptionRemoteAudioStrength(1ULL << 40)远端声音大/小
kProblemFeedbackOptionRemoteEcho(1ULL << 41)远端有回声
kProblemFeedbackOptionRemoteVideoFuzzy(1ULL << 51)远端视频模糊
kProblemFeedbackOptionRemoteNotSync(1ULL << 52)远端音视频不同步
kProblemFeedbackOptionRemoteVideoLagging(1ULL << 53)远端视频卡顿
kProblemFeedbackOptionRemoteNoVideo(1ULL << 54)远端无画面
ProblemFeedbackRoomInfo
struct bytertc::ProblemFeedbackRoomInfo
cpp

音视频质量反馈的房间信息

Defined in : bytertc_media_defines.h

成员变量
类型名称
const char*room_id
const char*user_id
变量说明

room_id
const char* bytertc::ProblemFeedbackRoomInfo::room_id = nullptr;
cpp

房间 ID。

user_id
const char* bytertc::ProblemFeedbackRoomInfo::user_id = nullptr;
cpp

本地用户 ID。

ProblemFeedbackInfo
struct bytertc::ProblemFeedbackInfo
cpp

音视频质量反馈的信息

Defined in : bytertc_media_defines.h

成员变量
类型名称
const char*problem_desc
ProblemFeedbackRoomInfo*room_info
introom_info_count
变量说明

problem_desc
const char* bytertc::ProblemFeedbackInfo::problem_desc = nullptr;
cpp

预设问题以外的其他问题的具体描述。

room_info
ProblemFeedbackRoomInfo* bytertc::ProblemFeedbackInfo::room_info = nullptr;
cpp

音视频质量反馈的房间信息。查看 ProblemFeedbackRoomInfo。

room_info_count
int bytertc::ProblemFeedbackInfo::room_info_count = 0;
cpp

FeedbackRoomInfo 的数组长度。

EncryptType
enum bytertc::EncryptType
cpp

自定义加密类型

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kEncryptTypeCustomize0不使用内置加密。默认值。
kEncryptTypeAES128CBC1AES-128-CBC 加密算法
kEncryptTypeAES256CBC2AES-256-CBC 加密算法
kEncryptTypeAES128ECB3AES-128-ECB 加密算法
kEncryptTypeAES256ECB4AES-256-ECB 加密算法
RtcUser
struct bytertc::RtcUser
cpp

用户信息

Defined in : bytertc_media_defines.h

成员变量
类型名称
const char*user_id
const char*meta_data
变量说明

user_id
const char* bytertc::RtcUser::user_id;
cpp

meta_data
const char* bytertc::RtcUser::meta_data;
cpp
FirstFrameSendState
enum bytertc::FirstFrameSendState
cpp

首帧发送状态

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kFirstFrameSendStateSending0发送中
kFirstFrameSendStateSent1发送成功
kFirstFrameSendStateEnd2发送失败
FirstFramePlayState
enum bytertc::FirstFramePlayState
cpp

首帧播放状态

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kFirstFramePlayStatePlaying0播放中
kFirstFramePlayStatePlayed1播放成功
kFirstFramePlayStateEnd2播放失败
MuteState
enum bytertc::MuteState
cpp

音视频流的发送/播放状态

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kMuteStateOff0发送
kMuteStateOn1停止发送
StreamIndex
enum bytertc::StreamIndex
cpp

流属性

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kStreamIndexMain0主流。包括:

+ 由摄像头/麦克风通过内部采集机制,采集到的视频/音频;

+ 通过自定义采集,采集到的视频/音频。
kStreamIndexScreen1屏幕流。屏幕共享时共享的视频流,或来自声卡的本地播放音频流。
RemoteStreamKey
struct bytertc::RemoteStreamKey
cpp

远端流信息

Defined in : bytertc_media_defines.h

成员变量
类型名称
const char*room_id
const char*user_id
StreamIndexstream_index
变量说明

room_id
const char* bytertc::RemoteStreamKey::room_id;
cpp

媒体流所在房间的房间 ID。

如果此媒体流是通过 startForwardStreamToRooms 转发到你所在房间的媒体流时,你应将房间 ID 设置为你所在的房间 ID。

user_id
const char* bytertc::RemoteStreamKey::user_id;
cpp

用户 ID

stream_index
StreamIndex bytertc::RemoteStreamKey::stream_index;
cpp

流属性,主流或屏幕流。参看 StreamIndex

RecordingFileType
enum bytertc::RecordingFileType
cpp

本地录制文件的存储格式

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kRecordingFileTypeAAC0aac 格式文件
kRecordingFileTypeMP41mp4 格式文件
RecordingState
enum bytertc::RecordingState
cpp

本地录制的状态

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kRecordingStateError0录制异常
kRecordingStateProcessing1录制进行中
kRecordingStateSuccess2录制文件保存成功,调用 stopFileRecording 结束录制之后才会收到该状态码。
RecordingErrorCode
enum bytertc::RecordingErrorCode
cpp

本地录制的错误码

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kRecordingErrorCodeOk0录制正常
kRecordingErrorCodeNoPermission-1没有文件写权限
kRecordingErrorCodeNotSupport-2当前版本 SDK 不支持本地录制功能,请联系技术支持人员
kRecordingErrorCodeOther-3其他异常
RecordingProgress
struct bytertc::RecordingProgress
cpp

本地录制进度

Defined in : bytertc_media_defines.h

成员变量
类型名称
unsigned long longduration
unsigned long longfile_size
变量说明

duration
unsigned long long bytertc::RecordingProgress::duration;
cpp

当前文件的累计录制时长,单位:毫秒

file_size
unsigned long long bytertc::RecordingProgress::file_size;
cpp

当前录制文件的大小,单位:byte

RecordingInfo
struct bytertc::RecordingInfo
cpp

本地录制的详细信息

Defined in : bytertc_media_defines.h

成员变量
类型名称
const char*file_path
VideoCodecTypevideo_codec_type
intwidth
intheight
变量说明

file_path
const char* bytertc::RecordingInfo::file_path;
cpp

录制文件的绝对路径,包含文件名和文件后缀

video_codec_type
VideoCodecType bytertc::RecordingInfo::video_codec_type;
cpp

录制文件的视频编码类型,参看 VideoCodecType

width
int bytertc::RecordingInfo::width;
cpp

录制视频的宽,单位:像素。纯音频录制请忽略该字段

height
int bytertc::RecordingInfo::height;
cpp

录制视频的高,单位:像素。纯音频录制请忽略该字段

RecordingConfig
struct bytertc::RecordingConfig
cpp

本地录制参数配置

Defined in : bytertc_media_defines.h

成员变量
类型名称
const char*dir_path
RecordingFileTypefile_type
变量说明

dir_path
const char* bytertc::RecordingConfig::dir_path;
cpp

录制文件保存的绝对路径,需精确到文件夹,文件名由 RTC 自动生成。你需要确保对该路径具有读写权限。

file_type
RecordingFileType bytertc::RecordingConfig::file_type;
cpp

录制存储文件格式,参看 RecordingFileType

UserWorkerType
enum bytertc::UserWorkerType
cpp

定义linux用户的用户功能

Defined in : bytertc_media_defines.h

枚举值
类型值说明
UserWorkerNormal0正常用户,没有任何特殊属性
UserWorkerSupportSip(1 << 0)用户支持SIP流,信令只下发SIP流
UserWorkerByteVc1Transcoder(1 << 1)用户支持屏幕流的bytevc1到H264转码
UserWorkerNeedUserListAndCb(1 << 2)用户需要信令服务器下发全量的用户列表和回调函数
UserWorkerNeedStreamCallBack(1 << 3)用户需要在房间进入多人模式时获取房间内所有流的相关回调
UserWorkerAudioSelectionExemption(1 << 4)用户选择设置不支持音频选路功能
AVSyncState
enum bytertc::AVSyncState
cpp

音视频同步状态

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kAVSyncStateAVStreamSyncBegin0音视频开始同步
kAVSyncStateAudioStreamRemove1音视频同步过程中音频移除,但不影响当前的同步关系
kAVSyncStateVdieoStreamRemove2音视频同步过程中视频移除,但不影响当前的同步关系
SyncInfoStreamType
enum bytertc::SyncInfoStreamType
cpp

媒体流信息同步的流类型

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kSyncInfoStreamTypeAudio0音频流
StreamSycnInfoConfig
struct bytertc::StreamSycnInfoConfig
cpp

媒体流信息同步的相关配置

Defined in : bytertc_media_defines.h

成员变量
类型名称
StreamIndexstream_index
intrepeat_count
SyncInfoStreamTypestream_type
变量说明

stream_index
StreamIndex bytertc::StreamSycnInfoConfig::stream_index;
cpp

流属性,主流或屏幕流。见 StreamIndex

repeat_count
int bytertc::StreamSycnInfoConfig::repeat_count;
cpp

消息发送的重复次数,取值范围是 [0,25],建议设置为 [3,5]。

stream_type
SyncInfoStreamType bytertc::StreamSycnInfoConfig::stream_type;
cpp

媒体流信息同步的流类型,见 SyncInfoStreamType

ForwardStreamInfo
struct bytertc::ForwardStreamInfo
cpp

媒体流跨房间转发的目标房间的相关信息

Defined in : bytertc_media_defines.h

成员变量
类型名称
const char*token
const char*room_id
变量说明

token
const char* bytertc::ForwardStreamInfo::token;
cpp

使用转发目标房间 roomID 和 UserID 生成 Token。

测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。

如果 Token 无效,转发失败。

room_id
const char* bytertc::ForwardStreamInfo::room_id;
cpp

跨间转发媒体流过程中目标房间 ID

ForwardStreamConfiguration
struct bytertc::ForwardStreamConfiguration
cpp

媒体流跨房间转发的目标房间的相关信息

Defined in : bytertc_media_defines.h

成员变量
类型名称
ForwardStreamInfo*forward_stream_dests
intdest_count
变量说明

forward_stream_dests
ForwardStreamInfo* bytertc::ForwardStreamConfiguration::forward_stream_dests = nullptr;
cpp

目标房间信息,数组中的每个元素包含一个房间的信息。

dest_count
int bytertc::ForwardStreamConfiguration::dest_count = 0;
cpp

目标房间数量。媒体流同时转发的目标房间数量建议小于等于 4 个。

ForwardStreamState
enum bytertc::ForwardStreamState
cpp

媒体流跨房间转发状态

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kForwardStreamStateIdle0空闲状态
+ 成功调用 stopForwardStreamToRooms 后,所有目标房间为空闲状态。
+ 成功调用 updateForwardStreamToRooms 减少目标房间后,本次减少的目标房间为空闲状态。
kForwardStreamStateSuccess1开始转发
+ 调用 startForwardStreamToRooms 成功向所有房间开始转发媒体流后,返回此状态。
+ 调用 updateForwardStreamToRooms 后,成功向新增目标房间开始转发媒体流后,返回此状态。
kForwardStreamStateFailure2转发失败,失败详情参考 ForwardStreamError
调用 startForwardStreamToRooms 或 updateForwardStreamToRooms 后,如遇转发失败,返回此状态。
ForwardStreamError
enum bytertc::ForwardStreamError
cpp

媒体流跨房间转发过程中抛出的错误码

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kForwardStreamErrorOK0正常
kForwardStreamErrorInvalidArgument1201参数异常
kForwardStreamErrorInvalidToken1202token 错误
kForwardStreamErrorResponse1203服务端异常
kForwardStreamErrorRemoteKicked1204目标房间有相同 user id 的用户加入,转发中断
kForwardStreamErrorNotSupport1205服务端不支持转发功能
ForwardStreamEvent
enum bytertc::ForwardStreamEvent
cpp

媒体流跨房间转发事件

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kForwardStreamEventDisconnected0本端与服务器网络连接断开,暂停转发。
kForwardStreamEventConnected1本端与服务器网络连接恢复,转发服务连接成功。
kForwardStreamEventInterrupt2转发中断。转发过程中,如果相同 user_id 的用户进入目标房间,转发中断。
kForwardStreamEventDstRoomUpdated3目标房间已更新,由 updateForwardStreamToRooms 触发。
kForwardStreamEventUnExpectAPICall4API 调用时序错误。例如,在调用 startForwardStreamToRooms 之前调用 updateForwardStreamToRooms 。
ForwardStreamStateInfo
struct bytertc::ForwardStreamStateInfo
cpp

跨房间转发媒体流过程中的不同目标房间的状态和错误信息

Defined in : bytertc_media_defines.h

成员变量
类型名称
const char*room_id
ForwardStreamStatestate
ForwardStreamErrorerror
变量说明

room_id
const char* bytertc::ForwardStreamStateInfo::room_id;
cpp

跨间转发媒体流过程中目标房间 ID

state
ForwardStreamState bytertc::ForwardStreamStateInfo::state;
cpp

跨房间转发媒体流过程中该目标房间的状态,参看 ForwardStreamState

error
ForwardStreamError bytertc::ForwardStreamStateInfo::error;
cpp

跨房间转发媒体流过程中该目标房间抛出的错误码,参看 ForwardStreamError

ForwardStreamEventInfo
struct bytertc::ForwardStreamEventInfo
cpp

跨房间转发媒体流过程中的不同目标房间发生的事件

Defined in : bytertc_media_defines.h

成员变量
类型名称
const char*room_id
ForwardStreamEventevent
变量说明

room_id
const char* bytertc::ForwardStreamEventInfo::room_id;
cpp

跨房间转发媒体流过程中的发生该事件的目标房间 ID

空字符串代表所有目标房间

event
ForwardStreamEvent bytertc::ForwardStreamEventInfo::event;
cpp

跨房间转发媒体流过程中该目标房间发生的事件,参看 ForwardStreamEvent

ByteWatermark
struct bytertc::ByteWatermark
cpp

水印图片相对视频流的位置和大小。

Defined in : bytertc_media_defines.h

成员变量
类型名称
floatx
floaty
floatwidth
floatheight
变量说明

x
float bytertc::ByteWatermark::x;
cpp

水印图片相对视频流左上角的横向偏移与视频流宽度的比值,取值范围为 [0,1)。

y
float bytertc::ByteWatermark::y;
cpp

水印图片相对视频流左上角的纵向偏移与视频流高度的比值,取值范围为 [0,1)。

width
float bytertc::ByteWatermark::width;
cpp

水印图片宽度与视频流宽度的比值,取值范围 [0,1)。

height
float bytertc::ByteWatermark::height;
cpp

水印图片高度与视频流高度的比值,取值范围为 [0,1)。

RTCWatermarkConfig
struct bytertc::RTCWatermarkConfig
cpp

水印参数

Defined in : bytertc_media_defines.h

成员变量
类型名称
boolvisibleInPreview
ByteWatermarkpositionInLandscapeMode
ByteWatermarkpositionInPortraitMode
变量说明

visibleInPreview
bool bytertc::RTCWatermarkConfig::visibleInPreview = true;
cpp

水印是否在视频预览中可见,默认可见。

positionInLandscapeMode
ByteWatermark bytertc::RTCWatermarkConfig::positionInLandscapeMode;
cpp

横屏时的水印位置和大小,参看 ByteWatermark。

positionInPortraitMode
ByteWatermark bytertc::RTCWatermarkConfig::positionInPortraitMode;
cpp

视频编码的方向模式为竖屏时的水印位置和大小,参看 ByteWatermark。

DeviceTransportType
enum bytertc::DeviceTransportType
cpp

设备的传输方式

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kDeviceTransportTypeUnknown0未知类型
kDeviceTransportTypeBuiltIn1系统内置
kDeviceTransportTypeBlueToothUnknownMode2未知模式蓝牙
kDeviceTransportTypeBlueToothHandsFreeMode3免提模式蓝牙
kDeviceTransportTypeBlueToothStereoMode4立体声模式蓝牙
kDeviceTransportTypeDisplayAudio5显示器/电视机音频设备
kDeviceTransportTypeVirtual6虚拟设备
kDeviceTransportTypeUSB7USB设备
kDeviceTransportTypePCI8PCI设备
kDeviceTransportTypeAirPlay9AirPlay设备
kDeviceTransportTypeContinuityCamera100连续互通相机
EchoTestResult
enum class bytertc::EchoTestResult
cpp

音视频回路测试结果

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kTestSuccess0接收到采集的音视频的回放,通话回路检测成功
kTestTimeout1测试超过 60s 仍未完成,已自动停止
kTestIntervalShort2上一次测试结束和下一次测试开始之间的时间间隔少于 5s
kAudioDeviceError3音频采集异常
kVideoDeviceError4视频采集异常
kAudioReceiveError5音频接收异常
kVideoReceiveError6视频接收异常
kInternalError7内部错误,不可恢复
EchoTestConfig
struct bytertc::EchoTestConfig
cpp

音视频回路测试参数

Defined in : bytertc_media_defines.h

成员变量
类型名称
void*view
boolenableAudio
boolenableVideo
intaudioPropertiesReportInterval
const char*uid
const char*roomId
const char*token
变量说明

view
void* bytertc::EchoTestConfig::view;
cpp

用于渲染接收到的视频的视图

enableAudio
bool bytertc::EchoTestConfig::enableAudio;
cpp

是否检测音频。检测设备为系统默认音频设备。

enableVideo
bool bytertc::EchoTestConfig::enableVideo;
cpp

是否检测视频。PC 端默认检测列表中第一个视频设备。

注意:
视频的发布参数固定为:分辨率 640px × 360px,帧率 15fps。
视频的发布参数固定为:分辨率 640px × 360px,帧率 15fps。

audioPropertiesReportInterval
int bytertc::EchoTestConfig::audioPropertiesReportInterval;
cpp

音量信息提示间隔,单位:ms,默认为 100ms

uid
const char* bytertc::EchoTestConfig::uid;
cpp

进行音视频通话回路测试的用户 ID

roomId
const char* bytertc::EchoTestConfig::roomId;
cpp

测试用户加入的房间 ID。

token
const char* bytertc::EchoTestConfig::token;
cpp

对用户进房时进行鉴权验证的动态密钥,用于保证音视频通话回路测试的安全性。

AudioDumpStatus
enum bytertc::AudioDumpStatus
cpp

音频dump状态。

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kAudioDumpStartFailure0音频dump启动失败
kAudioDumpStartSuccess1音频dump启动成功
kAudioDumpStopFailure2音频dump停止失败
kAudioDumpStopSuccess3音频dump停止成功
kAudioDumpRunningFailure4音频dump运行失败
kAudioDumpRunningSuccess5音频dump运行成功
NetworkDetectionStopReason
enum bytertc::NetworkDetectionStopReason
cpp

通话前探测的停止原因
onNetworkDetectionStopped 回调的参数类型

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kNetworkDetectionStopReasonUser0用户主动停止
kNetworkDetectionStopReasonTimeout1探测超过三分钟
kNetworkDetectionStopReasonConnectionLost2探测网络连接断开。
当超过 12s 没有收到回复,SDK 将断开网络连接,并且不再尝试重连。
kNetworkDetectionStopReasonStreaming3本地开始推拉流,停止探测
kNetworkDetectionStopReasonInnerErr4网络探测失败,内部异常
NetworkDetectionLinkType
enum bytertc::NetworkDetectionLinkType
cpp

通话前探测链接的类型。
onNetworkDetectionResult 回调的参数类型

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kNetworkDetectionLinkTypeUp0上行网络探测
kNetworkDetectionLinkTypeDown1下行网络探测
NetworkTimeInfo
struct bytertc::NetworkTimeInfo
cpp

网络时间信息

Defined in : bytertc_media_defines.h

成员变量
类型名称
int64_ttimestamp
变量说明

timestamp
int64_t bytertc::NetworkTimeInfo::timestamp;
cpp

网络时间,单位:ms

HardwareEchoDetectionResult
enum bytertc::HardwareEchoDetectionResult
cpp

通话前回声检测结果

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kHardwareEchoDetectionCanceled0主动调用 stopHardwareEchoDetection 结束流程时,未有回声检测结果。
kHardwareEchoDetectionUnknown1未检测出结果。建议重试,如果仍然失败请联系技术支持协助排查。
kHardwareEchoDetectionNormal2无回声
kHardwareEchoDetectionPoor3有回声。可通过 UI 建议用户使用耳机设备入会。
AudioSelectionPriority
enum bytertc::AudioSelectionPriority
cpp

音频选路优先级设置

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kAudioSelectionPriorityNormal0正常,参加音频选路
kAudioSelectionPriorityHigh1高优先级,跳过音频选路
SetRoomExtraInfoResult
enum bytertc::SetRoomExtraInfoResult
cpp

设置房间附加消息结果。

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kSetRoomExtraInfoSuccess0设置房间附加信息成功
kSetRoomExtraInfoErrorNotJoinRoom-1设置失败,尚未加入房间
kSetRoomExtraInfoErrorKeyIsNull-2设置失败,key 指针为空
kSetRoomExtraInfoErrorValueIsNull-3设置失败,value 指针为空
kSetRoomExtraInfoResultUnknow-99设置失败,未知错误
kSetRoomExtraInfoErrorKeyIsEmpty-400设置失败,key 长度为 0
kSetRoomExtraInfoErrorTooOften-406调用 setRoomExtraInfo 过于频繁,建议不超过 10 次/秒。
kSetRoomExtraInfoErrorSilentUser-412设置失败,用户已调用 setUserVisibility 将自身设为隐身状态。
kSetRoomExtraInfoErrorKeyTooLong-413设置失败,Key 长度超过 10 字节
kSetRoomExtraInfoErrorValueTooLong-414设置失败,value 长度超过 128 字节
kSetRoomExtraInfoErrorServer-500设置失败,服务器错误
SubtitleState
enum bytertc::SubtitleState
cpp

字幕任务状态。

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kSubtitleStateStarted0开启字幕。
kSubtitleStateStoped1关闭字幕。
kSubtitleStateError2字幕任务出现错误。
SubtitleMode
enum bytertc::SubtitleMode
cpp

字幕模式。

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kSubtitleModeRecognition0识别模式。在此模式下,房间内用户语音会被转为文字。
kSubtitleModeTranslation1翻译模式。在此模式下,房间内用户语音会先被转为文字,再被翻译为目标语言。
SubtitleErrorCode
enum bytertc::SubtitleErrorCode
cpp

字幕任务错误码。

Defined in : bytertc_media_defines.h

枚举值
类型值说明
kSubtitleErrorCodeUnknow-1客户端无法识别云端媒体处理发送的错误码。请联系技术支持。
kSubtitleErrorCodeSuccess0字幕已开启。
kSubtitleErrorCodePostProcessError1云端媒体处理内部出现错误,请联系技术支持。
kSubtitleErrorCodeASRConnectionError2第三方服务连接失败,请联系技术支持。
kSubtitleErrorCodeASRServiceError3第三方服务内部出现错误,请联系技术支持。
kSubtitleErrorCodeBeforeJoinRoom4未进房导致调用startSubtitle失败。请加入房间后再调用此方法。
kSubtitleErrorCodeAlreadyOn5重复调用 startSubtitle。
kSubtitleErrorCodeUnsupportedLanguage6用户选择的目标语言目前暂不支持。
kSubtitleErrorCodePostProcessTimeout7云端媒体处理超时未响应,请联系技术支持。
SubtitleConfig
struct bytertc::SubtitleConfig
cpp

字幕配置信息。

Defined in : bytertc_media_defines.h

成员变量
类型名称
SubtitleModemode
const char*target_language
变量说明

mode
SubtitleMode bytertc::SubtitleConfig::mode;
cpp

字幕模式。可以根据需要选择识别和翻译两种模式。开启识别模式,会将识别后的用户语音转化成文字;开启翻译模式,会在语音识别后进行翻译。参看 SubtitleMode。

target_language
const char* bytertc::SubtitleConfig::target_language = "";
cpp

目标翻译语言。可点击 语言支持 查看翻译服务最新支持的语种信息。

SubtitleMessage
struct bytertc::SubtitleMessage
cpp

字幕具体内容。

Defined in : bytertc_media_defines.h

成员变量
类型名称
const char*user_id
const char*text
intsequence
booldefinite
变量说明

user_id
const char* bytertc::SubtitleMessage::user_id;
cpp

说话者的用户ID。

text
const char* bytertc::SubtitleMessage::text;
cpp

语音识别或翻译后的文本, 采用 UTF-8 编码。

sequence
int bytertc::SubtitleMessage::sequence;
cpp

语音识别或翻译后形成的文本的序列号,同一发言人的完整发言和不完整发言会按递增顺序单独分别编号。

definite
bool bytertc::SubtitleMessage::definite;
cpp

语音识别出的文本是否为一段完整的一句话。 True 代表是, False 代表不是。

MusicFilterType
enum bytertc::MusicFilterType
cpp

歌曲过滤方式。

Defined in : bytertc_ktv_defines.h

枚举值
类型值说明
kFilterNone0不过滤。
kFilterWithoutLyric1 << 0过滤没有歌词的歌曲。
kFilterUnsupportedScore1 << 1过滤不支持打分的歌曲。
kFilterUnsupportedAccopmay1 << 2过滤不支持伴唱切换的歌曲。
kFilterUnsupportedClimx1 << 3过滤没有高潮片段的歌曲。
MusicHotType
enum bytertc::MusicHotType
cpp

榜单类别。

Defined in : bytertc_ktv_defines.h

枚举值
类型值说明
kHotContentCenter1 << 0火山内容中心热歌榜。
kHotProject1 << 1项目热歌榜。
AudioTrackType
enum class bytertc::AudioTrackType
cpp

原唱伴唱类型。

Defined in : bytertc_ktv_defines.h

枚举值
类型值说明
kAudioTrackTypeOriginal1播放原唱。
kAudioTrackTypeAccompy2播放伴唱。
AudioPlayType
enum class bytertc::AudioPlayType
cpp

音乐播放类型。

Defined in : bytertc_ktv_defines.h

枚举值
类型值说明
kAudioPlayTypeLocal0仅本地播放。
kAudioPlayTypeRemote1仅远端播放。
kAudioPlayTypeLocalAndRemote2本地、远端同时播放。
PlayState
enum class bytertc::PlayState
cpp

音乐播放状态。

Defined in : bytertc_ktv_defines.h

枚举值
类型值说明
kPlayStatePlaying1播放中。
kPlayStatePaused2暂停中。
kPlayStateStoped3已停止。
kPlayStateFailed4播放失败。
kPlayStateFinished5播放结束。
LyricStatus
enum class bytertc::LyricStatus
cpp

歌词格式类型。

Defined in : bytertc_ktv_defines.h

枚举值
类型值说明
kLyricStatusNone0无歌词。
kLyricStatusKRC1KRC 歌词。
kLyricStatusLRC2LRC 歌词。
kLyricStatusKRCAndLRC3KRC 歌词和 LRC 歌词均有。
DownloadLyricType
enum class bytertc::DownloadLyricType
cpp

歌词文件类型。

Defined in : bytertc_ktv_defines.h

枚举值
类型值说明
kDownKrc0KRC 歌词文件。
kDownLrc1LRC 歌词文件。
MusicInfo
struct bytertc::MusicInfo
cpp

歌曲数据。

Defined in : bytertc_ktv_defines.h

成员变量
类型名称
const char*music_id
const char*music_name
const char*singer
const char*vendor_id
const char*vendor_name
int64_tupdate_timestamp
const char*poster_url
LyricStatuslyric_status
intduration
boolenable_score
intclimax_start_time
intclimax_stop_time
变量说明

music_id
const char*  bytertc::MusicInfo::music_id;
cpp

音乐 ID。

music_name
const char*  bytertc::MusicInfo::music_name;
cpp

音乐名称。

singer
const char*  bytertc::MusicInfo::singer;
cpp

歌手。

vendor_id
const char*  bytertc::MusicInfo::vendor_id;
cpp

版权商 ID。

vendor_name
const char* bytertc::MusicInfo::vendor_name;
cpp

版权商名称。

update_timestamp
int64_t bytertc::MusicInfo::update_timestamp;
cpp

最新更新时间戳,单位为毫秒。

poster_url
const char*  bytertc::MusicInfo::poster_url;
cpp

封面地址。

lyric_status
LyricStatus bytertc::MusicInfo::lyric_status;
cpp

歌词格式类型,参看 LyricStatus。

duration
int bytertc::MusicInfo::duration;
cpp

歌曲长度,单位为毫秒。

enable_score
bool bytertc::MusicInfo::enable_score;
cpp

歌曲是否支持打分。

climax_start_time
int bytertc::MusicInfo::climax_start_time;
cpp

歌曲高潮片段开始时间,单位为毫秒。

climax_stop_time
int bytertc::MusicInfo::climax_stop_time;
cpp

歌曲高潮片段停止时间,单位为毫秒。

HotMusicInfo
struct bytertc::HotMusicInfo
cpp

热榜歌曲数据。

Defined in : bytertc_ktv_defines.h

成员变量
类型名称
MusicHotTypehot_type
const char*hot_name
MusicInfo*musics
intmusic_count
变量说明

hot_type
MusicHotType bytertc::HotMusicInfo::hot_type;
cpp

榜单类别,参看 MusicHotType。

hot_name
const char* bytertc::HotMusicInfo::hot_name;
cpp

热榜名称。

musics
MusicInfo* bytertc::HotMusicInfo::musics;
cpp

歌曲数据,参看 MusicInfo。

music_count
int bytertc::HotMusicInfo::music_count;
cpp

歌曲列表的数量。

DownloadFileType
enum bytertc::DownloadFileType
cpp

下载文件类型。

Defined in : bytertc_ktv_defines.h

枚举值
类型值说明
kDownloadMusic1音频文件。
kDownloadKRC2KRC 歌词文件。
kDownloadLRC3LRC 歌词文件。
kDownloadMIDI4MIDI 文件。
DownloadResult
struct bytertc::DownloadResult
cpp

歌曲下载信息。

Defined in : bytertc_ktv_defines.h

成员变量
类型名称
const char*local_file_path
const char*music_id
DownloadFileTypetype
变量说明

local_file_path
const char* bytertc::DownloadResult::local_file_path;
cpp

文件存放路径。

music_id
const char* bytertc::DownloadResult::music_id;
cpp

音乐 ID。

type
DownloadFileType bytertc::DownloadResult::type;
cpp

下载文件类型,参看 DownloadFileType。

KTVErrorCode
enum bytertc::KTVErrorCode
cpp

KTV 错误码。

Defined in : bytertc_ktv_defines.h

枚举值
类型值说明
kErrorCodeKTVOK0成功。
kErrorCodeKTVAppidInValid-3000AppID 异常。
kErrorCodeKTVParasInValid-3001非法参数,传入的参数不正确。
kErrorCodeKTVGetMusicFailed-3002获取歌曲资源失败。
kErrorCodeKTVGetLyricFailed-3003获取歌词失败。
kErrorCodeKTVMusicTakedown-3004歌曲下架。
kErrorCodeKTVMusicDownload-3005歌曲文件下载失败。
kErrorCodeKTVMidiDownloadFailed-3006MIDI 文件下载失败。
kErrorCodeKTVSystemBusy-3007系统繁忙。
kErrorCodeKTVNetwork-3008网络异常。
kErrorCodeKTVNotJoinRoom-3009KTV 功能未加入房间。
kErrorCodeKTVParseData-3010解析数据失败。
kErrorCodeKTVDownload-3011下载失败。
kErrorCodeKTVDownloading-3012已在下载中。
kErrorCodeKTVInternalDomain-3013内部错误,联系技术支持人员。
KTVPlayerErrorCode
enum bytertc::KTVPlayerErrorCode
cpp

KTV 播放器错误码。

Defined in : bytertc_ktv_defines.h

枚举值
类型值说明
kErrorCodeKTVPlayOK0成功。
kErrorCodeKTVPlayFileNotExist-3020播放错误,请下载后播放。
kErrorCodeKTVPlayFileError-3021播放错误,请确认文件播放格式。
kErrorCodeKTVPlayNotJoinRoom-3022播放错误,未进入房间。
kErrorCodeKTVPlayParam-3023参数错误。
kErrorCodeKTVPlayStartError-3024播放失败,找不到文件或文件打开失败。
kErrorCodeKTVPlayMixIdError-3025混音 ID 异常。
kErrorCodeKTVPlayPositionError-3026设置播放位置出错。
kErrorCodeKTVPlayAudioVolumeError-3027音量参数不合法,可设置的取值范围为 [0,400]。
kErrorCodeKTVPlayTypeError-3028不支持此混音类型。
kErrorCodeKTVPlayPitchError-3029音调文件不合法。
kErrorCodeKTVPlayAudioTrackError-3030音轨不合法。
kErrorCodeKTVPlayStartingError-3031混音启动中。
StreamLayoutMode
enum bytertc::StreamLayoutMode
cpp

公共流的布局模式

Defined in : bytertc_publicstream_interface.h

枚举值
类型值说明
kLayoutAutoMode0自动布局
kLayoutCustomerMode2自定义
SourceCrop
typedef struct bytertc::SourceCrop
cpp

公共流视频裁剪配置

Defined in : bytertc_publicstream_interface.h

成员变量
类型名称
floatLocationX
floatLocationY
floatWidthProportion
floatHeightProportion
变量说明

LocationX
float bytertc::SourceCrop::LocationX = 0.0;
cpp

裁剪后得到的视频帧左上角横坐标相对于裁剪前整体画面的归一化比例,取值范围[0.0, 1.0)

LocationY
float bytertc::SourceCrop::LocationY = 0.0;
cpp

裁剪后得到的视频帧左上角纵坐标相对于裁剪前整体画面的归一化比例,取值范围[0.0, 1.0)

WidthProportion
float bytertc::SourceCrop::WidthProportion = 0.0;
cpp

裁剪后得到的视频帧宽度相对于裁剪前整体画面的归一化比例,取值范围(0.0, 1.0]

HeightProportion
float bytertc::SourceCrop::HeightProportion = 0.0;
cpp

裁剪后得到的视频帧高度相对于裁剪前整体画面的归一化比例,取值范围(0.0, 1.0]

PublicStreamVideoParam
typedef struct bytertc::PublicStreamVideoParam
cpp

公共流视频编码参数

Defined in : bytertc_publicstream_interface.h

成员变量
类型名称
int32_twidth
int32_theight
int32_tfps
int32_tbitrate_kpbs
变量说明

width
int32_t bytertc::PublicStreamVideoParam::width;
cpp

公共流视频宽度,必填。单位为 px,范围为 [2, 1920],必须是偶数。

height
int32_t bytertc::PublicStreamVideoParam::height;
cpp

公共流视频高度,必填。单位为 px,范围为 [16, 1280],必须是偶数。

fps
int32_t bytertc::PublicStreamVideoParam::fps;
cpp

公共流视频帧率。必填

范围:[1, 60]

bitrate_kpbs
int32_t bytertc::PublicStreamVideoParam::bitrate_kpbs;
cpp

视频码率,必填

范围:[1,10000000]

单位为 bps

PublicStreamLayoutRegion
typedef struct bytertc::PublicStreamLayoutRegion
cpp

单个视频流在公共流中的布局信息。

在多路视频流公共流时,你需要设置每一路视频流在公共流中的布局信息。

Defined in : bytertc_publicstream_interface.h

成员变量
类型名称
const char*user_id
const char*room_id
const char*alternate_image_uri
floatx
floaty
floatwidth
floatheight
floatalpha
int32_tz_order
intstream_type
TranscoderContentControlTypemedia_type
RenderModerender_mode
SourceCropsource_crop
变量说明

user_id
const char* bytertc::PublicStreamLayoutRegion::user_id = "";
cpp

目标公共流用户的 ID, 不能为空

room_id
const char* bytertc::PublicStreamLayoutRegion::room_id = "";
cpp

跨房间订阅流时,目标流所在的房间 ID, 不能为空

alternate_image_uri
const char* bytertc::PublicStreamLayoutRegion::alternate_image_uri = "";
cpp

背景图片地址

x
float bytertc::PublicStreamLayoutRegion::x;
cpp

用户视频布局相对画布左侧的偏移量,取值的范围为 [0.0, 1.0)。必填。

y
float bytertc::PublicStreamLayoutRegion::y;
cpp

用户视频布局相对画布顶端的偏移量,取值的范围为 [0.0, 1.0)。必填。

width
float bytertc::PublicStreamLayoutRegion::width;
cpp

用户视频宽度相对画布宽度的比例,取值的范围为 (0.0, 1.0]。必填。

height
float bytertc::PublicStreamLayoutRegion::height;
cpp

用户视频高度相对画布高度的比例,取值的范围为 (0.0, 1.0]。必填。

alpha
float bytertc::PublicStreamLayoutRegion::alpha;
cpp

透明度,取值范围 [0,255], 0 为全透明,255 为不透明

z_order
int32_t bytertc::PublicStreamLayoutRegion::z_order;
cpp

用户视频布局在画布中的层级,取值范围 [0,100],0(默认)为底层,100 为顶层。

stream_type
int bytertc::PublicStreamLayoutRegion::stream_type = 0;
cpp

必填。媒体流类型:

media_type
TranscoderContentControlType bytertc::PublicStreamLayoutRegion::media_type;
cpp

公共流输出类型,参看 TranscoderContentControlType

render_mode
RenderMode bytertc::PublicStreamLayoutRegion::render_mode;
cpp

渲染时,视频内容缩放模式,必填。参看 RenderMode

source_crop
SourceCrop bytertc::PublicStreamLayoutRegion::source_crop;
cpp

支持对每一路参与公共流的视频进行裁剪,参看 SourceCrop

PublicStreamLayout
struct bytertc::PublicStreamLayout
cpp

公共流布局设置。

Defined in : bytertc_publicstream_interface.h

成员变量
类型名称
intlayoutMode
intinterMode
const char*background_image
const char*background_color
PublicStreamLayoutRegion*regions
intregions_num
变量说明

layoutMode
int bytertc::PublicStreamLayout::layoutMode;
cpp

布局模式。必填。

interMode
int bytertc::PublicStreamLayout::interMode;
cpp

插帧模式

background_image
const char* bytertc::PublicStreamLayout::background_image = nullptr;
cpp

背景图片

background_color
const char* bytertc::PublicStreamLayout::background_color = nullptr;
cpp

公共流视频的背景颜色,格式为 RGB 定义下的 Hex 值,如 #FFB6C1 表示浅粉色。默认值 #000000,表示为黑色

regions
PublicStreamLayoutRegion* bytertc::PublicStreamLayout::regions = nullptr;
cpp

各路流的布局信息列表。每一个该类型对象为一路单独的视频流的布局信息。详见 PublicStreamLayoutRegion

regions_num
int bytertc::PublicStreamLayout::regions_num = 0;
cpp

参与合流的数量

IPublicStreamParam
class bytertc::IPublicStreamParam
cpp

公共流参数
本类型继承了 ITranscoderParamBase 中的所有接口。

Defined in : bytertc_publicstream_interface.h

成员函数
返回名称
virtual StreamLayoutModelayoutMode
virtual intinterpolationMode
virtual const char*backgroundImageUri
virtual PublicStreamVideoParamvideoParam
virtual PublicStreamLayoutRegionlayoutRegionByIndex
virtual voidsetInterpolationMode
virtual voidsetBackgroundImageUri
virtual voidsetVideoParam
virtual voidsetLayoutParam
virtual IPublicStreamParam*inflatten
virtual boolcheckParameter
函数说明

layoutMode
virtual StreamLayoutMode bytertc::IPublicStreamParam::layoutMode()
cpp

获取公共流的布局模式,多路媒体流将按照指定的布局模式,合成为一路公共流。

返回值
公共流的布局模式,参看 StreamLayoutMode

interpolationMode
virtual int bytertc::IPublicStreamParam::interpolationMode()
cpp

获取补帧模式

返回值
补帧模式

backgroundImageUri
virtual const char* bytertc::IPublicStreamParam::backgroundImageUri()
cpp

获取背景图片链接

返回值
背景图片链接

videoParam
virtual PublicStreamVideoParam bytertc::IPublicStreamParam::videoParam()
cpp

获取公共流视频编码参数

返回值
公共流视频参数内容,参看 PublicStreamVideoParam

layoutRegionByIndex
virtual PublicStreamLayoutRegion bytertc::IPublicStreamParam::layoutRegionByIndex(
    int32_t index)
cpp

获取公共流视窗布局信息

传入参数

参数名类型说明
indexint32_t视窗对应下标

返回值
公共流视窗布局信息,参看 PublicStreamLayoutRegion

setInterpolationMode
virtual void bytertc::IPublicStreamParam::setInterpolationMode(
    int mode)
cpp

设置补帧模式

传入参数

参数名类型说明
modeint补帧模式
• 0: 补最后一帧
• 1: 补背景图片,如果没有设置背景图片则补黑帧

setBackgroundImageUri
virtual void bytertc::IPublicStreamParam::setBackgroundImageUri(
    const char* uri)
cpp

设置背景图片的地址

传入参数

参数名类型说明
uriconst char*公共流的背景图片的地址

setVideoParam
virtual void bytertc::IPublicStreamParam::setVideoParam(
    const PublicStreamVideoParam&)
cpp

设置视频编码参数

传入参数

参数名类型说明
PublicStreamVideoParamconst视频编码参数,参看 PublicStreamVideoParam

setLayoutParam
virtual void bytertc::IPublicStreamParam::setLayoutParam(
    PublicStreamLayoutRegion regions[],
    int32_t regions_size,
    const char* bg_color,
    StreamLayoutMode mode)
cpp

设置公共流布局参数

传入参数

参数名类型说明
regions[]PublicStreamLayoutRegion必填。公共流布局参数,参看 PublicStreamLayoutRegion
regions_sizeint32_t必填。公共流视窗数量
bg_colorconst char*公共流背景颜色。格式为 RGB 定义下的 Hex 值,如 #FFB6C1 表示浅粉色。默认值 #000000,表示为黑色
modeStreamLayoutMode必填。布局参数,参看 StreamLayoutMode

inflatten
virtual IPublicStreamParam* bytertc::IPublicStreamParam::inflatten(
    const char* json_str)
cpp

将输入的 json 格式的字符串转成 ITranscoderParam 结构体

传入参数

参数名类型说明
json_strconst char*json 格式字符串

返回值
转换后的 ITranscoderParam 结构体

checkParameter
virtual bool bytertc::IPublicStreamParam::checkParameter(
    const char* json_str)
cpp

参数校验

传入参数

参数名类型说明
json_strconst char*传入参数,json 格式字符串

返回值
检查结果
true: 所有参数都合法
false: 存在不合法参数

ReceiveRange
struct bytertc::ReceiveRange
cpp

本地用户能收听到、且具有衰减效果的音频接收范围

Defined in : bytertc_range_audio_interface.h

成员变量
类型名称
intmin
intmax
变量说明

min
int bytertc::ReceiveRange::min;
cpp

能够接收语音、并且具有衰减效果的最小距离值,该值须 ≥ 0,但 ≤ max。

小于该值的范围内没有范围语音效果,即收听到的音频音量相同。

max
int bytertc::ReceiveRange::max;
cpp

能够收听语音的最大距离值,该值须 > 0 且 ≥ min。

当收听者和声源距离处于 [min, max) 之间时,收听到的音量根据距离呈衰减效果。

超出该值范围的音频将无法收听到。

AttenuationType
enum bytertc::AttenuationType
cpp

空间音频音量随距离衰减模式

Defined in : bytertc_range_audio_interface.h

枚举值
类型值说明
kAttenuationTypeNone0不随距离衰减
kAttenuationTypeLinear1线性衰减,音量随距离增大而线性减小
kAttenuationTypeExponential2指数型衰减,音量随距离增大进行指数衰减
UserOfflineReason
enum bytertc::UserOfflineReason
cpp

用户离开房间的原因。

Defined in : bytertc_rts_defines.h

枚举值
类型值说明
kUserOfflineReasonQuit0远端用户调用 leaveRoom 方法退出房间。
kUserOfflineReasonDropped1远端用户因网络等原因掉线。
kUserOfflineReasonSwitchToInvisible2远端用户切换至隐身状态。
kUserOfflineReasonKickedByAdmin3远端用户被踢出出房间。
因调用踢出用户的 OpenAPI,远端用户被踢出房间。
JoinRoomType
enum bytertc::JoinRoomType
cpp

用户加入房间的类型。

Defined in : bytertc_rts_defines.h

枚举值
类型值说明
kJoinRoomTypeFirst0首次加入房间。用户手动调用 joinRoom 加入房间。
kJoinRoomTypeReconnected1重新加入房间。用户网络较差,失去与服务器的连接,进行重连时收到加入成功。
LoginType
enum bytertc::LoginType
cpp

用户登录的类型

Defined in : bytertc_rts_defines.h

枚举值
类型值说明
kLoginTypeFirst0首次登录。用户手动调用 login,收到登录成功。
kLoginTypeReconnected1重连。用户网络较差,失去与服务器的连接,SDK 自动重连登录成功。
USER_ONLINE_STATUS
enum bytertc::USER_ONLINE_STATUS
cpp

用户在线状态。

Defined in : bytertc_rts_defines.h

枚举值
类型值说明
kUserOnlineStatusOffline0对端用户离线

对端用户已调用 logout,或者没有调用 login 进行登录。
kUserOnlineStatusOnline1对端用户在线

对端用户调用 login 登录,并且连接状态正常。
kUserOnlineStatusUnreachable2无法获取对端用户在线状态

发生级联错误、对端用户在线状态异常时返回。
ServerACKMsg
struct bytertc::ServerACKMsg
cpp

服务端消息发送结果回调内容

Defined in : bytertc_rts_defines.h

成员变量
类型名称
intlength
char*ACKMsg
变量说明

length
int bytertc::ServerACKMsg::length;
cpp

回调消息长度

ACKMsg
char* bytertc::ServerACKMsg::ACKMsg;
cpp

回调消息内容

MessageConfig
enum bytertc::MessageConfig
cpp

消息类型

Defined in : bytertc_rts_defines.h

枚举值
类型值说明
kMessageConfigReliableOrdered0低延时可靠有序消息
kMessageConfigUnreliableOrdered1超低延时有序消息
kMessageConfigUnreliableUnordered2超低延时无序消息
UserMessageSendResult
enum bytertc::UserMessageSendResult
cpp

发送消息结果,成功或失败,及失败原因

Defined in : bytertc_rts_defines.h

枚举值
类型值说明
kUserMessageSendResultSuccess0发送消息成功
kUserMessageSendResultTimeout1发送超时,没有发送成功
kUserMessageSendResultNetworkDisconnected2通道断开,没有发送
kUserMessageSendResultNoReceiver3找不到接收方
kUserMessageSendResultNoRelayPath4远端用户没有登录或进房
kUserMessageSendResultExceedQPS5超过 QPS 限制
kUserMessageSendResultNotJoin100消息发送方没有加入房间
kUserMessageSendResultInit101连接未完成初始化,没有可用的数据传输通道连接
kUserMessageSendResultNoConnection102没有可用的数据传输通道连接
kUserMessageSendResultExceedMaxLength103消息超过最大长度,当前为 64 KB
kUserMessageSendResultEmptyUser104接收消息的单个用户 id 为空
kUserMessageSendResultNotLogin105房间外或应用服务器消息发送方没有登录
kUserMessageSendResultServerParamsNotSet106发送消息给业务方服务器之前没有设置参数
kUserMessageSendResultUnknown1000未知错误
RoomMessageSendResult
enum bytertc::RoomMessageSendResult
cpp

房间内广播消息发送结果

Defined in : bytertc_rts_defines.h

枚举值
类型值说明
kRoomMessageSendResultSuccess200消息发送成功
kRoomMessageSendResultTimeout1发送超时,没有发送
kRoomMessageSendResultNetworkDisconnected2通道断开,没有发送
kRoomMessageSendResultExceedQPS5超过 QPS 限制
kRoomMessageSendResultNotJoin100失败,发送方未加入房间
kRoomMessageSendResultNoConnection102失败,没有可用的数据传输通道连接
kRoomMessageSendResultExceedMaxLength103失败,消息超过最大长度,当前为 64KB
kRoomMessageSendResultUnknown1000失败,未知错误
ConnectionState
enum bytertc::ConnectionState
cpp

SDK 与信令服务器连接状态。

Defined in : bytertc_rts_defines.h

枚举值
类型值说明
kConnectionStateDisconnected1连接断开超过 12s,此时 SDK 会尝试自动重连。
kConnectionStateConnecting2首次请求建立连接,正在连接中。
kConnectionStateConnected3首次连接成功。
kConnectionStateReconnecting4涵盖了以下情况:

+ 首次连接时,10秒连接不成功;

+ 连接成功后,断连 10 秒。自动重连中。
kConnectionStateReconnected5连接断开后,重连成功。
kConnectionStateLost6处于 kConnectionStateDisconnected 状态超过 10 秒,且期间重连未成功。SDK 仍将继续尝试重连。
kConnectionStateFailed7连接失败,服务端状态异常。SDK 不会自动重连,请重新进房,或联系技术支持。
NetworkQuality
enum bytertc::NetworkQuality
cpp

媒体流网络质量。

Defined in : bytertc_rts_defines.h

枚举值
类型值说明
kNetworkQualityUnknown0网络质量未知。
kNetworkQualityExcellent1网络质量极好。
kNetworkQualityGood2主观感觉和 kNetworkQualityExcellent 差不多,但码率可能略低。
kNetworkQualityPoor3主观感受有瑕疵但不影响沟通。
kNetworkQualityBad4勉强能沟通但不顺畅。
kNetworkQualityVbad5网络质量非常差,基本不能沟通。
kNetworkQualityDown6网络连接断开,无法通话。网络可能由于 12s 内无应答、开启飞行模式、拔掉网线等原因断开。
更多网络状态信息参见 连接状态提示。
NetworkType
enum bytertc::NetworkType
cpp

SDK 网络连接类型。

Defined in : bytertc_rts_defines.h

枚举值
类型值说明
kNetworkTypeUnknown-1网络连接类型未知。
kNetworkTypeDisconnected0网络连接已断开。
kNetworkTypeLAN1网络连接类型为 LAN 。
kNetworkTypeWIFI2网络连接类型为 Wi-Fi(包含热点)。
kNetworkTypeMobile2G3网络连接类型为 2G 移动网络。
kNetworkTypeMobile3G4网络连接类型为 3G 移动网络。
kNetworkTypeMobile4G5网络连接类型为 4G 移动网络。
kNetworkTypeMobile5G6网络连接类型为 5G 移动网络。
BusinessCheckCode
enum bytertc::BusinessCheckCode
cpp

事务检查码

用户调用 setBusinessId 方法设置业务标识参数的返回错误码。

Defined in : bytertc_rts_defines.h

枚举值
类型值说明
ERROR_ALREADY_IN_ROOM-6001用户已经在房间中。

业务标识需要在加入房间之前设置,加入后设置无效。
ERROR_INPUT_INVALIDATE-6002输入参数非法。

用户传入的业务标识参数非法,参数合法性参考 setBusinessId 方法的参数说明。
SysStats
struct bytertc::SysStats
cpp

App 使用的 CPU 和内存信息。

该信息由 SDK 周期性(2s)通过 onSysStats 回调通知给用户。

Defined in : bytertc_rts_defines.h

成员变量
类型名称
unsigned intcpu_cores
doublecpu_app_usage
doublememory_usage
unsigned long longfull_memory
unsigned long longtotal_memory_usage
unsigned long longfree_memory
doublememory_ratio
doubletotal_memory_ratio
变量说明

cpu_cores
unsigned int bytertc::SysStats::cpu_cores;
cpp

当前系统 CPU 核数。

cpu_app_usage
double bytertc::SysStats::cpu_app_usage;
cpp

当前应用的 CPU 使用率,取值范围为 [0, 1]。

memory_usage
double bytertc::SysStats::memory_usage;
cpp

当前应用的内存使用量(单位 MB)。

full_memory
unsigned long long bytertc::SysStats::full_memory;
cpp

全量内存(单位MB)。

total_memory_usage
unsigned long long bytertc::SysStats::total_memory_usage;
cpp

系统已使用内存(单位MB)。

free_memory
unsigned long long bytertc::SysStats::free_memory;
cpp

空闲可分配内存(单位MB)。

memory_ratio
double bytertc::SysStats::memory_ratio;
cpp

当前应用的内存使用率(单位 %)。

total_memory_ratio
double bytertc::SysStats::total_memory_ratio;
cpp

系统内存使用率(单位 %)。

HttpProxyState
enum bytertc::HttpProxyState
cpp

HTTP/HTTPS 代理状态

Defined in : bytertc_rts_defines.h

枚举值
类型值说明
kHttpInit0HTTP/HTTPS 初始化状态
kHttpConnected1HTTP/HTTPS 连接成功
kHttpError2HTTP/HTTPS 连接失败
Socks5ProxyState
enum bytertc::Socks5ProxyState
cpp

SOCKS5 代理连接状态

Defined in : bytertc_rts_defines.h

枚举值
类型值说明
kSocks5Init0SOCKS5 连接初始化
kSocks5Connected1SOCKS5 连接成功
kSocks5Error2SOCKS5 连接错误
kSocks5TcpConnectFail3TCP 连接失败
kSocks5TcpClose4TCP 连接关闭
kSocks5ProtocolTcpFail5SOCKS 协议 TCP 协商阶段失败
kSocks5ProtocolUdpFail6UDP 连接失败
kSocks5AuthFail7授权失败
kSocks5Unknown8未知状态
CloudProxyInfo
struct bytertc::CloudProxyInfo
cpp

云代理信息

Defined in : bytertc_rts_defines.h

成员变量
类型名称
const char*cloud_proxy_ip
intcloud_proxy_port
变量说明

cloud_proxy_ip
const char* bytertc::CloudProxyInfo::cloud_proxy_ip;
cpp

云代理服务器 IP

cloud_proxy_port
int bytertc::CloudProxyInfo::cloud_proxy_port;
cpp

云代理服务器端口

CloudProxyConfiguration
struct bytertc::CloudProxyConfiguration
cpp

云代理相关信息

Defined in : bytertc_rts_defines.h

成员变量
类型名称
CloudProxyInfo*cloud_proxies
intcloud_proxy_count
变量说明

cloud_proxies
CloudProxyInfo* bytertc::CloudProxyConfiguration::cloud_proxies = nullptr;
cpp

云代理信息。

cloud_proxy_count
int bytertc::CloudProxyConfiguration::cloud_proxy_count = 0;
cpp

云代理数量。

LocalProxyType
enum bytertc::LocalProxyType
cpp

本地代理的类型。

Defined in : bytertc_rts_defines.h

枚举值
类型值说明
kLocalProxyTypeSocks51Socks5 代理。选用此代理服务器,需满足 Socks5 协议标准文档的要求。
kLocalProxyTypeHttpTunnel2Http 隧道代理。
LocalProxyConfiguration
struct bytertc::LocalProxyConfiguration
cpp

本地代理配置详细信息。

Defined in : bytertc_rts_defines.h

成员变量
类型名称
LocalProxyTypelocal_proxy_type
const char*local_proxy_ip
intlocal_proxy_port
const char*local_proxy_username
const char*local_proxy_password
变量说明

local_proxy_type
LocalProxyType bytertc::LocalProxyConfiguration::local_proxy_type;
cpp

本地代理类型,参看 LocalProxyType。

local_proxy_ip
const char* bytertc::LocalProxyConfiguration::local_proxy_ip;
cpp

本地代理服务器 IP。

local_proxy_port
int bytertc::LocalProxyConfiguration::local_proxy_port;
cpp

本地代理服务器端口。

local_proxy_username
const char* bytertc::LocalProxyConfiguration::local_proxy_username;
cpp

本地代理用户名。

local_proxy_password
const char* bytertc::LocalProxyConfiguration::local_proxy_password;
cpp

本地代理密码。

LocalProxyState
enum bytertc::LocalProxyState
cpp

本地代理连接状态。

Defined in : bytertc_rts_defines.h

枚举值
类型值说明
kLocalProxyStateInited0TCP 代理服务器连接成功。
kLocalProxyStateConnected1本地代理连接成功。
kLocalProxyStateError2本地代理连接出现错误。
LocalProxyError
enum bytertc::LocalProxyError
cpp

本地代理错误。

Defined in : bytertc_rts_defines.h

枚举值
类型值说明
kLocalProxyErrorOK0本地代理服务器无错误。
kLocalProxyErrorSocks5VersionError1代理服务器回复的版本号不符合 Socks5 协议标准文档的规定,导致 Socks5 代理连接失败。请检查代理服务器是否存在异常。
kLocalProxyErrorSocks5FormatError2代理服务器回复的格式错误不符合 Socks5 协议标准文档的规定,导致 Socks5 代理连接失败。请检查代理服务器是否存在异常。
kLocalProxyErrorSocks5InvalidValue3代理服务器回复的字段值不符合 Socks5 协议标准文档的规定,导致 Socks5 代理连接失败。请检查代理服务器是否存在异常。
kLocalProxyErrorSocks5UserPassNotGiven4未提供代理服务器的用户名及密码,导致 Socks5 代理连接失败。请重新调用 setLocalProxy,在设置本地代理时填入用户名和密码。
kLocalProxyErrorSocks5TcpClosed5TCP 关闭,导致 Socks5 代理连接失败。请检查网络或者代理服务器是否存在异常。
kLocalProxyErrorHttpTunnelFailed6Http 隧道代理错误。请检查 Http 隧道代理服务器或者网络是否存在异常。
PositionInfo
struct bytertc::PositionInfo
cpp

用户在空间音频坐标系里的位置信息。

Defined in : bytertc_spatial_audio_interface.h

成员变量
类型名称
Positionposition
HumanOrientationorientation
变量说明

position
Position bytertc::PositionInfo::position;
cpp

用户在空间音频坐标系里的位置,需自行建立空间直角坐标系。参看 Position。

orientation
HumanOrientation bytertc::PositionInfo::orientation;
cpp

用户在空间音频坐标系里的三维朝向信息。三个向量需要两两垂直。参看 HumanOrientation。

TranscoderContentControlType
enum bytertc::TranscoderContentControlType
cpp

合流输出内容类型

Defined in : bytertc_transcoder_base_interface.h

枚举值
类型值说明
kHasAudioAndVideo0输出的混流包含音频和视频
kHasAudioOnly1输出的混流只包含音频
kHasVideoOnly2输出的混流只包含视频
ITranscoderParamBase
class bytertc::ITranscoderParamBase
cpp

合流转码参数

Defined in : bytertc_transcoder_base_interface.h

成员函数
返回名称
virtual const char*roomID
virtual const char*other
virtual const char*jsonContent
virtual int32_tlayoutRegionsSize
virtual const char*backgroundColor
virtual voidsetRoomID
virtual voidsetJsonContent
virtual voidsetOther
virtual const char*flatten
函数说明

roomID
virtual const char* bytertc::ITranscoderParamBase::roomID()
cpp

获取合流房间 ID

返回值
合流房间 ID

other
virtual const char* bytertc::ITranscoderParamBase::other()
cpp

获取 other 数据

返回值
Other数据

jsonContent
virtual const char* bytertc::ITranscoderParamBase::jsonContent()
cpp

获取通过 flatten 方法转换得到的 json 格式内容

返回值
json 格式数据

layoutRegionsSize
virtual int32_t bytertc::ITranscoderParamBase::layoutRegionsSize()
cpp

获取合流参数中视窗的数量

返回值
合流参数中视窗的数量

backgroundColor
virtual const char* bytertc::ITranscoderParamBase::backgroundColor()
cpp

获取背景颜色

返回值
背景颜色

setRoomID
virtual void bytertc::ITranscoderParamBase::setRoomID(
    const char* room_id)
cpp

设置合流房间 ID

传入参数

参数名类型说明
room_idconst char*发起合流的用户所在的房间 ID

setJsonContent
virtual void bytertc::ITranscoderParamBase::setJsonContent(
    const char* json_content)
cpp

设置 jsonContent

传入通过 flatten 方法转换得到的 json 格式内容

传入参数

参数名类型说明
json_contentconst char*json 格式内容

setOther
virtual void bytertc::ITranscoderParamBase::setOther(
    const char* other)
cpp

设置 other 数据

传入参数

参数名类型说明
otherconst char*other 数据

flatten
virtual const char* bytertc::ITranscoderParamBase::flatten(
    const char* contentType,
    const char* action)
cpp

将合流参数转成 json 字符串

传入参数

参数名类型说明
contentTypeconst char*内容属性,表明是合流信令
actionconst char*合流状态,可选取值如下:
• started: 开启合流
• layoutChanged: 更新合流布局
• stopped: 停止合流

返回值
转换后的 json 字符串

StreamMixingEvent
enum bytertc::StreamMixingEvent
cpp

转推直播事件

Defined in : bytertc_transcoder_define.h

枚举值
类型值说明
kStreamMixingStart1请求发起转推直播任务
kStreamMixingStartSuccess2发起转推直播任务成功
kStreamMixingStartFailed3发起转推直播任务失败
kStreamMixingUpdate4请求更新转推直播任务配置
kStreamMixingUpdateSuccess5成功更新转推直播任务配置
kStreamMixingUpdateFailed6更新转推直播任务配置失败
kStreamMixingStop7请求结束转推直播任务
kStreamMixingStopSuccess8结束转推直播任务成功
kStreamMixingStopFailed9结束转推直播任务失败
kStreamMixingChangeMixType10更新转推直播任务配置的请求超时
kStreamMixingFirstAudioFrameByClientMix11得到客户端合流音频首帧
kStreamMixingFirstVideoFrameByClientMix12收到客户端合流视频首帧
kStreamMixingUpdateTimeout13更新转推直播任务配置超时
kStreamMixingStartTimeout14发起转推直播任务配置超时
kStreamMixingRequestParamError15合流布局参数错误
kStreamMixingMixImageEvent16合流加图片
MixedStreamType
enum bytertc::MixedStreamType
cpp

合流类型。(新)

Defined in : bytertc_transcoder_define.h

枚举值
类型值说明
kMixedStreamTypeByServer0服务端合流
kMixedStreamTypeByClient1端云一体合流
MixedStreamAudioProfile
enum bytertc::MixedStreamAudioProfile
cpp

AAC 编码规格。(新)

Defined in : bytertc_transcoder_define.h

枚举值
类型值说明
kMixedStreamAudioProfileLC0AAC-LC 规格,默认值。
kMixedStreamAudioProfileHEv11HE-AAC v1 规格。
kMixedStreamAudioProfileHEv22HE-AAC v2 规格。
MixedStreamAudioCodecType
enum bytertc::MixedStreamAudioCodecType
cpp

音频编码格式。(新)

Defined in : bytertc_transcoder_define.h

枚举值
类型值说明
kMixedStreamAudioCodecTypeAAC0AAC 格式。
MixedStreamVideoCodecType
enum bytertc::MixedStreamVideoCodecType
cpp

视频编码格式。(新)

Defined in : bytertc_transcoder_define.h

枚举值
类型值说明
kMixedStreamVideoCodecTypeH2640H.264 格式,默认值。
kMixedStreamVideoCodecTypeByteVC11ByteVC1 格式。
MixedStreamRenderMode
enum bytertc::MixedStreamRenderMode
cpp

图片或视频流的缩放模式。(新)

Defined in : bytertc_transcoder_define.h

枚举值
类型值说明
kMixedStreamRenderModeHidden1视窗填满优先,默认值。
视频尺寸等比缩放,直至视窗被填满。当视频尺寸与显示窗口尺寸不一致时,多出的视频将被截掉。
kMixedStreamRenderModeFit2视频帧内容全部显示优先。
视频尺寸等比缩放,优先保证视频内容全部显示。当视频尺寸与显示窗口尺寸不一致时,会把窗口未被填满的区域填充成背景颜色。
kMixedStreamRenderModeAdaptive3视频帧自适应画布。
视频尺寸非等比例缩放,把窗口充满。在此过程中,视频帧的长宽比例可能会发生变化。
MixedStreamMediaType
enum bytertc::MixedStreamMediaType
cpp

合流输出内容类型。(新)

Defined in : bytertc_transcoder_define.h

枚举值
类型值说明
kMixedStreamMediaTypeAudioAndVideo0输出的混流包含音频和视频
kMixedStreamMediaTypeAudioOnly1输出的混流只包含音频
kMixedStreamMediaTypeVideoOnly2输出的混流只包含视频
MixedStreamLayoutRegionType
enum bytertc::MixedStreamLayoutRegionType
cpp

合流布局区域类型。(新)

Defined in : bytertc_transcoder_define.h

枚举值
类型值说明
kMixedStreamLayoutRegionTypeVideoStream0合流布局区域类型为视频。
kMixedStreamLayoutRegionTypeImage1合流布局区域类型为图片。
MixedStreamClientMixVideoFormat
enum bytertc::MixedStreamClientMixVideoFormat
cpp

客户端合流回调视频格式。(新)

设置为系统不支持的格式时,自动回调系统默认格式。

Defined in : bytertc_transcoder_define.h

枚举值
类型值说明
kMixedStreamClientMixVideoFormatI4200YUV I420。Android、Windows 默认回调格式。支持系统:Android、Windows。
kMixedStreamClientMixVideoFormatTexture2D1OpenGL GL_TEXTURE_2D 格式纹理。支持系统:安卓。
kMixedStreamClientMixVideoFormatCVPixelBufferBGRA2CVPixelBuffer BGRA。iOS 默认回调格式。支持系统: iOS。
kMixedStreamClientMixVideoFormatNV123YUV NV12。macOS 默认回调格式。支持系统: macOS。
MixedStreamVideoType
enum bytertc::MixedStreamVideoType
cpp

region 中流的类型属性

Defined in : bytertc_transcoder_define.h

枚举值
类型值说明
kMixedStreamVideoTypeMain0主流。包括:

+ 由摄像头/麦克风通过内部采集机制,采集到的流

+ 通过自定义采集,采集到的流。
kMixedStreamVideoTypeScreen1屏幕流。
MixedStreamAudioConfig
typedef struct bytertc::MixedStreamAudioConfig
cpp

音频合流配置参数。(新)

值不合法或未设置时,自动使用默认值。

Defined in : bytertc_transcoder_define.h

成员变量
类型名称
int32_tsample_rate
int32_tchannels
int32_tbitrate
MixedStreamAudioProfileaudio_profile
MixedStreamAudioCodecTypeaudio_codec
变量说明

sample_rate
int32_t bytertc::MixedStreamAudioConfig::sample_rate = 48000;
cpp

音频采样率,单位 Hz。可取 32000 Hz、44100 Hz、48000 Hz,默认值为 48000 Hz。

channels
int32_t bytertc::MixedStreamAudioConfig::channels = 2;
cpp

音频声道数。可取 1(单声道)、2(双声道),默认值为 2。

bitrate
int32_t bytertc::MixedStreamAudioConfig::bitrate = 64;
cpp

音频码率,单位 Kbps。可取范围 [32, 192],默认值为 64 Kbps。

audio_profile
MixedStreamAudioProfile bytertc::MixedStreamAudioConfig::audio_profile = MixedStreamAudioProfile::kMixedStreamAudioProfileLC;
cpp

AAC 编码规格,参看 MixedStreamAudioProfile。默认值为 0。

audio_codec
MixedStreamAudioCodecType bytertc::MixedStreamAudioConfig::audio_codec = MixedStreamAudioCodecType::kMixedStreamAudioCodecTyp/;"
cpp

音频编码格式,参看 MixedStreamAudioCodecType。默认值为 0。

MixedStreamVideoConfig
typedef struct bytertc::MixedStreamVideoConfig
cpp

视频合流配置参数。(新)

值不合法或未设置时,自动使用默认值。

Defined in : bytertc_transcoder_define.h

成员变量
类型名称
int32_twidth
int32_theight
int32_tfps
int32_tgop
int32_tbitrate
MixedStreamVideoCodecTypevideo_codec
boolenable_Bframe
变量说明

width
int32_t bytertc::MixedStreamVideoConfig::width = 360;
cpp

合流视频宽度。单位为 px,范围为 [2, 1920],必须是偶数。默认值为 360 px。
设置值为非偶数时,自动向上取偶数。

height
int32_t bytertc::MixedStreamVideoConfig::height = 640;
cpp

合流视频高度。单位为 px,范围为 [2, 1920],必须是偶数。默认值为 640 px。
设置值为非偶数时,自动向上取偶数。

fps
int32_t bytertc::MixedStreamVideoConfig::fps = 15;
cpp

合流视频帧率。单位为 FPS,取值范围为 [1,60],默认值为 15 FPS。

gop
int32_t bytertc::MixedStreamVideoConfig::gop = 2;
cpp

视频 I 帧时间间隔。单位为秒,取值范围为 [1, 5],默认值为 2 秒。
本参数不支持过程中更新。

bitrate
int32_t bytertc::MixedStreamVideoConfig::bitrate = 500;
cpp

合流视频码率。单位为 Kbps,取值范围为 [1,10000],默认值为自适应模式。

video_codec
MixedStreamVideoCodecType bytertc::MixedStreamVideoConfig::video_codec = MixedStreamVideoCodecType::kMixedStreamVideoCodecTyp/;"
cpp

视频编码格式,参看 MixedStreamVideoCodecType。默认值为 0。
本参数不支持过程中更新。

enable_Bframe
bool bytertc::MixedStreamVideoConfig::enable_Bframe = false;
cpp

是否在合流中开启B帧,仅服务端合流支持:

MixedStreamClientMixConfig
typedef struct bytertc::MixedStreamClientMixConfig
cpp

客户端合流参数。(新)

Defined in : bytertc_transcoder_define.h

成员变量
类型名称
booluse_audio_mixer
MixedStreamClientMixVideoFormatvideo_format
变量说明

use_audio_mixer
bool bytertc::MixedStreamClientMixConfig::use_audio_mixer = true;
cpp

客户端合流是否使用混音,默认为 true。

video_format
MixedStreamClientMixVideoFormat bytertc::MixedStreamClientMixConfig::video_format;
cpp

客户端合流回调视频格式,参看 MixedStreamClientMixVideoFormat。

MixedStreamLayoutRegionImageWaterMarkConfig
typedef struct bytertc::MixedStreamLayoutRegionImageWaterMarkConfig
cpp

图片合流相关参数。(新)

Defined in : bytertc_transcoder_define.h

成员变量
类型名称
intimage_width
intimage_height
变量说明

image_width
int bytertc::MixedStreamLayoutRegionImageWaterMarkConfig::image_width = 0;
cpp

原始图片的宽度,单位为 px。

image_height
int bytertc::MixedStreamLayoutRegionImageWaterMarkConfig::image_height = 0;
cpp

原始图片的高度,单位为 px。

MixedStreamSpatialAudioConfig
typedef struct bytertc::MixedStreamSpatialAudioConfig
cpp

推流 CDN 的空间音频参数。(新)

Defined in : bytertc_transcoder_define.h

成员变量
类型名称
boolenable_spatial_render
Positionaudience_spatial_position
HumanOrientationaudience_spatial_orientation
变量说明

enable_spatial_render
bool bytertc::MixedStreamSpatialAudioConfig::enable_spatial_render;
cpp

是否开启推流 CDN 时的空间音频效果。

注意:
当你启用此效果时,你需要设定推流中各个 MixedStreamLayoutRegionConfig 的 spatial_position 值,实现空间音频效果。
当你启用此效果时,你需要设定推流中各个 MixedStreamLayoutRegionConfig 的 spatial_position 值,实现空间音频效果。

audience_spatial_position
Position bytertc::MixedStreamSpatialAudioConfig::audience_spatial_position;
cpp

听众的空间位置。参看 Position。

听众指收听来自 CDN 的音频流的用户。

audience_spatial_orientation
HumanOrientation bytertc::MixedStreamSpatialAudioConfig::audience_spatial_orientation;
cpp

听众的空间朝向。参看 HumanOrientation。

听众指收听来自 CDN 的音频流的用户。

MixedStreamLayoutRegionConfig
typedef struct bytertc::MixedStreamLayoutRegionConfig
cpp

单个图片或视频流在合流中的布局信息。(新)
开启合流功能后,在多路图片或视频流合流时,你可以设置其中一路流在合流中的预设布局信息。

Defined in : bytertc_transcoder_define.h

成员变量
类型名称
const char*region_id
const char*room_id
floatlocation_x
floatlocation_y
floatwidth_proportion
floatheight_proportion
floatalpha
floatcorner_radius
int32_tz_order
boolis_local_user
MixedStreamVideoTypestream_type
MixedStreamMediaTypemedia_type
MixedStreamRenderModerender_mode
MixedStreamLayoutRegionTyperegion_content_type
uint8_t*image_water_mark
MixedStreamLayoutRegionImageWaterMarkConfigimage_water_mark_param
Positionspatial_position
boolapply_spatial_audio
变量说明

region_id
const char* bytertc::MixedStreamLayoutRegionConfig::region_id = nullptr;
cpp

合流用户的 ID。必填。

room_id
const char* bytertc::MixedStreamLayoutRegionConfig::room_id = nullptr;
cpp

图片或视频流所在房间的房间 ID。必填。

如果此图片或视频流是通过 startForwardStreamToRooms 转发到你所在房间的媒体流时,你应将房间 ID 设置为你所在的房间 ID。

location_x
float bytertc::MixedStreamLayoutRegionConfig::location_x = 0.0f;
cpp

视频流对应区域左上角的横坐标相对整体画面的归一化比例,取值的范围为 [0.0, 1.0)。默认值为 0.0。

location_y
float bytertc::MixedStreamLayoutRegionConfig::location_y = 0.0f;
cpp

视频流对应区域左上角的纵坐标相对整体画面的归一化比例,取值的范围为 [0.0, 1.0)。默认值为 0.0。

width_proportion
float bytertc::MixedStreamLayoutRegionConfig::width_proportion = 1.0f;
cpp

视频流对应区域宽度相对整体画面的归一化比例,取值的范围为 [0.0, 1.0]。默认值为 1.0。

height_proportion
float bytertc::MixedStreamLayoutRegionConfig::height_proportion = 1.0f;
cpp

视频流对应区域高度相对整体画面的归一化比例,取值的范围为 [0.0, 1.0]。默认值为 1.0。

alpha
float bytertc::MixedStreamLayoutRegionConfig::alpha = 1.0f;
cpp

透明度,可选范围为 (0.0, 1.0],0.0 为全透明。默认值为 1.0。

corner_radius
float bytertc::MixedStreamLayoutRegionConfig::corner_radius = 0;
cpp

圆角半径相对画布宽度的比例。默认值为 0.0。

注意:
做范围判定时,首先根据画布的宽高,将 width,height,和 corner_radius 分别转换为像素值:width_px,height_px,和 corner_radius_px。然后判定是否满足 corner_radius_px < min(width_px/2, height_px/2):若满足,则设置成功;若不满足,则将 corner_radius_px 设定为 min(width_px/2, height_px/2),然后将 corner_radius 设定为 corner_radius_px 相对画布宽度的比例值。
做范围判定时,首先根据画布的宽高,将 width,height,和 corner_radius 分别转换为像素值:width_px,height_px,和 corner_radius_px。然后判定是否满足 corner_radius_px < min(width_px/2, height_px/2):若满足,则设置成功;若不满足,则将 corner_radius_px 设定为 min(width_px/2, height_px/2),然后将 corner_radius 设定为 corner_radius_px 相对画布宽度的比例值。

z_order
int32_t bytertc::MixedStreamLayoutRegionConfig::z_order = 0;
cpp

用户视频布局在画布中的层级。取值范围为 [0 - 100],0 为底层,值越大越上层。默认值为 0。

is_local_user
bool bytertc::MixedStreamLayoutRegionConfig::is_local_user = false;
cpp

是否为本地用户:

stream_type
MixedStreamVideoType bytertc::MixedStreamLayoutRegionConfig::stream_type = MixedStreamVideoType::kMixedStreamVideoTypeMain;
cpp

是否为屏幕流:

media_type
MixedStreamMediaType bytertc::MixedStreamLayoutRegionConfig::media_type = MixedStreamMediaType::kMixedStreamMediaTypeAudioAndVideo;
cpp

合流内容控制。默认值为 kMediaTypeAudioAndVideo,参看 MixedStreamMediaType。

render_mode
MixedStreamRenderMode bytertc::MixedStreamLayoutRegionConfig::render_mode = MixedStreamRenderMode::kMixedStreamRenderModeHidden;
cpp

图片或视频流的缩放模式,参看 MixedStreamRenderMode。默认值为 1。

region_content_type
MixedStreamLayoutRegionType bytertc::MixedStreamLayoutRegionConfig::region_content_type = MixedStreamLayoutRegionType::  kMixedStrea/;"
cpp

合流布局区域类型,参看 MixedStreamLayoutRegionType。

image_water_mark
uint8_t* bytertc::MixedStreamLayoutRegionConfig::image_water_mark = nullptr;
cpp

图片合流布局区域类型对应的数据。类型为图片时传入图片 RGBA 数据,当类型为视频流时传空。

image_water_mark_param
MixedStreamLayoutRegionImageWaterMarkConfig bytertc::MixedStreamLayoutRegionConfig::image_water_mark_param;
cpp

合流布局区域数据的对应参数。当类型为视频流时传空,类型为图片时传入对应图片的参数,参看 MixedStreamLayoutRegionImageWaterMarkConfig。

spatial_position
Position bytertc::MixedStreamLayoutRegionConfig::spatial_position;
cpp

空间位置。参看 Position。

apply_spatial_audio
bool bytertc::MixedStreamLayoutRegionConfig::apply_spatial_audio = true;
cpp
StreamMixingType
enum bytertc::StreamMixingType
cpp

合流类型

Defined in : bytertc_transcoder_define.h

枚举值
类型值说明
kStreamMixingTypeByServer0服务端合流
kStreamMixingTypeByClient1端云一体合流
TranscoderAudioCodecProfile
enum bytertc::TranscoderAudioCodecProfile
cpp

AAC 编码规格。

Defined in : bytertc_transcoder_define.h

枚举值
类型值说明
kByteAACProfileLC0AAC-LC 规格,默认值。
kByteAACProfileHEv11HE-AAC v1 规格。
kByteAACProfileHEv22HE-AAC v2 规格。
TranscoderAudioCodecType
enum bytertc::TranscoderAudioCodecType
cpp

音频编码格式。

Defined in : bytertc_transcoder_define.h

枚举值
类型值说明
kTranscodeAudioCodecAAC0AAC 格式。
TranscoderVideoCodecType
enum bytertc::TranscoderVideoCodecType
cpp

视频编码格式。

Defined in : bytertc_transcoder_define.h

枚举值
类型值说明
kTranscodeVideoCodecH2640H.264 格式,默认值。
kTranscodeVideoCodecH2651ByteVC1 格式。
TranscoderRenderMode
enum bytertc::TranscoderRenderMode
cpp

图片或视频流的缩放模式。

Defined in : bytertc_transcoder_define.h

枚举值
类型值说明
kRenderHidden1视窗填满优先,默认值。
视频尺寸等比缩放,直至视窗被填满。当视频尺寸与显示窗口尺寸不一致时,多出的视频将被截掉。
kRenderFit2视频帧内容全部显示优先。
视频尺寸等比缩放,优先保证视频内容全部显示。当视频尺寸与显示窗口尺寸不一致时,会把窗口未被填满的区域填充成背景颜色。
kRenderAdaptive3视频帧自适应画布。
视频尺寸非等比例缩放,把窗口充满。在此过程中,视频帧的长宽比例可能会发生变化。
TranscoderLayoutRegionType
enum bytertc::TranscoderLayoutRegionType
cpp

合流布局区域类型

Defined in : bytertc_transcoder_define.h

枚举值
类型值说明
kLayoutRegionTypeVideoStream0合流布局区域类型为视频。
kLayoutRegionTypeImage1合流布局区域类型为图片。
TranscoderLayoutRegionDataParam
typedef struct bytertc::TranscoderLayoutRegionDataParam
cpp

图片合流相关参数

Defined in : bytertc_transcoder_define.h

成员变量
类型名称
intimage_width
intimage_height
变量说明

image_width
int bytertc::TranscoderLayoutRegionDataParam::image_width = 0;
cpp

原始图片的宽度,单位为 px。

image_height
int bytertc::TranscoderLayoutRegionDataParam::image_height = 0;
cpp

原始图片的高度,单位为 px。

TranscoderClientMixVideoFormat
enum bytertc::TranscoderClientMixVideoFormat
cpp

客户端合流回调视频格式。设置为系统不支持的格式时,自动回调系统默认格式。

Defined in : bytertc_transcoder_define.h

枚举值
类型值说明
kClientMixVideoFormatI4200YUV I420。Android、Windows 默认回调格式。支持系统:Android、Windows。
kClientMixVideoFormatTexture2D1OpenGL GL_TEXTURE_2D 格式纹理。支持系统:安卓。
kClientMixVideoFormatCVPixelBufferBGRA2CVPixelBuffer BGRA。iOS 默认回调格式。支持系统: iOS。
kClientMixVideoFormatNV123YUV NV12。macOS 默认回调格式。支持系统: macOS。
DataFrameType
enum bytertc::DataFrameType
cpp

数据帧类型

Defined in : bytertc_transcoder_define.h

枚举值
类型值说明
kDataFrameTypeSei0SEI 视频帧
IDataFrame
typedef struct bytertc::IDataFrame
cpp

数据帧

Defined in : bytertc_transcoder_define.h

成员变量
类型名称
DataFrameTypeframe_type
uint8_t*u8_data
uint32_tu32_data_size
uint64_tu64_ts_us
变量说明

frame_type
DataFrameType bytertc::IDataFrame::frame_type = kDataFrameTypeSei;
cpp

数据帧类型,参看 DataFrameType

u8_data
uint8_t* bytertc::IDataFrame::u8_data = nullptr;
cpp

数据帧数据

u32_data_size
uint32_t bytertc::IDataFrame::u32_data_size = 0;
cpp

数据帧数据大小

u64_ts_us
uint64_t bytertc::IDataFrame::u64_ts_us = 0;
cpp

数据帧时间戳,单位:微秒

TranscoderLayoutRegion
typedef struct bytertc::TranscoderLayoutRegion
cpp

单个图片或视频流在合流中的布局信息。
开启转推直播功能后,在多路图片或视频流合流时,你可以设置其中一路流在合流中的预设布局信息。

Defined in : bytertc_transcoder_define.h

成员变量
类型名称
const char*region_id
const char*room_id
floatx
floaty
floatwidth
floatheight
floatalpha
floatcorner_radius
int32_ti32_z_order
boollocal_user
boolscreen_stream
TranscoderContentControlTypecontent_control
TranscoderRenderModerender_mode
TranscoderLayoutRegionTypetype
uint8_t*data
TranscoderLayoutRegionDataParamdata_param
Positionspatial_position
boolapply_spatial_audio
变量说明

region_id
const char* bytertc::TranscoderLayoutRegion::region_id = nullptr;
cpp

合流用户的 ID。必填。

room_id
const char* bytertc::TranscoderLayoutRegion::room_id = nullptr;
cpp

图片或视频流所在房间的房间 ID。必填。

如果此图片或视频流是通过 startForwardStreamToRooms 转发到你所在房间的媒体流时,你应将房间 ID 设置为你所在的房间 ID。

x
float bytertc::TranscoderLayoutRegion::x = 0.0f;
cpp

视频流对应区域左上角的横坐标相对整体画面的归一化比例,取值的范围为 [0.0, 1.0)。默认值为 0.0。

y
float bytertc::TranscoderLayoutRegion::y = 0.0f;
cpp

视频流对应区域左上角的纵坐标相对整体画面的归一化比例,取值的范围为 [0.0, 1.0)。默认值为 0.0。

width
float bytertc::TranscoderLayoutRegion::width = 1.0f;
cpp

视频流对应区域宽度相对整体画面的归一化比例,取值的范围为 [0.0, 1.0]。默认值为 1.0。

height
float bytertc::TranscoderLayoutRegion::height = 1.0f;
cpp

视频流对应区域高度相对整体画面的归一化比例,取值的范围为 [0.0, 1.0]。默认值为 1.0。

alpha
float bytertc::TranscoderLayoutRegion::alpha = 1.0f;
cpp

(仅服务端合流支持设置)透明度,可选范围为 (0.0, 1.0],0.0 为全透明。默认值为 1.0。

corner_radius
float bytertc::TranscoderLayoutRegion::corner_radius = 0;
cpp

(仅服务端合流支持设置)圆角半径相对画布宽度的比例。默认值为 0.0。

注意:
做范围判定时,首先根据画布的宽高,将 width,height,和 corner_radius 分别转换为像素值:width_px,height_px,和 corner_radius_px。然后判定是否满足 corner_radius_px < min(width_px/2, height_px/2):若满足,则设置成功;若不满足,则将 corner_radius_px 设定为 min(width_px/2, height_px/2),然后将 corner_radius 设定为 corner_radius_px 相对画布宽度的比例值。
做范围判定时,首先根据画布的宽高,将 width,height,和 corner_radius 分别转换为像素值:width_px,height_px,和 corner_radius_px。然后判定是否满足 corner_radius_px < min(width_px/2, height_px/2):若满足,则设置成功;若不满足,则将 corner_radius_px 设定为 min(width_px/2, height_px/2),然后将 corner_radius 设定为 corner_radius_px 相对画布宽度的比例值。

i32_z_order
int32_t bytertc::TranscoderLayoutRegion::i32_z_order = 0;
cpp

用户视频布局在画布中的层级。取值范围为 [0 - 100],0 为底层,值越大越上层。默认值为 0。

local_user
bool bytertc::TranscoderLayoutRegion::local_user = false;
cpp

是否为本地用户:

screen_stream
bool bytertc::TranscoderLayoutRegion::screen_stream = false;
cpp

(仅服务端合流支持合屏幕流)是否为屏幕流:

content_control
TranscoderContentControlType bytertc::TranscoderLayoutRegion::content_control = kHasAudioAndVideo;
cpp

(仅服务端合流支持设置)合流内容控制。默认值为 kHasAudioAndVideo,参看 TranscoderContentControlType。

render_mode
TranscoderRenderMode bytertc::TranscoderLayoutRegion::render_mode = kRenderHidden;
cpp

图片或视频流的缩放模式,参看 TranscoderRenderMode。默认值为 1。

type
TranscoderLayoutRegionType bytertc::TranscoderLayoutRegion::type = kLayoutRegionTypeVideoStream;
cpp

合流布局区域类型,参看 TranscoderLayoutRegionType。

data
uint8_t* bytertc::TranscoderLayoutRegion::data = nullptr;
cpp

图片合流布局区域类型对应的数据。类型为图片时传入图片 RGBA 数据,当类型为视频流时传空。

data_param
TranscoderLayoutRegionDataParam bytertc::TranscoderLayoutRegion::data_param;
cpp

合流布局区域数据的对应参数。当类型为视频流时传空,类型为图片时传入对应图片的参数,参看 TranscoderLayoutRegionDataParam。

spatial_position
Position bytertc::TranscoderLayoutRegion::spatial_position;
cpp

空间位置。参看 Position。

apply_spatial_audio
bool bytertc::TranscoderLayoutRegion::apply_spatial_audio = true;
cpp
TranscoderAudioParam
typedef struct bytertc::TranscoderAudioParam
cpp

音频转码配置参数。值不合法或未设置时,自动使用默认值。

Defined in : bytertc_transcoder_define.h

成员变量
类型名称
int32_ti32_sample_rate
int32_ti32_channel_num
int32_ti32_bitrate_kbps
TranscoderAudioCodecProfileaudio_codec_profile
TranscoderAudioCodecTypeaudio_codec_type
变量说明

i32_sample_rate
int32_t bytertc::TranscoderAudioParam::i32_sample_rate = 48000;
cpp

音频采样率,单位 Hz。可取 32000 Hz、44100 Hz、48000 Hz,默认值为 48000 Hz。

i32_channel_num
int32_t bytertc::TranscoderAudioParam::i32_channel_num = 2;
cpp

音频声道数。可取 1(单声道)、2(双声道),默认值为 2。

i32_bitrate_kbps
int32_t bytertc::TranscoderAudioParam::i32_bitrate_kbps = 64;
cpp

音频码率,单位 Kbps。可取范围 [32, 192],默认值为 64 Kbps。

audio_codec_profile
TranscoderAudioCodecProfile bytertc::TranscoderAudioParam::audio_codec_profile = kByteAACProfileLC;
cpp

AAC 编码规格,参看 TranscoderAudioCodecProfile。默认值为 0。

audio_codec_type
TranscoderAudioCodecType bytertc::TranscoderAudioParam::audio_codec_type = kTranscodeAudioCodecAAC;
cpp

音频编码格式,参看 TranscoderAudioCodecType。默认值为 0。

TranscoderVideoParam
typedef struct bytertc::TranscoderVideoParam
cpp

视频转码配置参数。值不合法或未设置时,自动使用默认值。

Defined in : bytertc_transcoder_define.h

成员变量
类型名称
int32_ti32_width
int32_ti32_height
int32_ti32_fps
int32_ti32_gop
int32_ti32_bitrate_kbps
TranscoderVideoCodecTypevideo_codec_type
boolbFrame
变量说明

i32_width
int32_t bytertc::TranscoderVideoParam::i32_width = 360;
cpp

合流视频宽度。单位为 px,范围为 [2, 1920],必须是偶数。默认值为 360 px。
设置值为非偶数时,自动向上取偶数。

i32_height
int32_t bytertc::TranscoderVideoParam::i32_height = 640;
cpp

合流视频高度。单位为 px,范围为 [2, 1920],必须是偶数。默认值为 640 px。
设置值为非偶数时,自动向上取偶数。

i32_fps
int32_t bytertc::TranscoderVideoParam::i32_fps = 15;
cpp

合流视频帧率。单位为 FPS,取值范围为 [1,60],默认值为 15 FPS。

i32_gop
int32_t bytertc::TranscoderVideoParam::i32_gop = 2;
cpp

视频 I 帧时间间隔。单位为秒,取值范围为 [1, 5],默认值为 2 秒。
本参数不支持过程中更新。

i32_bitrate_kbps
int32_t bytertc::TranscoderVideoParam::i32_bitrate_kbps = 500;
cpp

合流视频码率。单位为 Kbps,取值范围为 [1,10000],默认值为自适应模式。

video_codec_type
TranscoderVideoCodecType bytertc::TranscoderVideoParam::video_codec_type = kTranscodeVideoCodecH264;
cpp

视频编码格式,参看 TranscoderVideoCodecType。默认值为 0。
本参数不支持过程中更新。

bFrame
bool bytertc::TranscoderVideoParam::bFrame = false;
cpp

是否在合流中开启B帧,仅服务端合流支持:

TranscoderClientMixParam
typedef struct bytertc::TranscoderClientMixParam
cpp

客户端合流参数。

Defined in : bytertc_transcoder_define.h

成员变量
类型名称
boolclient_mix_use_original_frame
boolclient_mix_use_audio_mixer
TranscoderClientMixVideoFormatclient_mix_video_format_
变量说明

client_mix_use_original_frame
bool bytertc::TranscoderClientMixParam::client_mix_use_original_frame = false;
cpp

是否使用原始视频帧。默认为 False。

client_mix_use_audio_mixer
bool bytertc::TranscoderClientMixParam::client_mix_use_audio_mixer = true;
cpp

客户端合流是否使用音频混音,默认为 true。

client_mix_video_format_
TranscoderClientMixVideoFormat bytertc::TranscoderClientMixParam::client_mix_video_format_;
cpp

客户端合流回调视频格式,参看 TranscoderClientMixVideoFormat。

TranscoderSpatialConfig
typedef struct bytertc::TranscoderSpatialConfig
cpp

推流 CDN 的空间音频参数。

Defined in : bytertc_transcoder_define.h

成员变量
类型名称
boolenable_spatial_render
Positionaudience_spatial_position
HumanOrientationaudience_spatial_orientation
变量说明

enable_spatial_render
bool bytertc::TranscoderSpatialConfig::enable_spatial_render;
cpp

是否开启推流 CDN 时的空间音频效果。

注意:
当你启用此效果时,你需要设定推流中各个 TranscoderLayoutRegion 的 spatial_position 值,实现空间音频效果。
当你启用此效果时,你需要设定推流中各个 TranscoderLayoutRegion 的 spatial_position 值,实现空间音频效果。

audience_spatial_position
Position bytertc::TranscoderSpatialConfig::audience_spatial_position;
cpp

听众的空间位置。参看 Position。

听众指收听来自 CDN 的音频流的用户。

audience_spatial_orientation
HumanOrientation bytertc::TranscoderSpatialConfig::audience_spatial_orientation;
cpp

听众的空间朝向。参看 HumanOrientation。

听众指收听来自 CDN 的音频流的用户。

ITranscoderParam
class bytertc::ITranscoderParam
cpp

转推直播配置参数。

Defined in : bytertc_transcoder_define.h

成员函数
返回名称
virtual StreamMixingTypeexpectedMixingType
virtual const char*userID
virtual const char*uri
virtual const char*appData
virtual TranscoderAudioParamaudioParam
virtual TranscoderVideoParamvideoParam
virtual TranscoderLayoutRegionlayoutRegionByIndex
virtual TranscoderClientMixParamclientMixParam
virtual voidsetExpectedMixingType
virtual voidsetUserID
virtual voidsetUri
virtual voidsetAudioParam
virtual voidsetVideoParam
virtual voidsetLayoutParam
virtual ITranscoderParam*inflatten
virtual ITranscoderParam*defaultTranscoding
函数说明

expectedMixingType
virtual StreamMixingType bytertc::ITranscoderParam::expectedMixingType()
cpp

获取合流类型。

返回值
合流类型,参看 StreamMixingType

注意
本参数不支持过程中更新。

userID
virtual const char* bytertc::ITranscoderParam::userID()
cpp

获取推流用户 ID。

返回值
推流用户 ID。

uri
virtual const char* bytertc::ITranscoderParam::uri()
cpp

获取推流 CDN 地址。

返回值
推流地址。

appData
virtual const char* bytertc::ITranscoderParam::appData()
cpp

获取 SEI 信息。

返回值
SEI 信息。

audioParam
virtual TranscoderAudioParam bytertc::ITranscoderParam::audioParam()
cpp

获取合流音频参数。

返回值
合流音频参数内容,参看 TranscoderAudioParam。

videoParam
virtual TranscoderVideoParam bytertc::ITranscoderParam::videoParam()
cpp

获取合流视频转码参数。

返回值
合流视频转码参数内容,参看 TranscoderVideoParam。

layoutRegionByIndex
virtual TranscoderLayoutRegion bytertc::ITranscoderParam::layoutRegionByIndex(
    int32_t index)
cpp

获取合流视窗布局信息。

传入参数

参数名类型说明
indexint32_t视窗对应下标。

返回值
合流视窗布局信息,参看 TranscoderLayoutRegion。

clientMixParam
virtual TranscoderClientMixParam bytertc::ITranscoderParam::clientMixParam()
cpp

Available since 3.50

获取客户端合流信息。

返回值
客户端合流信息,参看 TranscoderClientMixParam。

setExpectedMixingType
virtual void bytertc::ITranscoderParam::setExpectedMixingType(
    StreamMixingType expected_mix_type)
cpp

设置合流类型。

传入参数

参数名类型说明
expected_mix_typeStreamMixingType合流类型,参看 StreamMixingType

setUserID
virtual void bytertc::ITranscoderParam::setUserID(
    const char* user_id)
cpp

设置推流用户 ID。room_id 和 user_id 长度相加不得超过 126 字节。
本参数不支持过程中更新。

传入参数

参数名类型说明
user_idconst char*推流用户 ID。

setUri
virtual void bytertc::ITranscoderParam::setUri(
    const char* uri)
cpp

设置推流 CDN 地址。仅支持 RTMP 协议,Url 必须满足正则 /^rtmps?:\/\//。
本参数不支持过程中更新。

传入参数

参数名类型说明
uriconst char*推流地址。

setAudioParam
virtual void bytertc::ITranscoderParam::setAudioParam(
    const TranscoderAudioParam&)
cpp

设置音频参数。参看 TranscoderAudioParam。
本参数不支持过程中更新。

setVideoParam
virtual void bytertc::ITranscoderParam::setVideoParam(
    const TranscoderVideoParam&)
cpp

设置视频参数。参看 TranscoderVideoParam。

setLayoutParam
virtual void bytertc::ITranscoderParam::setLayoutParam(
    TranscoderLayoutRegion regions[],
    int32_t regions_size,
    const char* bg_color,
    const char* app_data)
cpp

设置视频流合流整体布局信息。

传入参数

参数名类型说明
regions[]TranscoderLayoutRegion用户布局信息列表。为 TranscoderLayoutRegion 数据类型的数组。每一个该类型对象为一路单独的视频流的布局信息。
值不合法或未设置时,自动使用默认值。
regions_sizeint32_t合流视窗数量。
bg_colorconst char*合流背景颜色,用十六进制颜色码(HEX)表示。例如,#FFFFFF 表示纯白,#000000 表示纯黑。默认值为 #000000。
值不合法或未设置时,自动使用默认值。
app_dataconst char*透传的 App 数据,长度不超过 4 KB。

inflatten
virtual ITranscoderParam* bytertc::ITranscoderParam::inflatten(
    const char* json_str)
cpp

将输入的 json 格式的字符串转成 ITranscoderParam 结构体

传入参数

参数名类型说明
json_strconst char*json 格式字符串

返回值
转换后的 ITranscoderParam 结构体

defaultTranscoding
virtual ITranscoderParam* bytertc::ITranscoderParam::defaultTranscoding()
cpp

获取默认的合流转推参数

返回值
生成的 ITranscoderParam 结构体

IMixedStreamConfig
class bytertc::IMixedStreamConfig
cpp

转推直播配置参数。(新)

Defined in : bytertc_transcoder_define.h

成员函数
返回名称
virtual MixedStreamTypegetExpectedMixingType
virtual const char*getUserID
virtual const char*getPushURL
virtual const char*getUserConfigExtraInfo
virtual MixedStreamAudioConfiggetAudioConfig
virtual MixedStreamVideoConfiggetVideoConfig
virtual MixedStreamLayoutRegionConfiggetLayoutByIndex
virtual MixedStreamClientMixConfiggetClientMixConfig
virtual voidsetExpectedMixingType
virtual voidsetUserID
virtual voidsetPushURL
virtual voidsetAudioConfig
virtual voidsetVideoConfig
virtual voidsetLayoutConfig
virtual voidsetClientMixConfig
virtual IMixedStreamConfig*defaultMixedStreamConfig
函数说明

getExpectedMixingType
virtual MixedStreamType bytertc::IMixedStreamConfig::getExpectedMixingType()
cpp

获取合流类型。

返回值
合流类型,参看 MixedStreamType

getUserID
virtual const char* bytertc::IMixedStreamConfig::getUserID()
cpp

获取推流用户 ID。

返回值
推流用户 ID。

getPushURL
virtual const char* bytertc::IMixedStreamConfig::getPushURL()
cpp

获取推流 CDN 地址。

返回值
推流地址。

getUserConfigExtraInfo
virtual const char* bytertc::IMixedStreamConfig::getUserConfigExtraInfo()
cpp

获取用户配置的额外信息。

返回值
UserConfigExtraInfo 信息。

getAudioConfig
virtual MixedStreamAudioConfig bytertc::IMixedStreamConfig::getAudioConfig()
cpp

获取合流音频参数。

返回值
合流音频参数内容,参看 MixedStreamAudioConfig。

getVideoConfig
virtual MixedStreamVideoConfig bytertc::IMixedStreamConfig::getVideoConfig()
cpp

获取合流视频转码参数。

返回值
合流视频转码参数内容,参看 MixedStreamVideoConfig。

getLayoutByIndex
virtual MixedStreamLayoutRegionConfig bytertc::IMixedStreamConfig::getLayoutByIndex(
    int32_t index)
cpp

获取合流视窗布局信息。

传入参数

参数名类型说明
indexint32_t视窗对应下标。

返回值
合流视窗布局信息,参看 MixedStreamLayoutRegionConfig。

getClientMixConfig
virtual MixedStreamClientMixConfig bytertc::IMixedStreamConfig::getClientMixConfig()
cpp

获取客户端合流信息。

返回值
客户端合流信息,参看 MixedStreamClientMixConfig。

setExpectedMixingType
virtual void bytertc::IMixedStreamConfig::setExpectedMixingType(
    MixedStreamType expected_mix_type)
cpp

设置合流类型。

传入参数

参数名类型说明
expected_mix_typeMixedStreamType合流类型,参看 MixedStreamType

setUserID
virtual void bytertc::IMixedStreamConfig::setUserID(
    const char* user_id)
cpp

设置推流用户 ID。room_id 和 user_id 长度相加不得超过 126 字节。
本参数不支持过程中更新。

传入参数

参数名类型说明
user_idconst char*推流用户 ID。

setPushURL
virtual void bytertc::IMixedStreamConfig::setPushURL(
    const char* push_url)
cpp

设置推流 CDN 地址。仅支持 RTMP 协议,Url 必须满足正则 /^rtmps?:\/\//。
本参数不支持过程中更新。

传入参数

参数名类型说明
urlconst char push_*推流地址。

setAudioConfig
virtual void bytertc::IMixedStreamConfig::setAudioConfig(
    const MixedStreamAudioConfig&)
cpp

设置音频参数。参看 MixedStreamAudioConfig。
本参数不支持过程中更新。

setVideoConfig
virtual void bytertc::IMixedStreamConfig::setVideoConfig(
    const MixedStreamVideoConfig&)
cpp

设置视频参数。参看 MixedStreamVideoConfig。

setLayoutConfig
virtual void bytertc::IMixedStreamConfig::setLayoutConfig(
    MixedStreamLayoutRegionConfig regions[],
    int32_t regions_size,
    const char* background_color,
    const char* user_extra_info)
cpp

设置视频流合流整体布局信息。

传入参数

参数名类型说明
regions[]MixedStreamLayoutRegionConfig用户布局信息列表。为 MixedStreamLayoutRegionConfig 数据类型的数组。每一个该类型对象为一路单独的视频流的布局信息。
值不合法或未设置时,自动使用默认值。
regions_sizeint32_t合流视窗数量。
background_colorconst char*合流背景颜色,用十六进制颜色码(HEX)表示。例如,#FFFFFF 表示纯白,#000000 表示纯黑。默认值为 #000000。
值不合法或未设置时,自动使用默认值。
user_extra_infoconst char*透传的 App 数据。

setClientMixConfig
virtual void bytertc::IMixedStreamConfig::setClientMixConfig(
    MixedStreamClientMixConfig&)
cpp

设置客户端合流信息,参看 MixedStreamClientMixConfig。

defaultMixedStreamConfig
virtual IMixedStreamConfig* bytertc::IMixedStreamConfig::defaultMixedStreamConfig()
cpp

获取默认的合流转推参数

返回值
生成的 IMixedStreamConfig 结构体

PushSingleStreamParam
typedef struct bytertc::PushSingleStreamParam
cpp

单流转推直播配置参数。

Defined in : bytertc_transcoder_define.h

成员变量
类型名称
const char*room_id
const char*user_id
const char*uri
const boolis_screen_stream
变量说明

room_id
const char* bytertc::PushSingleStreamParam::room_id;
cpp

媒体流所在的房间 ID

user_id
const char* bytertc::PushSingleStreamParam::user_id;
cpp

媒体流所属的用户 ID

uri
const char* bytertc::PushSingleStreamParam::uri;
cpp

推流地址

is_screen_stream
const bool bytertc::PushSingleStreamParam::is_screen_stream;
cpp

媒体流是否为屏幕流。

RenderMode
enum bytertc::RenderMode
cpp

渲染模式

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kRenderModeHidden1视窗填满优先,默认值。
视频帧等比缩放,直至视窗被视频填满。如果视频帧长宽比例与视窗不同,视频帧的多出部分将无法显示。
缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长大于等于视窗对应边长。
kRenderModeFit2视频帧内容全部显示优先。
视频帧等比缩放,直至视频帧能够在视窗上全部显示。如果视频帧长宽比例与视窗不同,视窗上未被视频帧填满区域将被涂黑。
缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长小于等于视窗对应边长。
kRenderModeFill3视频帧自适应画布。
视频帧非等比缩放,直至画布被填满。在此过程中,视频帧的长宽比例可能会发生变化。
SubscribeMediaType
enum bytertc::SubscribeMediaType
cpp

订阅媒体的类型

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kRTCSubscribeMediaTypeNone0既不订阅音频,也不订阅视频
kRTCSubscribeMediaTypeAudioOnly1只订阅音频,不订阅视频
kRTCSubscribeMediaTypeVideoOnly2只订阅视频,不订阅音频
kRTCSubscribeMediaTypeVideoAndAudio3同时订阅音频和视频
PauseResumeControlMediaType
enum bytertc::PauseResumeControlMediaType
cpp

暂停/恢复接收远端的媒体流类型。

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kRTCPauseResumeControlMediaTypeAudio0只控制音频,不影响视频
kRTCPauseResumeControlMediaTypeVideo1只控制视频,不影响音频
kRTCPauseResumeControlMediaTypeVideoAndAudio2同时控制音频和视频
SVCLayer
enum bytertc::SVCLayer
cpp

时域分层定义

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kSVCLayerDefault0不指定分层(默认值)
kSVCLayerBase1T0层
kSVCLayerMain2T0+T1层
kSVCLayerHigh3T0+T1+T2层
RemoteStreamSwitch
struct bytertc::RemoteStreamSwitch
cpp

流切换信息。本地用户订阅的远端流触发回退策略时的流切换信息。

Defined in : bytertc_video_defines.h

成员变量
类型名称
const char*uid
boolis_screen
intbefore_video_index
intafter_video_index
boolbefore_enable
boolafter_enable
FallbackOrRecoverReasonreason
变量说明

uid
const char* bytertc::RemoteStreamSwitch::uid;
cpp

订阅的音视频流的发布者的用户 ID。

is_screen
bool bytertc::RemoteStreamSwitch::is_screen;
cpp

是否是屏幕流。

before_video_index
int bytertc::RemoteStreamSwitch::before_video_index;
cpp

流切换前本地用户订阅的视频流的分辨率对应的索引。

after_video_index
int bytertc::RemoteStreamSwitch::after_video_index;
cpp

流切换后本地用户订阅的视频流的分辨率对应的索引。

before_enable
bool bytertc::RemoteStreamSwitch::before_enable;
cpp

流切换前是否有视频流。

after_enable
bool bytertc::RemoteStreamSwitch::after_enable;
cpp

流切换后是否有视频流。

reason
FallbackOrRecoverReason bytertc::RemoteStreamSwitch::reason;
cpp

触发流回退的原因,详见类型 FallbackOrRecoverReason 。

TransCodingError
enum bytertc::TransCodingError
cpp

直播推流转码功能错误码。

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kTransCodingErrorOK0推流成功。
kTransCodingErrorInvalidArgument1推流参数错误。
kTransCodingErrorSubscribe2和 RTC 服务端建立连接失败。会自动重连
kTransCodingErrorProcessing3合流服务中间过程存在错误,建议重试。
kTransCodingErrorPublish4推流失败,可以等待服务端重新推流。
LiveTranscodingContentControl
enum bytertc::LiveTranscodingContentControl
cpp

转推直播包含内容。

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kVideoAndAudio0输出的混流包含音频和视频
kAudioOnly1输出的混流只包含音频
kVideoOnly2输出的混流只包含视频
LiveTranscodingVideoCodec
enum bytertc::LiveTranscodingVideoCodec
cpp

转推直播视频编码器格式。

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kLiveTranscondingH2640使用 H264 编码格式
kLiveTranscodingByteVC11自定义编码器
LiveTranscodingAudioCodec
enum bytertc::LiveTranscodingAudioCodec
cpp

转推直播音频编码格式。

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kLiveTranscodingAAC0使用 AAC 编码格式
LiveTranscodingAudioProfile
enum bytertc::LiveTranscodingAudioProfile
cpp

AAC 编码等级。

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kLiveTranscodingAACLC0编码等级 AAC-LC (默认)
kLiveTranscodingAACMAIN1编码等级 AAC-MAIN
kLiveTranscodingHEV12编码等级 HE-AAC v1
KLiveTranscodingHEV23编码等级 HE-AAC v2
LiveTranscodingVideoConfig
struct bytertc::LiveTranscodingVideoConfig
cpp

转推视频配置。

Defined in : bytertc_video_defines.h

成员变量
类型名称
LiveTranscodingVideoCodeccodec
intfps
intgop
boollow_latency
intbitrate
intwidth
intheight
变量说明

codec
LiveTranscodingVideoCodec bytertc::LiveTranscodingVideoConfig::codec;
cpp

转推直播视频编码器格式。详见 LiveTranscodingVideoCodec

fps
int bytertc::LiveTranscodingVideoConfig::fps;
cpp

合流视频帧率信息

gop
int bytertc::LiveTranscodingVideoConfig::gop;
cpp

视频 I 帧间隔。

low_latency
bool bytertc::LiveTranscodingVideoConfig::low_latency;
cpp

是否使用低延时特性。取值含义如下:

bitrate
int bytertc::LiveTranscodingVideoConfig::bitrate;
cpp

合流视频码率,单位为 bps 。

width
int bytertc::LiveTranscodingVideoConfig::width;
cpp

宽(像素)

height
int bytertc::LiveTranscodingVideoConfig::height;
cpp

高(像素)

LiveTranscodingAudioConfig
struct bytertc::LiveTranscodingAudioConfig
cpp

转推音频配置。

Defined in : bytertc_video_defines.h

成员变量
类型名称
LiveTranscodingAudioCodeccodec
intbitrate
intsample_rate
intchannels
LiveTranscodingAudioProfileaac_profile
变量说明

codec
LiveTranscodingAudioCodec bytertc::LiveTranscodingAudioConfig::codec = kLiveTranscodingAAC;
cpp

转推直播音频编码器格式。详见 LiveTranscodingAudioCodec

bitrate
int bytertc::LiveTranscodingAudioConfig::bitrate;
cpp

合流音频码率,单位为 bps 。

sample_rate
int bytertc::LiveTranscodingAudioConfig::sample_rate;
cpp

音频帧采样率,单位 HZ。目前支持的采样率有:8000HZ, 16000HZ, 32000HZ, 44100HZ,48000HZ。

channels
int bytertc::LiveTranscodingAudioConfig::channels;
cpp

音频声道数,可取 1 或 2。

aac_profile
LiveTranscodingAudioProfile bytertc::LiveTranscodingAudioConfig::aac_profile = kLiveTranscodingAACLC;
cpp

AAC 编码等级。详见 LiveTranscodingAudioProfile

LiveTranscodingRegion
struct bytertc::LiveTranscodingRegion
cpp

单个视频流在合流中的布局信息。

Defined in : bytertc_video_defines.h

成员变量
类型名称
const char*uid
const char*roomId
doublex
doubley
doublew
doubleh
intzorder
doublealpha
LiveTranscodingContentControlcontent_control
RenderModerender_mode
变量说明

uid
const char* bytertc::LiveTranscodingRegion::uid = nullptr;
cpp

视频流发布用户的用户 ID 。必填。

roomId
const char* bytertc::LiveTranscodingRegion::roomId = nullptr;
cpp

视频流发布用户的房间 ID 。必填。

x
double bytertc::LiveTranscodingRegion::x;
cpp

用户视频布局相对画布左侧的偏移量。相对值,范围为[0.0, 1.0]。

y
double bytertc::LiveTranscodingRegion::y;
cpp

用户视频布局相对画布顶端的偏移量。相对值,范围为[0.0, 1.0]。

w
double bytertc::LiveTranscodingRegion::w;
cpp

用户视频宽度相对用户原始视频宽度的比例。相对值,范围为[0.0, 1.0]。

h
double bytertc::LiveTranscodingRegion::h;
cpp

用户视频高度相对用户原始视频高度的比例。相对值,范围为[0.0, 1.0]。

zorder
int bytertc::LiveTranscodingRegion::zorder;
cpp

用户视频布局在画布中的层级。0为底层,值越大越上层,范围为[0, 100]。

alpha
double bytertc::LiveTranscodingRegion::alpha;
cpp

透明度。范围为 [0.0, 1.0]。

content_control
LiveTranscodingContentControl bytertc::LiveTranscodingRegion::content_control = kVideoAndAudio;
cpp

转推直播包含内容。详见 LiveTranscodingContentControl

render_mode
RenderMode bytertc::LiveTranscodingRegion::render_mode = kRenderModeHidden;
cpp

渲染模式

LiveTranscodingLayout
struct bytertc::LiveTranscodingLayout
cpp

转推流布局设置。

Defined in : bytertc_video_defines.h

成员变量
类型名称
const char*app_data
const char*background_color
LiveTranscodingRegion*regions
intregions_num
变量说明

app_data
const char* bytertc::LiveTranscodingLayout::app_data = nullptr;
cpp

SEI 信息,长度不得超 4096 bytes

background_color
const char* bytertc::LiveTranscodingLayout::background_color = nullptr;
cpp

视频的背景颜色。格式为 RGB 定义下的 Hex 值,如 #FFB6C1 表示浅粉色。默认值 #000000,表示为黑色

regions
LiveTranscodingRegion* bytertc::LiveTranscodingLayout::regions = nullptr;
cpp

转推直播布局信息。详见 LiveTranscodingRegion

regions_num
int bytertc::LiveTranscodingLayout::regions_num = 0;
cpp

合流的数量

LiveTranscodingConfig
struct bytertc::LiveTranscodingConfig
cpp

转推直播配置信息。

Defined in : bytertc_video_defines.h

成员变量
类型名称
const char*url
LiveTranscodingVideoConfigvideo_config
LiveTranscodingAudioConfigaudio_config
LiveTranscodingLayoutlayout
const char*advanced_config
变量说明

url
const char* bytertc::LiveTranscodingConfig::url = nullptr;
cpp

设置推流地址。

video_config
LiveTranscodingVideoConfig bytertc::LiveTranscodingConfig::video_config;
cpp

转推视频配置。详见 LiveTranscodingVideoConfig

audio_config
LiveTranscodingAudioConfig bytertc::LiveTranscodingConfig::audio_config;
cpp

转推音频配置。详见 LiveTranscodingAudioConfig

layout
LiveTranscodingLayout bytertc::LiveTranscodingConfig::layout;
cpp

转推流布局设置。详见 LiveTranscodingLayout

advanced_config
const char* bytertc::LiveTranscodingConfig::advanced_config = nullptr;
cpp

设置动态扩展自定义参数。

BackgroundMode
enum bytertc::BackgroundMode
cpp

背景模式

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kBackgroundModeNone0无
kBackgroundModeBlur1虚化
kBackgroundModeA2背景 1
kBackgroundModeB3背景 2
DivideMode
enum bytertc::DivideMode
cpp

分割模型

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kDivideModeNone0自研
kDivideModeEffect1effect
MediaStreamInfo
struct bytertc::MediaStreamInfo
cpp

流属性。

Defined in : bytertc_video_defines.h

成员变量
类型名称
const char*user_id
boolis_screen
boolhas_video
boolhas_audio
VideoSolutionDescription*profiles
intprofile_count
VideoSolutionDescriptionmax_profile
变量说明

user_id
const char* bytertc::MediaStreamInfo::user_id;
cpp

发布此流的用户 ID 。

is_screen
bool bytertc::MediaStreamInfo::is_screen;
cpp

此流是否为共享屏幕流。

has_video
bool bytertc::MediaStreamInfo::has_video;
cpp

此流是否包括视频流。

has_audio
bool bytertc::MediaStreamInfo::has_audio;
cpp

流是否包括音频流。

profiles
VideoSolutionDescription* bytertc::MediaStreamInfo::profiles;
cpp

视频流的属性。

当远端用户调用 setVideoEncoderConfig 方法发布多个配置的视频流时,此处会包含该用户发布的所有视频流的属性信息。
参看 VideoSolutionDescription。

profile_count
int bytertc::MediaStreamInfo::profile_count;
cpp

不同配置流的个数。

当远端用户调用 setVideoEncoderConfig 方法发布多个配置的视频流时,此处会包含该用户发布的视频流的数目。

max_profile
VideoSolutionDescription bytertc::MediaStreamInfo::max_profile;
cpp

最大视频流的属性。

当远端用户开启带通道划分的大小流时,回调最大视频流属性信息。用户可以使用新的订阅方式,订阅任意不超过该分辨率的流。
最终接收到的流,会受房间内其他用户的订阅行为的影响,综合确定一个最接近用户请求的分辨率的流。

SubscribeVideoConfig
struct bytertc::SubscribeVideoConfig
cpp

视频订阅配置信息

Defined in : bytertc_video_defines.h

成员变量
类型名称
intvideo_index
intpriority
变量说明

video_index
int bytertc::SubscribeVideoConfig::video_index = 0;
cpp

订阅的视频流分辨率下标。

当远端用户通过调用 setVideoEncoderConfig 方法启动发布多路不同分辨率的视频流时,本地用户需通过此参数指定希望订阅的流。

默认值为 0,即订阅第一路流。

如果不想更改之前的设置,可以输入 -1。

priority
int bytertc::SubscribeVideoConfig::priority = 0;
cpp

远端用户优先级,参看 RemoteUserPriority,默认值为 0。

SubscribeConfig
struct bytertc::SubscribeConfig
cpp

手动订阅流的配置信息。

Defined in : bytertc_video_defines.h

成员变量
类型名称
boolis_screen
boolsub_video
boolsub_audio
intvideo_index
intpriority
intsvc_layer
intframerate
intsub_width
intsub_height
变量说明

is_screen
bool bytertc::SubscribeConfig::is_screen = false;
cpp

是否是屏幕流(默认为否)。

sub_video
bool bytertc::SubscribeConfig::sub_video;
cpp

是否订阅视频。

sub_audio
bool bytertc::SubscribeConfig::sub_audio;
cpp

是否订阅音频。

video_index
int bytertc::SubscribeConfig::video_index;
cpp

订阅的视频流分辨率下标。

用户可以通过调用 setVideoEncoderConfig 方法在一路流中发布多个不同分辨率的视频。因此订阅流时,需要指定订阅的具体分辨率。此参数即用于指定需订阅的分辨率的下标,默认值为 0 。

priority
int bytertc::SubscribeConfig::priority = 0;
cpp

远端用户的需求优先级,参看 RemoteUserPriority,默认值为 0 。

当开启了订阅流回退选项功能(详见 setSubscribeFallbackOption 方法),弱网或性能不足时会优先保证收到的高优先级用户的流的质量。

svc_layer
int bytertc::SubscribeConfig::svc_layer = 0;
cpp

远端用户的时域分层,参看 SVCLayer,默认值为 0 。

仅码流支持SVC特性时可以生效。

framerate
int bytertc::SubscribeConfig::framerate = 0;
cpp

期望订阅的最高帧率,单位:fps,默认值为 0,设为大于 0 的值时开始生效。

当发布端帧率低于设定帧率,或订阅端开启性能回退后下行弱网,则帧率会相应下降。

仅码流支持 SVC 分级编码特性时方可生效。

sub_width
int bytertc::SubscribeConfig::sub_width = 0;
cpp

用户通过指定UI对应的最合适的流的宽度,单位:px

sub_height
int bytertc::SubscribeConfig::sub_height = 0;
cpp

用户通过指定UI对应的最合适的流的高度,单位:px

VideoStreamType
enum bytertc::VideoStreamType
cpp

远端视频类型
目前C++ sdk 只支持 kVideoStreamTypeHigh 类型

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kVideoStreamTypeHigh0高分辨率视频流
kVideoStreamTypeLow1低分辨率视频
VideoCanvas
struct bytertc::VideoCanvas
cpp

视频帧渲染设置。

调用 setLocalVideoCanvas 将视频流绑定到本地视图。

Defined in : bytertc_video_defines.h

成员变量
类型名称
void*view
intrender_mode
uint32_tbackground_color
变量说明

view
void* bytertc::VideoCanvas::view;
cpp

本地视图句柄

render_mode
int bytertc::VideoCanvas::render_mode;
cpp

视频渲染模式,参看 RenderMode

background_color
uint32_t bytertc::VideoCanvas::background_color;
cpp

用于填充画布空白部分的背景颜色。取值范围是 [0x00000000, 0xFFFFFFFF]。默认值是 0x00000000。其中,透明度设置无效。

view_t
typedef void* bytertc::view_t
cpp

Windows 窗口 id, Windows 平台下传 Windows 窗口句柄

Defined in : bytertc_video_defines.h

Rectangle
struct bytertc::Rectangle
cpp

矩形区域,用于指定屏幕区域。

Defined in : bytertc_video_defines.h

成员变量
类型名称
intx
inty
intwidth
intheight
变量说明

x
int bytertc::Rectangle::x = 0;
cpp

矩形区域左上角的 x 坐标。

y
int bytertc::Rectangle::y = 0;
cpp

矩形区域左上角的 y 坐标。

width
int bytertc::Rectangle::width = 0;
cpp

矩形宽度。

height
int bytertc::Rectangle::height = 0;
cpp

矩形高度。

HighlightConfig
struct bytertc::HighlightConfig
cpp

屏幕共享时的边框高亮设置。

Defined in : bytertc_video_defines.h

成员变量
类型名称
boolenable_highlight
uint32_tborder_color
intborder_width
变量说明

enable_highlight
bool bytertc::HighlightConfig::enable_highlight = true;
cpp

是否显示高亮边框,默认显示。

border_color
uint32_t bytertc::HighlightConfig::border_color = 0xFF29CCA3;
cpp

边框的颜色, 颜色格式为十六进制 ARGB: 0xAARRGGB。

border_width
int bytertc::HighlightConfig::border_width = 4;
cpp

边框的宽度,单位:像素。

ScreenFilterConfig
struct bytertc::ScreenFilterConfig
cpp

抓取屏幕时排除指定窗口,默认不排除任何窗体。

Defined in : bytertc_video_defines.h

成员变量
类型名称
view_t*excluded_window_list
intexcluded_window_num
变量说明

excluded_window_list
view_t* bytertc::ScreenFilterConfig::excluded_window_list = nullptr;
cpp

抓取屏幕时排除窗口列表。这个参数仅在抓取屏幕时生效。

excluded_window_num
int bytertc::ScreenFilterConfig::excluded_window_num = 0;
cpp

排除窗口的数量。

MouseCursorCaptureState
enum bytertc::MouseCursorCaptureState
cpp

内部采集屏幕视频流时,是否采集鼠标信息。

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kMouseCursorCaptureStateOn0采集鼠标信息。
kMouseCursorCaptureStateOff1不采集鼠标信息。
ScreenParameters
struct bytertc::ScreenParameters
cpp

屏幕共享参数

Defined in : bytertc_video_defines.h

成员变量
类型名称
intframe_rate
intkbitrate
intmin_kbitrate
变量说明

frame_rate
int bytertc::ScreenParameters::frame_rate = 15;
cpp

编码帧率,单位为 fps

kbitrate
int bytertc::ScreenParameters::kbitrate = -1;
cpp

屏幕采集编码码率, -1 为自动码率, SDK 会根据宽高信息选择合适的码率,单位 kbps

min_kbitrate
int bytertc::ScreenParameters::min_kbitrate = 0;
cpp

视频最小编码码率, 单位 kbps。编码码率不会低于 min_kbitrate。

默认值为 0。

范围:[0, kbitrate),当 kbitrate < min_kbitrate 时,为适配码率模式。

以下情况,设置本参数无效:

ContentHint
enum bytertc::ContentHint
cpp

内部采集屏幕视频流的内容类型。

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kContentHintDetails0细节内容。当共享文档、图片时,建议使用该内容类型。默认值。
kContentHintMotion1动画内容。当共享视频、游戏时,建议使用该内容类型。
ScreenCaptureParameters
struct bytertc::ScreenCaptureParameters
cpp

屏幕共享内部采集参数

Defined in : bytertc_video_defines.h

成员变量
类型名称
Rectangleregion_rect
MouseCursorCaptureStatecapture_mouse_cursor
ScreenFilterConfigfilter_config
HighlightConfighighlight_config
变量说明

region_rect
Rectangle bytertc::ScreenCaptureParameters::region_rect;
cpp

采集区域,参看 Rectangle。

capture_mouse_cursor
MouseCursorCaptureState bytertc::ScreenCaptureParameters::capture_mouse_cursor = MouseCursorCaptureState::kMouseCursorCaptureS/;"
cpp

是否采集鼠标状态,参看 MouseCursorCaptureState。

filter_config
ScreenFilterConfig bytertc::ScreenCaptureParameters::filter_config;
cpp

屏幕过滤设置,填写不需要采集的窗口 ID,参看 ScreenFilterConfig。

highlight_config
HighlightConfig bytertc::ScreenCaptureParameters::highlight_config;
cpp

采集区域的边框高亮设置,参看 HighlightConfig。

DesktopCaptureParameters
struct bytertc::DesktopCaptureParameters
cpp

屏幕共享的编码参数配置。

Defined in : bytertc_video_defines.h

成员变量
类型名称
intmax_width
intmax_height
intframe_rate
intbitrate
intmin_bitrate
boolcapture_mouse_cursor
view_t*excluded_window_list
intexcluded_window_num
HighlightConfighighlight_config
变量说明

max_width
int bytertc::DesktopCaptureParameters::max_width = 1920;
cpp

屏幕采集编码最大宽度,单位 px。

max_height
int bytertc::DesktopCaptureParameters::max_height = 1080;
cpp

屏幕采集编码最大高度,单位 px。

frame_rate
int bytertc::DesktopCaptureParameters::frame_rate = 15;
cpp

屏幕采集编码帧率, 单位 fps。

bitrate
int bytertc::DesktopCaptureParameters::bitrate = -1;
cpp

屏幕采集编码码率, -1 为自动码率, SDK 会根据宽高信息选择合适的码率,单位 kbps

min_bitrate
int bytertc::DesktopCaptureParameters::min_bitrate = 0;
cpp

最小编码码率,使用 SDK 内部采集时可选设置,自定义采集时必须设置,单位:kbps。
最小编码码率必须小于或等于最大编码,否则不对视频流进行编码发送。

capture_mouse_cursor
bool bytertc::DesktopCaptureParameters::capture_mouse_cursor = true;
cpp

是否捕获鼠标光标。

excluded_window_list
view_t* bytertc::DesktopCaptureParameters::excluded_window_list = nullptr;
cpp

抓取屏幕时排除窗口列表。这个参数仅在抓取屏幕时生效。

excluded_window_num
int bytertc::DesktopCaptureParameters::excluded_window_num = 0;
cpp

抓取屏幕时排除的窗口数量。

highlight_config
HighlightConfig bytertc::DesktopCaptureParameters::highlight_config;
cpp

高亮边框的配置。

IVideoSink
class bytertc::IVideoSink
cpp

自定义视频渲染器

Defined in : bytertc_video_defines.h

成员函数
返回名称
virtual boolonFrame
virtual intgetRenderElapse
virtual voidrelease
函数说明

onFrame
virtual bool bytertc::IVideoSink::onFrame(
    IVideoFrame* videoFrame)
cpp

视频帧回调

传入参数

参数名类型说明
videoFrameIVideoFrame*视频帧结构类,参看 IVideoFrame

返回值
返回值暂未使用

getRenderElapse
virtual int bytertc::IVideoSink::getRenderElapse()
cpp

获取外部渲染耗时。

注意
获取外部渲染耗时进行上报。开发者需要自己计算平均渲染耗时。

release
virtual void bytertc::IVideoSink::release()
cpp

释放渲染器。

注意
通知开发者渲染器即将被废弃。收到该返回通知后即可释放资源。

PixelFormat
enum bytertc::IVideoSink::PixelFormat
cpp

视频帧编码格式

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kI420VideoPixelFormat::kVideoPixelFormatI420YUV I420 格式
kOriginalVideoPixelFormat::kVideoPixelFormatUnknown原始视频帧格式
MirrorType
enum bytertc::MirrorType
cpp

镜像类型

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kMirrorTypeNone0本地预览和编码传输时均无镜像效果
kMirrorTypeRender1本地预览时有镜像效果,编码传输时无镜像效果
kMirrorTypeRenderAndEncoder3本地预览和编码传输时均有镜像效果
AdjustedMode
enum bytertc::AdjustedMode
cpp

弱光适应类型

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kAdjustedModeDisabled0关闭弱光适应
kAdjustedModeEnabled1开启弱光适应
VideoSourceType
enum bytertc::VideoSourceType
cpp

视频输入源类型

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kVideoSourceTypeExternal0自定义采集视频源
kVideoSourceTypeInternal1内部采集视频源
kVideoSourceTypeEncodedWithAutoSimulcast2自定义编码视频源。

你仅需推送分辨率最大的一路编码后视频流,SDK 将自动转码生成多路小流
kVideoSourceTypeEncodedWithoutAutoSimulcast3自定义编码视频源。

SDK 不会自动生成多路流,你需要自行生成并推送多路流
ZoomConfigType
enum bytertc::ZoomConfigType
cpp

数码变焦参数类型

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kZoomFocusOffset0设置缩放系数
kZoomMoveOffset1设置移动步长
ZoomDirectionType
enum bytertc::ZoomDirectionType
cpp

数码变焦操作类型

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kCameraMoveLeft0相机向左移动
kCameraMoveRight1相机向右移动
kCameraMoveUp2相机向上移动
kCameraMoveDown3相机向下移动
kCameraZoomOut4相机缩小焦距
kCameraZoomIn5相机放大焦距
kCameraReset6恢复到原始画面
VideoFrameInfo
struct bytertc::VideoFrameInfo
cpp

视频帧信息

Defined in : bytertc_video_defines.h

成员变量
类型名称
intwidth
intheight
VideoRotationrotation
变量说明

width
int bytertc::VideoFrameInfo::width = 0;
cpp

宽(像素)

height
int bytertc::VideoFrameInfo::height = 0;
cpp

高(像素)

rotation
VideoRotation bytertc::VideoFrameInfo::rotation = VideoRotation::kVideoRotation0;
cpp

视频帧顺时针旋转角度。参看 VideoRotation。

VideoPreprocessorConfig
struct bytertc::VideoPreprocessorConfig
cpp

视频前处理配置参数。

Defined in : bytertc_video_defines.h

成员变量
类型名称
VideoPixelFormatrequired_pixel_format
变量说明

required_pixel_format
VideoPixelFormat bytertc::VideoPreprocessorConfig::required_pixel_format = kVideoPixelFormatUnknown;
cpp

视频帧像素格式,参看 VideoPixelFormat
当前仅支持 kVideoPixelFormatI420 和 kVideoPixelFormatUnknown 格式。

VideoRateInfo
struct bytertc::VideoRateInfo
cpp

自定义编码流信息

Defined in : bytertc_video_defines.h

成员变量
类型名称
intfps
intbitrate_kbps
intmin_bitrate_kbps
变量说明

fps
int bytertc::VideoRateInfo::fps = 0;
cpp

帧率,单位 fps

bitrate_kbps
int bytertc::VideoRateInfo::bitrate_kbps = 0;
cpp

码率,单位 kbps

min_bitrate_kbps
int bytertc::VideoRateInfo::min_bitrate_kbps = 0;
cpp

视频最小编码码率, 单位 kbps。编码码率不会低于 min_bitrate_kbps。

默认值为 0。

范围:[0, bitrate_kbps),当 bitrate_kbps < min_bitrate_kbps 时,为适配码率模式。

以下情况,设置本参数无效:

VideoDecoderConfig
enum bytertc::VideoDecoderConfig
cpp

视频解码方式

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kVideoDecoderConfigRaw0开启 SDK 内部解码,只回调解码后的数据。回调为onFrame。
kVideoDecoderConfigEncode1开启自定义解码,只回调解码前数据。回调为onRemoteEncodedVideoFrame。
kVideoDecoderConfigBoth2开启 SDK 内部解码,同时回调解码前和解码后的数据。回调为onFrame 和 onRemoteEncodedVideoFrame。
VideoCaptureConfig
struct bytertc::VideoCaptureConfig
cpp

视频采集配置参数。

Defined in : bytertc_video_defines.h

成员变量
类型名称
CapturePreferencecapturePreference
intwidth
intheight
intframeRate
变量说明

capturePreference
CapturePreference bytertc::VideoCaptureConfig::capturePreference = CapturePreference::KAuto;
cpp

视频采集模式,参看 CapturePreference

width
int bytertc::VideoCaptureConfig::width = 0;
cpp

视频采集分辨率的宽度,单位:px。

height
int bytertc::VideoCaptureConfig::height = 0;
cpp

视频采集分辨率的高度,单位:px。

frameRate
int bytertc::VideoCaptureConfig::frameRate = 0;
cpp

视频采集帧率,单位:fps。

CapturePreference
enum bytertc::VideoCaptureConfig::CapturePreference
cpp

视频采集模式

Defined in : bytertc_video_defines.h

枚举值
类型值说明
KAuto0(默认)自动设置采集参数。
SDK在开启采集时根据服务端下发的采集配置结合编码参数设置最佳采集参数。
KManual1手动设置采集参数,包括采集分辨率、帧率。
KAutoPerformance2采集参数与编码参数一致,即在 setVideoEncoderConfig 中设置的参数。
RecordingType
enum bytertc::RecordingType
cpp

本地录制的媒体类型

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kRecordAudioOnly0只录制音频
kRecordVideoOnly1只录制视频
kRecordVideoAndAudio2同时录制音频和视频
RTCVideoDeviceType
enum bytertc::RTCVideoDeviceType
cpp

当前视频设备类型

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kRTCVideoDeviceTypeUnknown-1未知设备类型
kRTCVideoDeviceTypeRenderDevice0视频渲染设备类型
kRTCVideoDeviceTypeCaptureDevice1视频采集设备类型
kRTCVideoDeviceTypeScreenCaptureDevice2屏幕流视频设备
PublicStreamErrorCode
enum bytertc::PublicStreamErrorCode
cpp

公共流状态码

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kPublicStreamErrorCodeOK0发布或订阅成功。
kPublicStreamErrorCodePushInvalidParam1191公共流的参数异常,请修改参数后重试。
kPublicStreamErrorCodePushInvalidStatus1192服务端状态异常,将自动重试。
kPublicStreamErrorCodePushInternalError1193内部错误,不可恢复,请重试。
kPublicStreamErrorCodePushFailed1195发布失败,将自动重试,请关注重试结果。
kPublicStreamErrorCodePushTimeout1196发布失败,10 s 后会重试,重试 3 次后自动停止。
kPublicStreamErrorCodePullNoPushStream1300订阅失败,发布端未开始发布流。
VideoRotationMode
enum bytertc::VideoRotationMode
cpp

视频旋转模式

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kVideoRotationModeFollowApp0跟随App界面方向
kVideoRotationModeFollowGSensor1跟随设备重力方向
MediaStreamType
enum bytertc::MediaStreamType
cpp

媒体流类型

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kMediaStreamTypeAudio1 << 0只控制音频
kMediaStreamTypeVideo1 << 1只控制视频
kMediaStreamTypeBothkMediaStreamTypeAudio | kMediaStreamTypeVideo同时控制音频和视频
FrameRateRatio
enum bytertc::FrameRateRatio
cpp

占发布端原始帧率的比例

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kFrameRateRatioOriginal0100%
kFrameRateRatioHalf150%
kFrameRateRatioQuarter225%
RemoteVideoConfig
struct bytertc::RemoteVideoConfig
cpp

远端视频帧信息

Defined in : bytertc_video_defines.h

成员变量
类型名称
intframerate
intresolution_width
intresolution_height
变量说明

framerate
int bytertc::RemoteVideoConfig::framerate = 0;
cpp

期望订阅的最高帧率,单位:fps,默认值为 0 即满帧订阅,设为大于 0 的值时开始生效。

当发布端帧率低于设定帧率,或订阅端开启性能回退后下行弱网,则帧率会相应下降。

仅码流支持 SVC 分级编码特性时方可生效。

resolution_width
int bytertc::RemoteVideoConfig::resolution_width = 0;
cpp

视频宽度,单位:px

resolution_height
int bytertc::RemoteVideoConfig::resolution_height = 0;
cpp

视频高度,单位:px

RTCRoomConfig
struct bytertc::RTCRoomConfig
cpp

房间参数配置。房间是 RTC 通话的抽象概念。在同一个房间中的用户可以进行音视频通话。

Defined in : bytertc_video_defines.h

成员变量
类型名称
RoomProfileTyperoom_profile_type
boolis_auto_publish
boolis_auto_subscribe_audio
boolis_auto_subscribe_video
RemoteVideoConfigremote_video_config
变量说明

room_profile_type
RoomProfileType bytertc::RTCRoomConfig::room_profile_type = kRoomProfileTypeCommunication;
cpp

房间模式,参看 RoomProfileType,默认为 kRoomProfileTypeCommunication,进房后不可更改。

is_auto_publish
bool bytertc::RTCRoomConfig::is_auto_publish = true;
cpp

是否自动发布音视频流,默认为自动发布。

创建和加入多房间时,只能将其中一个房间设置为自动发布。若每个房间均不做设置,则默认在第一个加入的房间内自动发布流。

若调用 setUserVisibility 将自身可见性设为 false,无论是默认的自动发布流还是手动设置的自动发布流都不会进行发布,你需要将自身可见性设为 true 后方可发布。

is_auto_subscribe_audio
bool bytertc::RTCRoomConfig::is_auto_subscribe_audio = true;
cpp

是否自动订阅音频流,默认为自动订阅。

包含主流和屏幕流。

is_auto_subscribe_video
bool bytertc::RTCRoomConfig::is_auto_subscribe_video = true;
cpp

是否自动订阅视频流,默认为自动订阅。

包含主流和屏幕流。

remote_video_config
RemoteVideoConfig bytertc::RTCRoomConfig::remote_video_config;
cpp

远端视频流参数,参看 RemoteVideoConfig

ScreenMediaType
enum bytertc::ScreenMediaType
cpp

屏幕采集的媒体类型

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kScreenMediaTypeVideoOnly0仅采集视频
kScreenMediaTypeAudioOnly1仅采集音频
kScreenMediaTypeVideoAndAudio2同时采集音频和视频
EffectBeautyMode
enum bytertc::EffectBeautyMode
cpp

基础美颜模式

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kEffectBeautyWhite0美白
kEffectBeautySmooth1磨皮
kEffectBeautySharpen2锐化
VideoDeviceInfo
struct bytertc::VideoDeviceInfo
cpp

视频设备信息

Defined in : bytertc_video_defines.h

成员变量
类型名称
chardevice_id
chardevice_name
int64_tdevice_vid
int64_tdevice_pid
DeviceTransportTypetransport_type
变量说明

device_id
char bytertc::VideoDeviceInfo::device_id[MAX_DEVICE_ID_LENGTH];
cpp

设备 ID

device_name
char bytertc::VideoDeviceInfo::device_name[MAX_DEVICE_ID_LENGTH];
cpp

设备名称

device_vid
int64_t bytertc::VideoDeviceInfo::device_vid;
cpp

设备的厂商 ID

device_pid
int64_t bytertc::VideoDeviceInfo::device_pid;
cpp

设备的产品编码

transport_type
DeviceTransportType bytertc::VideoDeviceInfo::transport_type;
cpp

设备的传输方式

VideoOrientation
enum bytertc::VideoOrientation
cpp

视频帧朝向

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kVideoOrientationAdaptive0(默认)使用相机输出的原始视频帧的角度,不对视频帧进行额外旋转。
kVideoOrientationPortrait1固定为竖屏,将相机采集到的视频帧转换为竖屏,在整个 RTC 链路中传递竖屏帧。
kVideoOrientationLandscape2固定为横屏,将相机采集到的视频帧转换为横屏,在整个 RTC 链路中传递横屏帧。
ScreenCaptureSourceType
enum bytertc::ScreenCaptureSourceType
cpp

屏幕采集对象的类型

Defined in : bytertc_video_defines.h

枚举值
类型值说明
kScreenCaptureSourceTypeUnknown0类型未知
kScreenCaptureSourceTypeWindow1应用程序的窗口
kScreenCaptureSourceTypeScreen2桌面
ScreenCaptureSourceInfo
struct bytertc::ScreenCaptureSourceInfo
cpp

屏幕共享对象的详细信息

Defined in : bytertc_video_defines.h

成员变量
类型名称
ScreenCaptureSourceTypetype
view_tsource_id
const char*source_name
const char*application
intpid
boolprimaryMonitor
Rectangleregion_rect
变量说明

type
ScreenCaptureSourceType bytertc::ScreenCaptureSourceInfo::type = kScreenCaptureSourceTypeUnknown;
cpp

屏幕共享对象的类型,参看 ScreenCaptureSourceType

source_id
view_t bytertc::ScreenCaptureSourceInfo::source_id = nullptr;
cpp

屏幕共享对象的 ID

source_name
const char* bytertc::ScreenCaptureSourceInfo::source_name = nullptr;
cpp

屏幕共享对象的名称

调用 release 时将被释放,请及时转为 string 对象保存

application
const char* bytertc::ScreenCaptureSourceInfo::application = nullptr;
cpp

共享的应用窗体所属应用的名称

当共享对象为应用窗体时有效

调用 release 时将被释放,请及时转为 string 对象保存

pid
int bytertc::ScreenCaptureSourceInfo::pid = 0;
cpp

共享的应用窗体所属应用进程的 pid

当共享对象为应用窗体时有效

primaryMonitor
bool bytertc::ScreenCaptureSourceInfo::primaryMonitor = false;
cpp

共享的屏幕是否为主屏。

当共享对象为屏幕时有效

region_rect
Rectangle bytertc::ScreenCaptureSourceInfo::region_rect;
cpp

屏幕共享对象的坐标。详见 Rectangle。

仅在采集源为显示器屏幕时有效。

VideoMetadataBuffer
struct bytertc::VideoMetadataBuffer
cpp

视频帧中包含的 metadata 信息

Defined in : bytertc_video_defines.h

成员变量
类型名称
char*data
intsize
int64_ttimestamp_us
变量说明

data
char* bytertc::VideoMetadataBuffer::data;
cpp

接收或者发送的 metadata

size
int bytertc::VideoMetadataBuffer::size;
cpp

接收或者发送的 metadata 数据大小,不能超过 1024

timestamp_us
int64_t bytertc::VideoMetadataBuffer::timestamp_us;
cpp

包含 metadata 视频帧的时间戳,单位微秒

VirtualBackgroundSourceType
enum bytertc::VirtualBackgroundSourceType
cpp

虚拟背景类型。

Defined in : bytertc_video_effect_interface.h

枚举值
类型值说明
kVirtualBackgroundSourceColor0使用纯色背景替换视频原有背景。
kVirtualBackgroundSourceImage1使用自定义图片替换视频原有背景。
VirtualBackgroundSource
struct bytertc::VirtualBackgroundSource
cpp

虚拟背景对象。

Defined in : bytertc_video_effect_interface.h

成员变量
类型名称
VirtualBackgroundSourceTypesource_type
uint32_tsource_color
const char*source_path
变量说明

source_type
VirtualBackgroundSourceType bytertc::VirtualBackgroundSource::source_type = kVirtualBackgroundSourceColor;
cpp

虚拟背景类型,详见 VirtualBackgroundSourceType 。

source_color
uint32_t bytertc::VirtualBackgroundSource::source_color = 0xFFFFFFFF;
cpp

纯色背景使用的颜色。

格式为 0xAARRGGBB 。

source_path
const char* bytertc::VirtualBackgroundSource::source_path = nullptr;
cpp

自定义背景图片的绝对路径。

FaceDetectResult
struct bytertc::FaceDetectResult
cpp

人脸检测结果

Defined in : bytertc_video_effect_interface.h

成员变量
类型名称
static const intmax_face_num
intdetect_result
intface_count
Rectanglerect
intimage_width
intimage_height
int64_tframe_timestamp_us
变量说明

max_face_num
static const int bytertc::FaceDetectResult::max_face_num = 10;
cpp

人脸信息存储上限,最多可存储 10 个人脸信息

detect_result
int bytertc::FaceDetectResult::detect_result = 0;
cpp

人脸检测结果

face_count
int bytertc::FaceDetectResult::face_count = 0;
cpp

检测到的人脸的数量

rect
Rectangle bytertc::FaceDetectResult::rect[max_face_num];
cpp

识别到人脸的矩形框。数组的长度和检测到的人脸数量一致。参看 Rectangle。

image_width
int bytertc::FaceDetectResult::image_width = 0;
cpp

原始图片宽度(px)

image_height
int bytertc::FaceDetectResult::image_height = 0;
cpp

原始图片高度(px)

frame_timestamp_us
int64_t bytertc::FaceDetectResult::frame_timestamp_us = 0;
cpp

进行人脸识别的视频帧的时间戳。

VideoPictureType
enum bytertc::VideoPictureType
cpp

编码帧类型

Defined in : bytertc_video_frame.h

枚举值
类型值说明
kVideoPictureTypeUnknown0未知类型
kVideoPictureTypeI1I帧,关键帧,编解码不需要参考其他视频帧
kVideoPictureTypeP2P帧,向前参考帧,编解码需要参考前一帧视频帧
kVideoPictureTypeB3B帧,前后参考帧,编解码需要参考前后两帧视频帧
VideoRotation
enum bytertc::VideoRotation
cpp

视频帧旋转信息

Defined in : bytertc_video_frame.h

枚举值
类型值说明
kVideoRotation00不旋转
kVideoRotation9090顺时针旋转 90 度
kVideoRotation180180顺时针旋转 180 度
kVideoRotation270270顺时针旋转 270 度
VideoStreamScaleMode
enum bytertc::VideoStreamScaleMode
cpp

视频帧缩放模式,默认值为 FitWithCropping。

Defined in : bytertc_video_frame.h

枚举值
类型值说明
kVideoStreamScaleModeAuto0自动模式
kVideoStreamScaleModeStretch1对视频帧进行缩放,直至充满和视窗分辨率一致为止。这一过程不保证等比缩放。
kVideoStreamScaleModeFitWithCropping2视窗填满优先。

视频帧等比缩放,直至视窗被视频填满。如果视频帧长宽比例与视窗不同,视频帧的多出部分将无法显示。

缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长大于等于视窗对应边长。
kVideoStreamScaleModeFitWithFilling3视频帧内容全部显示优先。

视频帧等比缩放,直至视频帧能够在视窗上全部显示。如果视频帧长宽比例与视窗不同,视窗上未被视频帧填满区域将被涂黑。

缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长小于等于视窗对应边长。
VideoCodecMode
enum bytertc::VideoCodecMode
cpp

视频编码模式

Defined in : bytertc_video_frame.h

枚举值
类型值说明
kCodecModeAuto0自动选择
kCodecModeHardware1硬编码
kCodecModeSoftware2软编码
VideoEncodePreference
enum bytertc::VideoEncodePreference
cpp

编码策略偏好。

Defined in : bytertc_video_frame.h

枚举值
类型值说明
kVideoEncodePreferenceDisabled0无偏好。不降低帧率和分辨率。
kVideoEncodePreferenceFramerate1(默认值)帧率优先。
kVideoEncodePreferenceQuality2分辨率优先。
kVideoEncodePreferenceBalance3平衡帧率与分辨率。
CameraID
enum bytertc::CameraID
cpp

摄像头。

Defined in : bytertc_video_frame.h

枚举值
类型值说明
kCameraIDFront0移动端前置摄像头,PC端内置摄像头
kCameraIDBack1移动端后置摄像头,PC端无定义
kCameraIDInvalid3无效值
VideoSolution
struct bytertc::VideoSolution
cpp

视频流参数

Defined in : bytertc_video_frame.h

成员变量
类型名称
intwidth
intheight
intfps
intmax_send_kbps
intmin_send_kbps
VideoEncodePreferenceencode_preference
变量说明

width
int bytertc::VideoSolution::width;
cpp

视频宽度,单位:像素

height
int bytertc::VideoSolution::height;
cpp

视频高度,单位:像素

fps
int bytertc::VideoSolution::fps;
cpp

视频帧率

max_send_kbps
int bytertc::VideoSolution::max_send_kbps = SEND_KBPS_AUTO_CALCULATE;
cpp

最大发送编码码率(kbps),建议使用默认的自动码率。

  • -1: 自动码率
  • 0: 不开启上限
  • >0: 填写预估码率
  • min_send_kbps
    int bytertc::VideoSolution::min_send_kbps = 0;
    
    cpp

    encode_preference
    VideoEncodePreference bytertc::VideoSolution::encode_preference = VideoEncodePreference::kVideoEncodePreferenceFrame/;"
    
    cpp

    视频编码质量策略,参看 VideoEncodePreference

    VideoEncoderConfig
    struct bytertc::VideoEncoderConfig
    
    cpp

    视频编码配置。参考 设置视频发布参数

    Defined in : bytertc_video_frame.h

    成员变量
    类型名称
    intwidth
    intheight
    intframeRate
    intmaxBitrate
    intminBitrate
    VideoEncodePreferenceencoderPreference
    变量说明

    width
    int bytertc::VideoEncoderConfig::width;
    
    cpp

    视频宽度,单位:像素

    height
    int bytertc::VideoEncoderConfig::height;
    
    cpp

    视频高度,单位:像素

    frameRate
    int bytertc::VideoEncoderConfig::frameRate;
    
    cpp

    视频帧率,单位:fps

    maxBitrate
    int bytertc::VideoEncoderConfig::maxBitrate = SEND_KBPS_AUTO_CALCULATE;
    
    cpp

    最大编码码率,使用 SDK 内部采集时可选设置,自定义采集时必须设置,单位:kbps。

    内部采集模式下默认值为 -1,即适配码率模式,系统将根据输入的分辨率和帧率自动计算适用的码率。

    设为 0 则不对视频流进行编码发送。

    minBitrate
    int bytertc::VideoEncoderConfig::minBitrate = 0;
    
    cpp

    视频最小编码码率, 单位 kbps。编码码率不会低于 minBitrate。

    默认值为 0。

    范围:[0, maxBitrate),当 maxBitrate < minBitrate 时,为适配码率模式。

    以下情况,设置本参数无效:

    • 当 maxBitrate 为 0 时,不对视频流进行编码发送。
    • 当 maxBitrate < 0 时,适配码率模式。

    encoderPreference
    VideoEncodePreference bytertc::VideoEncoderConfig::encoderPreference = VideoEncodePreference::kVideoEncodePreferenceFrame/;"
    
    cpp

    编码策略偏好,默认为帧率优先。参看 VideoEncodePreference。

    VideoSolutionDescription
    struct bytertc::VideoSolutionDescription
    
    cpp

    视频属性

    Defined in : bytertc_video_frame.h

    成员变量
    类型名称
    intwidth
    intheight
    intfps
    intmax_send_kbps
    intmin_send_kbps
    VideoStreamScaleModescale_mode
    VideoCodecTypecodec_name
    VideoCodecModecodec_mode
    VideoEncodePreferenceencode_preference
    变量说明

    width
    int bytertc::VideoSolutionDescription::width;
    
    cpp

    宽(像素)

    默认值为 1920

    为 0 时,保持源的宽。

    height
    int bytertc::VideoSolutionDescription::height;
    
    cpp

    高(像素)

    默认值为 1080

    为 0 时,保持源的高。

    fps
    int bytertc::VideoSolutionDescription::fps;
    
    cpp

    视频帧率(fps),默认为 15 fps

    max_send_kbps
    int bytertc::VideoSolutionDescription::max_send_kbps;
    
    cpp

    最大发送速率(千比特每秒)。

    默认为 -1,适配码率模式,系统将根据输入的分辨率和帧率自动计算适用的码率

    min_send_kbps
    int bytertc::VideoSolutionDescription::min_send_kbps;
    
    cpp

    scale_mode
    VideoStreamScaleMode bytertc::VideoSolutionDescription::scale_mode = VideoStreamScaleMode::kVideoStreamScaleModeAuto;
    
    cpp

    缩放模式。参看 VideoStreamScaleMode

    codec_name
    VideoCodecType bytertc::VideoSolutionDescription::codec_name = VideoCodecType::kVideoCodecTypeUnknown;
    
    cpp

    视频的编码类型。参看 VideoCodecType

    codec_mode
    VideoCodecMode bytertc::VideoSolutionDescription::codec_mode = VideoCodecMode::kCodecModeAuto;
    
    cpp

    视频的编码模式。参看 VideoCodecMode

    encode_preference
    VideoEncodePreference bytertc::VideoSolutionDescription::encode_preference = VideoEncodePreference::kVideoEncodePreferenceFrame/;"
    
    cpp

    视频编码质量偏好策略。参看 VideoEncodePreference

    VideoProfile
    typedef VideoSolutionDescription bytertc::VideoProfile
    
    cpp

    Defined in : bytertc_video_frame.h

    VideoPixelFormat
    enum bytertc::VideoPixelFormat
    
    cpp

    视频帧颜色编码格式

    Defined in : bytertc_video_frame.h

    枚举值
    类型值说明
    kVideoPixelFormatUnknown0未知的颜色编码格式
    kVideoPixelFormatI4201YUV I420 格式
    kVideoPixelFormatNV122YUV NV12 格式
    kVideoPixelFormatNV213YUV NV21 格式
    kVideoPixelFormatRGB244RGB 24bit格式,
    kVideoPixelFormatRGBA5RGBA 编码格式
    kVideoPixelFormatARGB6ARGB 编码格式
    kVideoPixelFormatBGRA7BGRA 编码格式
    kVideoPixelFormatTexture2D0x0DE1Texture2D格式
    kVideoPixelFormatTextureOES0x8D65TextureOES格式
    VideoContentType
    enum bytertc::VideoContentType
    
    cpp

    视频内容类型

    Defined in : bytertc_video_frame.h

    枚举值
    类型值说明
    kVideoContentTypeNormalFrame0普通视频
    kVideoContentTypeBlackFrame1黑帧视频
    ColorSpace
    enum bytertc::ColorSpace
    
    cpp

    视频YUV格式颜色空间

    Defined in : bytertc_video_frame.h

    枚举值
    类型值说明
    kColorSpaceUnknown0
    kColorSpaceYCbCrBT601LimitedRange1BT.601数字编码标准,颜色空间[16-235]
    kColorSpaceYCbCrBT601FullRange2BT.601数字编码标准,颜色空间[0-255]
    kColorSpaceYCbCrBT709LimitedRange3BT.7091数字编码标准,颜色空间[16-235]
    kColorSpaceYCbCrBT709FullRange4BT.7091数字编码标准,颜色空间[0-255]
    VideoFrameType
    enum bytertc::VideoFrameType
    
    cpp

    视频帧格式

    Defined in : bytertc_video_frame.h

    枚举值
    类型值说明
    kVideoFrameTypeRawMemory0原始数据格式,按照内存存储
    kVideoFrameTypeCVPixelBuffer1CVPixelBufferRef类型,支持 iOS and macOS 平台
    kVideoFrameTypeGLTexture2open gl 纹理数据类型
    kVideoFrameTypeCuda3cuda 数据类型
    kVideoFrameTypeD3D114direct3d 11 数据格式
    kVideoFrameTypeD3D95direct3d 9 数据格式
    kVideoFrameTypeJavaFrame6Java的VideoFrame 数据格式
    kVideoFrameTypeVAAPI7vaapi 数据格式
    ManagedMemory
    struct bytertc::ManagedMemory
    
    cpp

    自定义内存释放器

    Defined in : bytertc_video_frame.h

    成员变量
    类型名称
    uint8_t*data
    intsize
    void*user_opaque
    int ()(uint8_t data, int size, void user_opaque)*memory_deleter
    VideoFrameType[deprecated] type
    变量说明

    type
    VideoFrameType bytertc::ManagedMemory::type = kVideoFrameTypeRawMemory;
    
    cpp

    内存数据数据类型,默认为 cpu 内存,详见 VideoFrameType:VideoFrameType

    Deprecated since 3.21 and will be deleted in 3.51.注意:
    该字段不可用,目前只有 cpu 内存
    该字段不可用,目前只有 cpu 内存

    data
    uint8_t* bytertc::ManagedMemory::data = nullptr;
    
    cpp

    内存数据地址

    size
    int bytertc::ManagedMemory::size = 0;
    
    cpp

    内存空间的大小

    user_opaque
    void* bytertc::ManagedMemory::user_opaque = nullptr;
    
    cpp

    用户自定义数据

    memory_deleter
    int (*bytertc::ManagedMemory::memory_deleter)(uint8_t* data, int size, void* user_opaque) = nullptr;
    
    cpp

    自定义内存释放方法指针,如果指针不为空,方法会被调用,用来释放内存空间。
    函数传入的参数分别是本结构体内 data、size、user_opaque 3个字段。

    VideoFrameBuilder
    typedef struct bytertc::VideoFrameBuilder
    
    cpp

    视频帧构建类

    Defined in : bytertc_video_frame.h

    成员变量
    类型名称
    VideoFrameTypeframe_type
    VideoPixelFormatpixel_fmt
    ColorSpacecolor_space
    uint8_t*data
    intlinesize
    uint8_t*extra_data
    intextra_data_size
    uint8_t*supplementary_info
    intsupplementary_info_size
    intsize
    intwidth
    intheight
    VideoRotationrotation
    void*hwaccel_buffer
    void*user_opaque
    int64_ttimestamp_us
    void*hwaccel_context
    jobjectandroid_hwaccel_context
    floattex_matrix
    uint32_ttexture_id
    int ()(struct VideoFrameBuilder builder)memory_deleter
    变量说明

    frame_type
    VideoFrameType bytertc::VideoFrameBuilder::frame_type = kVideoFrameTypeRawMemory;
    
    cpp

    内存数据数据类型,默认为 cpu 内存,详见 VideoFrameType

    pixel_fmt
    VideoPixelFormat bytertc::VideoFrameBuilder::pixel_fmt = kVideoPixelFormatUnknown;
    
    cpp

    视频帧像素格式,详见 VideoPixelFormat

    color_space
    ColorSpace bytertc::VideoFrameBuilder::color_space = kColorSpaceUnknown;
    
    cpp

    视频帧颜色空间,参看 ColorSpace

    data
    uint8_t* bytertc::VideoFrameBuilder::data[ByteRTCNumDataPointers] = { 0 };
    
    cpp

    视频帧数据平面指针数组

    linesize
    int bytertc::VideoFrameBuilder::linesize[ByteRTCNumDataPointers] = { 0 };
    
    cpp

    视频帧数据平面行长度

    extra_data
    uint8_t* bytertc::VideoFrameBuilder::extra_data = nullptr;
    
    cpp

    SEI 数据地址

    extra_data_size
    int bytertc::VideoFrameBuilder::extra_data_size = 0;
    
    cpp

    SEI 数据大小

    supplementary_info
    uint8_t* bytertc::VideoFrameBuilder::supplementary_info = nullptr;
    
    cpp

    补充数据地址

    supplementary_info_size
    int bytertc::VideoFrameBuilder::supplementary_info_size = 0;
    
    cpp

    补充数据大小

    size
    int bytertc::VideoFrameBuilder::size = 0;
    
    cpp

    视频帧内存空间大小

    width
    int bytertc::VideoFrameBuilder::width = 0;
    
    cpp

    视频帧宽度

    height
    int bytertc::VideoFrameBuilder::height = 0;
    
    cpp

    视频帧高度

    rotation
    VideoRotation bytertc::VideoFrameBuilder::rotation = kVideoRotation0;
    
    cpp

    视频旋转角度,参看 VideoRotation。

    当视频接收端使用 RTC SDK 内部渲染时,引擎会根据设定的 rotation 处理旋转角度后再行渲染;

    当视频接收端使用自定义渲染时,此处设置的 rotation 无效,可以通过 IVideoFrame::rotation() 接口获取 rotation 信息。

    hwaccel_buffer
    void* bytertc::VideoFrameBuilder::hwaccel_buffer = nullptr;
    
    cpp

    硬件加速缓冲区指针

    user_opaque
    void* bytertc::VideoFrameBuilder::user_opaque = nullptr;
    
    cpp

    用户私有数据指针

    timestamp_us
    int64_t bytertc::VideoFrameBuilder::timestamp_us = 0;
    
    cpp

    视频帧时间戳

    hwaccel_context
    void* bytertc::VideoFrameBuilder::hwaccel_context = nullptr;
    
    cpp

    硬件加速Context对象(AKA Opengl Context, Vulkan Context)

    android_hwaccel_context
    jobject bytertc::VideoFrameBuilder::android_hwaccel_context = nullptr;
    
    cpp

    硬件加速Context的Java对象(Only for Android, AKA Opengl Context)

    tex_matrix
    float bytertc::VideoFrameBuilder::tex_matrix[16] = { };
    
    cpp

    纹理矩阵(仅针对纹理类型的frame生效)

    texture_id
    uint32_t bytertc::VideoFrameBuilder::texture_id = 0;
    
    cpp

    纹理ID(仅针对纹理类型的frame生效)

    memory_deleter
    int (*bytertc::VideoFrameBuilder::memory_deleter)(struct VideoFrameBuilder* builder) = nullptr;
    
    cpp

    用户定义的视频帧释放回调函数指针,如果指针不为空,方法会被调用用来释放内存空间

    IVideoFrame
    class bytertc::IVideoFrame
    
    cpp

    设置视频帧

    Defined in : bytertc_video_frame.h

    成员函数
    返回名称
    virtual VideoFrameTypeframeType
    virtual VideoPixelFormatpixelFormat
    virtual VideoContentTypevideoContentType
    virtual int64_ttimestampUs
    virtual intwidth
    virtual intheight
    virtual VideoRotationrotation
    virtual ColorSpacecolorSpace
    virtual intnumberOfPlanes
    virtual uint8_t*getPlaneData
    virtual intgetPlaneStride
    virtual uint8_t*getExtraDataInfo
    virtual uint8_t*getSupplementaryInfo
    virtual void*getHwaccelBuffer
    virtual void*getHwaccelContext
    virtual jobjectgetAndroidHwaccelContext
    virtual voidgetTexMatrix
    virtual uint32_tgetTextureId
    virtual IVideoFrame*shallowCopy
    virtual voidrelease
    virtual voidtoI420
    virtual CameraIDgetCameraId
    函数说明

    frameType
    virtual VideoFrameType bytertc::IVideoFrame::frameType() const
    
    cpp

    获取视频帧类型,参看 VideoFrameType

    pixelFormat
    virtual VideoPixelFormat bytertc::IVideoFrame::pixelFormat() const
    
    cpp

    获取视频帧格式,参看 VideoPixelFormat

    videoContentType
    virtual VideoContentType bytertc::IVideoFrame::videoContentType() const
    
    cpp

    获取视频内容类型,参看 VideoContentType。

    timestampUs
    virtual int64_t bytertc::IVideoFrame::timestampUs() const
    
    cpp

    获取视频帧时间戳,单位:微秒

    width
    virtual int bytertc::IVideoFrame::width() const
    
    cpp

    获取视频帧宽度,单位:px

    height
    virtual int bytertc::IVideoFrame::height() const
    
    cpp

    获取视频帧高度,单位:px

    rotation
    virtual VideoRotation bytertc::IVideoFrame::rotation() const
    
    cpp

    获取视频帧旋转角度,参看 VideoRotation

    colorSpace
    virtual ColorSpace bytertc::IVideoFrame::colorSpace() const
    
    cpp

    获取视频帧颜色空间,参看 ColorSpace

    numberOfPlanes
    virtual int bytertc::IVideoFrame::numberOfPlanes() const
    
    cpp

    视频帧颜色 plane 数量

    注意
    yuv 数据存储格式分为打包(packed)存储格式和平面(planar)存储格式,planar 格式中 Y、U、V 分平面存储,packed 格式中 Y、U、V 交叉存储

    getPlaneData
    virtual uint8_t* bytertc::IVideoFrame::getPlaneData(
        int plane_index)
    
    cpp

    获取 plane 数据指针

    传入参数

    参数名类型说明
    plane_indexintplane 数据索引

    getPlaneStride
    virtual int bytertc::IVideoFrame::getPlaneStride(
        int plane_index)
    
    cpp

    获取 plane 中数据行的长度

    传入参数

    参数名类型说明
    plane_indexintplane 数据索引

    getExtraDataInfo
    virtual uint8_t* bytertc::IVideoFrame::getExtraDataInfo(
        int& size)
    
    cpp

    获取扩展数据指针

    传入参数

    参数名类型说明
    sizeint&扩展数据字节数

    getSupplementaryInfo
    virtual uint8_t* bytertc::IVideoFrame::getSupplementaryInfo(
        int& size)
    
    cpp

    获取补充数据指针

    传入参数

    参数名类型说明
    sizeint&补充数据字节数

    getHwaccelBuffer
    virtual void* bytertc::IVideoFrame::getHwaccelBuffer()
    
    cpp

    获取本地缓冲区指针

    getHwaccelContext
    virtual void* bytertc::IVideoFrame::getHwaccelContext()
    
    cpp

    获取硬件加速Context对象(AKA Opengl Context, Vulkan Context)

    getAndroidHwaccelContext
    virtual jobject bytertc::IVideoFrame::getAndroidHwaccelContext()
    
    cpp

    获取硬件加速Context的Java对象(Only for Android, AKA Opengl Context)

    返回值
    返回JavaLocalRef, 当不再使用时,需要手动执行DeleteLocalRef(env, jobject)方法释放该对象

    getTexMatrix
    virtual void bytertc::IVideoFrame::getTexMatrix(
        float matrix[16])
    
    cpp

    获取纹理矩阵(仅针对纹理类型的frame生效)

    getTextureId
    virtual uint32_t bytertc::IVideoFrame::getTextureId()
    
    cpp

    获取纹理ID(仅针对纹理类型的frame生效)

    shallowCopy
    virtual IVideoFrame* bytertc::IVideoFrame::shallowCopy()
    
    cpp

    浅拷贝视频帧并返回指针

    release
    virtual void bytertc::IVideoFrame::release()
    
    cpp

    释放视频帧

    注意
    调用 pushExternalVideoFrame 推送视频帧后,你不需要再调用此方法释放资源。

    toI420
    virtual void bytertc::IVideoFrame::toI420()
    
    cpp

    转换为i420格式的视频帧

    getCameraId
    virtual CameraID bytertc::IVideoFrame::getCameraId() const
    
    cpp

    获取视频帧的摄像头信息,参看 CameraID

    EncodedVideoFrameBuilder
    typedef struct bytertc::EncodedVideoFrameBuilder
    
    cpp

    视频帧参数

    Defined in : bytertc_video_frame.h

    成员变量
    类型名称
    VideoCodecTypecodec_type
    VideoPictureTypepicture_type
    VideoRotationrotation
    uint8_t*data
    intsize
    intwidth
    intheight
    int64_ttimestamp_us
    int64_ttimestamp_dts_us
    int ()(uint8_t data, int size, void user_opaque)*memory_deleter
    变量说明

    codec_type
    VideoCodecType bytertc::EncodedVideoFrameBuilder::codec_type = kVideoCodecTypeUnknown;
    
    cpp

    视频帧编码格式,参看 VideoCodecType

    picture_type
    VideoPictureType bytertc::EncodedVideoFrameBuilder::picture_type = kVideoPictureTypeUnknown;
    
    cpp

    视频帧编码类型,参看 VideoPictureType

    rotation
    VideoRotation bytertc::EncodedVideoFrameBuilder::rotation = kVideoRotation0;
    
    cpp

    视频帧旋转角度,参看 VideoRotation

    data
    uint8_t* bytertc::EncodedVideoFrameBuilder::data = nullptr;
    
    cpp

    视频帧数据指针

    注意:
    IEncodedVideoFrame 会获取数据的所有权
    IEncodedVideoFrame 会获取数据的所有权

    size
    int bytertc::EncodedVideoFrameBuilder::size = 0;
    
    cpp

    视频帧数据大小

    width
    int bytertc::EncodedVideoFrameBuilder::width = 0;
    
    cpp

    视频帧宽度,单位:px

    height
    int bytertc::EncodedVideoFrameBuilder::height = 0;
    
    cpp

    视频帧高度,单位:px

    timestamp_us
    int64_t bytertc::EncodedVideoFrameBuilder::timestamp_us = 0;
    
    cpp

    视频采集时间戳,单位:微秒

    timestamp_dts_us
    int64_t bytertc::EncodedVideoFrameBuilder::timestamp_dts_us = 0;
    
    cpp

    视频编码时间戳,单位:微秒

    memory_deleter
    int (*bytertc::EncodedVideoFrameBuilder::memory_deleter)(uint8_t* data, int size, void* user_opaque) = nullptr;
    
    cpp

    用户定义的视频帧释放回调函数指针,如果指针不为空,方法会被调用用来释放内存空间

    IEncodedVideoFrame
    class bytertc::IEncodedVideoFrame
    
    cpp

    视频帧信息

    Defined in : bytertc_video_frame.h

    成员函数
    返回名称
    virtual VideoCodecTypecodecType
    virtual int64_ttimestampUs
    virtual int64_ttimestampDtsUs
    virtual intwidth
    virtual intheight
    virtual VideoPictureTypepictureType
    virtual VideoRotationrotation
    virtual uint8_t*data
    virtual intdataSize
    virtual IEncodedVideoFrame*shallowCopy
    virtual voidrelease
    函数说明

    codecType
    virtual VideoCodecType bytertc::IEncodedVideoFrame::codecType() const
    
    cpp

    获取视频编码类型

    返回值
    视频编码类型,参看 VideoCodecType

    timestampUs
    virtual int64_t bytertc::IEncodedVideoFrame::timestampUs() const
    
    cpp

    获取视频采集时间戳

    返回值
    视频采集时间戳,单位:微秒

    timestampDtsUs
    virtual int64_t bytertc::IEncodedVideoFrame::timestampDtsUs() const
    
    cpp

    获取视频编码时间戳

    返回值
    视频编码时间戳,单位:微秒

    width
    virtual int bytertc::IEncodedVideoFrame::width() const
    
    cpp

    获取视频帧宽度

    返回值
    视频帧宽度,单位:px

    height
    virtual int bytertc::IEncodedVideoFrame::height() const
    
    cpp

    获取视频帧高度

    返回值
    视频帧高度,单位:px

    pictureType
    virtual VideoPictureType bytertc::IEncodedVideoFrame::pictureType() const
    
    cpp

    获取视频编码帧类型

    返回值
    视频编码帧类型,参看 VideoPictureType

    rotation
    virtual VideoRotation bytertc::IEncodedVideoFrame::rotation() const
    
    cpp

    获取视频帧旋转角度

    返回值
    视频帧旋转角度,参看 VideoRotation

    data
    virtual uint8_t* bytertc::IEncodedVideoFrame::data() const
    
    cpp

    获取视频帧数据指针地址

    返回值
    视频帧数据指针地址

    dataSize
    virtual int bytertc::IEncodedVideoFrame::dataSize() const
    
    cpp

    获取视频帧数据大小

    返回值
    视频帧数据大小

    shallowCopy
    virtual IEncodedVideoFrame* bytertc::IEncodedVideoFrame::shallowCopy() const
    
    cpp

    浅拷贝视频帧并返回指针

    release
    virtual void bytertc::IEncodedVideoFrame::release()
    
    cpp

    释放视频帧

    FrameUpdateInfo
    struct bytertc::FrameUpdateInfo
    
    cpp

    RTC 智能决策后得到的帧率和分辨率积(宽*高)。

    Defined in : bytertc_video_frame.h

    成员变量
    类型名称
    intpixel
    intframerate
    变量说明

    pixel
    int bytertc::FrameUpdateInfo::pixel;
    
    cpp

    分辨率积(宽*高)。

    framerate
    int bytertc::FrameUpdateInfo::framerate;
    
    cpp

    帧率。

    ScreenVideoEncodePreference
    enum bytertc::ScreenVideoEncodePreference
    
    cpp

    屏幕流编码模式。默认采用清晰模式。若在采集时设置 ScreenFilterConfig 排除指定窗口,共享视频时帧率无法达到 30fps。

    Defined in : bytertc_video_frame.h

    枚举值
    类型值说明
    kScreenVideoEncodePreferenceAuto0智能模式。根据屏幕内容智能决策选择流畅模式或清晰模式。
    kScreenVideoEncodePreferenceFramerate1流畅模式,优先保障帧率。适用于共享游戏、视频等动态画面。
    kScreenVideoEncodePreferenceQuality2清晰模式,优先保障分辨率。适用于共享PPT、文档、图片等静态画面。
    ScreenVideoEncoderConfig
    struct bytertc::ScreenVideoEncoderConfig
    
    cpp

    屏幕编码配置。参考 设置视频发布参数。

    Defined in : bytertc_video_frame.h

    成员变量
    类型名称
    intwidth
    intheight
    intframeRate
    intmaxBitrate
    intminBitrate
    ScreenVideoEncodePreferenceencoderPreference
    变量说明

    width
    int bytertc::ScreenVideoEncoderConfig::width;
    
    cpp

    视频宽度,单位:像素。

    height
    int bytertc::ScreenVideoEncoderConfig::height;
    
    cpp

    视频高度,单位:像素。

    frameRate
    int bytertc::ScreenVideoEncoderConfig::frameRate;
    
    cpp

    视频帧率,单位:fps。

    maxBitrate
    int bytertc::ScreenVideoEncoderConfig::maxBitrate = SEND_KBPS_AUTO_CALCULATE;
    
    cpp

    最大编码码率,使用 SDK 内部采集时可选设置,自定义采集时必须设置,单位:kbps。
    设为 -1 即适配码率模式,系统将根据输入的分辨率和帧率自动计算适用的码率。
    设为 0 则不对视频流进行编码发送。
    3.44 及以上版本,内部采集时默认值为 -1,3.44 以前版本无默认值,需手动设置。

    minBitrate
    int bytertc::ScreenVideoEncoderConfig::minBitrate = 0;
    
    cpp

    最小编码码率,使用 SDK 内部采集时可选设置,自定义采集时必须设置,单位:kbps。
    最小编码码率必须小于或等于最大编码,否则不对视频流进行编码发送。

    encoderPreference
    ScreenVideoEncodePreference bytertc::ScreenVideoEncoderConfig::encoderPreference = ScreenVideoEncodePreference::kScreenVideoEnc/;"
    
    cpp

    屏幕流编码模式。参见 ScreenVideoEncodePreference。

    P2PRole
    enum streamingrtc::P2PRole
    
    cpp

    串流引擎角色

    Defined in : streaming_common_defines.h

    枚举值
    类型值说明
    kP2PRoleClient0客户端
    kP2PRoleServer1服务端
    EngineConfig
    struct streamingrtc::EngineConfig
    
    cpp

    串流引擎配置

    客户端和服务端的端口范围含义说明如下:

    服务端:引擎启动后开始监听端口 server_port_min 至 server_port_max 中的首个可用端口,等待客户端连接

    客户端:引擎启动后开始不断尝试连接服务端,IP 地址为 server_ip ,端口号为 server_port_min 至 server_port_max

    Defined in : streaming_common_defines.h

    成员变量
    类型名称
    const char*app_id
    P2PRolerole
    const char*server_ip
    intserver_port_min
    intserver_port_max
    变量说明

    app_id
    const char* streamingrtc::EngineConfig::app_id = nullptr;
    
    cpp

    每个应用的唯一标识符。不同的 AppId 生成的实例进行音视频通话完全独立,无法互通。

    role
    P2PRole streamingrtc::EngineConfig::role = kP2PRoleClient;
    
    cpp

    串流引擎角色, 参看 P2PRole

    server_ip
    const char* streamingrtc::EngineConfig::server_ip = nullptr;
    
    cpp

    服务端所在的 IP 地址,role = kP2PRoleClient 时需要设置

    server_port_min
    int streamingrtc::EngineConfig::server_port_min = 50000;
    
    cpp

    最小端口号

    server_port_max
    int streamingrtc::EngineConfig::server_port_max = 50004;
    
    cpp

    最大端口号

    StreamIndex
    enum streamingrtc::StreamIndex
    
    cpp

    流的序号,用于区分同一用户发出的多路流。例如 3D 视频流中的左/右眼。又如,屏幕流和摄像头采集流

    Defined in : streaming_common_defines.h

    枚举值
    类型值说明
    kStreamIndexIndex00流序号 0
    kStreamIndexIndex11流序号 1
    ConnectionStats
    typedef RtcRoomStats streamingrtc::ConnectionStats
    
    cpp

    参看 RtcRoomStats。

    Defined in : streaming_rtc_engine_event_handler.h