本文介绍实时音视频Linux SDK Golang数据结构。
目录
数据类型 | 描述 |
错误码定义。 | |
警告码定义。 | |
频道模式。 | |
推流模式。 | |
日志级别。 | |
音频质量模式。 | |
音频场景模式。 | |
视频轨道。 | |
音频轨道。 | |
视频分辨率配置。 | |
视频分辨率。 | |
视频帧率。 | |
视频输出方向。 | |
视频镜像模式。 | |
视频旋转角度。 | |
相机流视频编码属性设置。 | |
屏幕流编码属性设置。 | |
视频源。 | |
渲染模式。 | |
推流的音画同步模式。 | |
视频数据格式。 | |
视频缓冲区类型。 | |
视频数据样本。 | |
定义仅用于订阅的枚举。 | |
视频轨道类型。 | |
视频格式。 | |
音频格式。 | |
视频帧类型。 | |
音频帧类型。 | |
音频PCM帧类。 | |
音频AAC帧类。 | |
音频帧类。 | |
音频转码编解码器类型。 | |
视频转码编解码器类型。 | |
H264视频帧类。 | |
视频帧类。 | |
推流状态。 | |
订阅状态。 | |
视频流类型。 | |
静音模式。 | |
用户角色类型。 | |
加入频道配置类。 | |
认证信息类。 | |
伴奏控制指令模式。 | |
伴奏控制消息类。 |
详情
ERROR_CODE: 错误码定义。
枚举名 | 描述 |
ERR_OK | 正常。 |
ERR_JOIN_BAD_APPID | AppId不存在。 |
ERR_JOIN_INVALID_APPID | AppId已失效。 |
ERR_JOIN_BAD_CHANNEL | 频道不存在。 |
ERR_JOIN_INVALID_CHANNEL | 频道已失效。 |
ERR_JOIN_BAD_TOKEN | Token不存在。 |
ERR_JOIN_TIMEOUT | 加入频道超时。 |
ERR_JOIN_BAD_PARAM | 加入频道参数错误。 |
ERR_JOIN_FAILED | 加入频道失败。 |
ERR_JOIN_CONFIG_INVALID | (新增)入会参数无效,如空token。 |
ERR_LEAVE_UNUSUAL | (新增)异常离会,可能被踢。 |
ERR_NO_PEOPLE | (审核定制能力)房间无人,可能房间不存在或主播已下播。 |
ERR_AUDIO_DATA_ERROR | 音频数据错误。 |
ERR_VIDEO_DATA_ERROR | 视频数据错误。 |
ERR_NETWORK_CONNECT_FAIL | 媒体通道建立失败。 |
ERR_NETWORK_RECONNECT_FAIL | 媒体通道重连失败。 |
ERR_NETWORK_DISCONNECT | 连接断开。 |
ERR_NETWORK_TIMEOUT | 连接超时。 |
ERR_PUBLISH_INVALID | 推流无效。 |
ERR_Publish_NOT_JOIN_CHANNEL | 未进入频道推流失败。 |
ERR_PUBLISH_AUDIO_STREAM_FAILED | 推送音频流失败。 |
ERR_PUBLISH_VIDEO_STREAM_FAILED | 推送视频流失败。 |
ERR_PUBLISH_DUAL_STREAM_FAILED | 推送小流失败。 |
ERR_PUBLISH_SCREEN_SHARE_FAILED | 推送屏幕共享失败。 |
ERR_PUBLISH_SCREEN_SHARE_CONFIG | 屏幕共享配置错误。 |
ERR_SUBSCRIBE_INVALID | 订阅无效。 |
ERR_SUBSCRIBE_NOT_JOIN_CHANNEL | 未进入频道订阅错误。 |
ERR_SUBSCRIBE_AUDIO_STREAM_FAILED | 订阅音频流失败。 |
ERR_SUBSCRIBE_VIDEO_STREAM_FAILED | 订阅视频流失败。 |
ERR_SUBSCRIBE_DUAL_STREAM_FAILED | 订阅小流失败。 |
ERR_SUBSCRIBE_SCREEN_SHARE_FAILED | 订阅屏幕共享失败。 |
ERR_SUBSCRIBE_DUAL_AUDIO_STREAM_FAILED | 订阅双声道失败。 |
ERR_SDK_INVALID_STATE | SDK内部状态错误。 |
ERR_SESSION_REMOVED | session已经被移除。 |
ERR_INNER | SDK内部错误。 |
ERR_VIDEO_TRANSFER | 视频数据传输错误。 |
ERR_AUDIO_TRANSFER | 音频数据传输错误。 |
ERR_AUDIO_BUFFER_FULL | 音频外部输入时,频率过快。 |
ERR_FATAL | SDK严重错误。 |
WARNNING_CODE: 警告码定义。
枚举名 | 描述 |
WARN_DEFAULT | 默认警告。 |
ChannelProfile: 频道模式。
枚举名 | 描述 |
ChannelProfileCommunication | 通信模式。 |
ChannelProfileInteractiveLive | 直播模式。 |
ChannelProfileInteractiveWithLowLatencyLive | 互动低延迟直播模式。 |
PublishMode: 推流模式。
枚举名 | 描述 |
PublishAutomatically | 自动推流。 |
PublishManually | 手动推流。 |
LogLevel: 日志级别。
枚举名 | 描述 |
LogLevelInfo | 只输出>=LogLevelInfo级别的日志。 |
LogLevelWarn | 只输出>=LogLevelWarn级别的日志。 |
LogLevelError | 只输出>=LogLevelError级别的日志。 |
LogLevelFatal | 只输出>=LogLevelFatal级别的日志。 |
LogLevelNone | 不输出日志。 |
AudioQualityMode: 音频质量模式。
枚举名 | 描述 |
LowQualityMode | 音频低音质模式,默认8000Hz采样率,单声道,最大编码码率12kbps。 |
BasicQualityMode | (默认)标准音质模式,默认16000Hz采样率,单声道,最大编码码率24kbps。 |
HighQualityMode | 高音质模式,默认48000Hz采样率,单声道,最大编码码率64kbps。 |
StereoHighQualityMode | 立体声高音质模式,默认48000Hz采样率,双声道,最大编码码率80kbps。 |
SuperHighQualityMode | 超高音质模式,默认48000Hz采样率,单声道,最大编码码率96kbps。 |
StereoSuperHighQualityMode | 立体声超高音质模式,默认48000Hz采样率,双声道,最大编码码率128kbps。 |
QualityMaxMode | 音质模式最大值。 |
AudioSceneMode: 音频场景模式。
枚举名 | 描述 |
DefaultMode | 默认模式,硬件3a处理。 |
EducationMode | 教育场景,硬件3a处理。 |
MediaMode | 媒体场景,基础软件3a处理。 |
MusicMode | 音乐场景,音乐优化软件3a处理。 |
ChatroomMode | 聊天室模式,硬件3a处理。 |
KtvMode | KTV模式,音乐优化软件3a处理加Aaudio。 |
SceneMaxMode | 场景模式最大值。 |
VideoTrack: 视频轨道。
枚举名 | 描述 |
VideoTrackNo | 无视频轨道。 |
VideoTrackCamera | 来自摄像头、文件等的视频。 |
VideoTrackScreen | 来自屏幕共享的视频。 |
VideoTrackBoth | 包括VideoTrackCamera和VideoTrackScreen。 |
VideoTrackEnd | 视频轨道结束标记。 |
AudioTrack: 音频轨道。
枚举名 | 描述 |
AudioTrackNo | 无音频轨道。 |
AudioTrackMic | 来自麦克风、文件等的音频。 |
AudioTrackEnd | 音频轨道结束标记。 |
VideoProfile: 视频分辨率配置。
枚举名 | 描述 |
VideoProfile_Default | 让SDK决定。 |
VideoProfile_180_240P_15 | 分辨率180x240,帧率15fps。 |
VideoProfile_180_320P_15 | 分辨率180x320,帧率15fps。 |
VideoProfile_180_320P_30 | 分辨率180x320,帧率30fps。 |
VideoProfile_240_320P_15 | 分辨率240x320,帧率15fps。 |
VideoProfile_360_480P_15 | 分辨率360x480,帧率15fps。 |
VideoProfile_360_480P_30 | 分辨率360x480,帧率30fps。 |
VideoProfile_360_640P_15 | 分辨率360x640,帧率15fps。 |
VideoProfile_360_640P_30 | 分辨率360x640,帧率30fps。 |
VideoProfile_480_640P_15 | 分辨率480x640,帧率15fps。 |
VideoProfile_480_640P_30 | 分辨率480x640,帧率30fps。 |
VideoProfile_720_960P_15 | 分辨率720x960,帧率15fps。 |
VideoProfile_720_960P_30 | 分辨率720x960,帧率30fps。 |
VideoProfile_720_1280P_15 | 分辨率720x1280,帧率15fps。 |
VideoProfile_720_1280P_20 | 分辨率720x1280,帧率20fps。 |
VideoProfile_720_1280P_30 | 分辨率720x1280,帧率30fps。 |
VideoProfile_1080_1920P_15 | 分辨率1080x1920,帧率15fps。 |
VideoProfile_1080_1920P_30 | 分辨率1080x1920,帧率30fps。 |
VideoProfile_480_640P_15_1500Kb | 分辨率480x640,帧率15fps,码率1500Kbps。 |
VideoProfile_900_1600P_20 | 分辨率900x1600,帧率20fps。 |
VideoProfile_360_640P_15_800Kb | 分辨率360x640,帧率15fps,码率800Kbps。 |
VideoProfile_480_840P_15_500Kb | 分辨率480x840,帧率15fps,码率500Kbps。 |
VideoProfile_480_840P_15_800Kb | 分辨率480x840,帧率15fps,码率800Kbps。 |
VideoProfile_540_960P_15_800Kb | 分辨率540x960,帧率15fps,码率800Kbps。 |
VideoProfile_540_960P_15_1200Kb | 分辨率540x960,帧率15fps,码率1200Kbps。 |
VideoProfile_540_960P_20 | 分辨率540x960,帧率20fps。 |
VideoProfile_1080_1920P_20 | 分辨率1080x1920,帧率20fps。 |
VideoProfile_240_320P_15_300kb | 分辨率240x320,帧率15fps,码率300Kbps。 |
VideoProfile_240_320P_15_500kb | 分辨率240x320,帧率15fps,码率500Kbps。 |
VideoProfile_90_160P_15 | 分辨率90x160,帧率15fps。 |
AliRTCSDK_Video_Profile_Adaptive_Resolution | 自适应分辨率。 |
AliRTCSDK_Video_Profile_Max | 视频分辨率配置最大值。 |
AliEngineVideoDimensions: 视频分辨率。
参数 | 类型 | 描述 |
Width | int | 视频宽度。 |
Height | int | 视频高度。 |
AliEngineFrameRate: 视频帧率。
枚举名 | 描述 |
AliEngineFrameRateFps5 | 5 fps。 |
AliEngineFrameRateFps10 | 10 fps。 |
AliEngineFrameRateFps15 | 15 fps。 |
AliEngineFrameRateFps20 | 20 fps。 |
AliEngineFrameRateFps25 | 25 fps。 |
AliEngineFrameRateFps30 | 30 fps。 |
AliEngineVideoEncoderOrientationMode: 视频输出方向。
枚举名 | 描述 |
AliEngineVideoEncoderOrientationModeAdaptive | 自适应,推流方向和采集方向一致。 |
AliEngineVideoEncoderOrientationModeFixedLandscape | 风景模式,横屏视频。该模式下SDK推竖屏流,始终以设置的分辨率宽和高中较小的值作为输出视频的宽,较大值作为输出视频的高。 |
AliEngineVideoEncoderOrientationModeFixedPortrait | 肖像模式,竖屏视频。该模式下SDK推横屏流,始终以设置的分辨率宽和高中较大的值作为输出视频的宽,较小值作为输出视频的高。 |
AliEngineVideoMirrorMode: 视频镜像模式。
枚举名 | 描述 |
AliEngineVideoMirrorModeDisabled | 关闭镜像。 |
AliEngineVideoMirrorModeEnable | 开启镜像。 |
AliEngineRotationMode: 视频旋转角度。
枚举名 | 描述 |
AliEngineRotationModeNoChange | 沿用之前的旋转角度。 |
AliEngineRotationMode_0 | 0度旋转。 |
AliEngineRotationMode_90 | 90度旋转。 |
AliEngineRotationMode_180 | 180度旋转。 |
AliEngineRotationMode_270 | 270度旋转。 |
AliEngineVideoEncoderConfiguration: 相机流视频编码属性设置。
参数 | 类型 | 描述 |
Dimensions | AliEngineVideoDimensions | 视频分辨率,默认值640x480,最大值1920x1080。 |
FrameRate | AliEngineFrameRate | 视频帧率,默认值15, 最大值30。 |
Bitrate | int | 视频编码码率(Kbps)。默认值512,设置为0表示由SDK计算合适的编码码率。码率设置根据分辨率和帧率有对应的合理范围,该值设置在合理范围内有效,否则SDK会自动调节码率到有效值。 |
KeyFrameInterval | int | 关键帧间距 |
OrientationMode | AliEngineVideoEncoderOrientationMode | 视频输出方向,默认自适应。 |
MirrorMode | AliEngineVideoMirrorMode | 推流镜像,默认关闭。 |
RotationMode | AliEngineRotationMode | 推流旋转,默认为0度。 |
AliEngineScreenShareEncoderConfiguration: 屏幕流编码属性设置。
参数 | 类型 | 描述 |
Dimensions | AliEngineVideoDimensions | 视频分辨率,默认值0x0,最大值3840x2160,默认值表示推流分辨率等于屏幕采集的分辨率。 |
FrameRate | AliEngineFrameRate | 视频帧率,默认值5, 最大值30。 |
Bitrate | int | 视频编码码率(Kbps),默认值512,设置为0表示由SDK计算合适的编码码率。码率设置根据分辨率和帧率有对应的合理范围,该值设置在合理范围内有效,否则SDK会自动调节码率到有效值。 |
RotationMode | AliEngineRotationMode | 推流旋转,默认为0度,详见AliEngineRotationMode。 |
VideoSource: 视频源。
枚举名 | 描述 |
VideoSourceCamera | 来自相机的视频源。 |
VideoSourceScreenShare | 来自屏幕共享的视频源。 |
VideosourceTypeMax | 视频源类型最大值。 |
RenderMode: 渲染模式。
枚举名 | 描述 |
RenderModeAuto | 自动模式。 |
RenderModeStretch | 拉伸平铺模式 ,如果外部输入的视频宽高比和推流设置的宽高比不一致时,将输入视频拉伸到推流设置的比例,画面会变形。 |
RenderModeFill | 填充黑边模式,如果外部输入的视频宽高比和推流设置的宽高比不一致时,将输入视频上下或者左右填充黑边。 |
RenderModeCrop | 裁剪模式,如果外部输入的视频宽高比和推流设置的宽高比不一致时,将输入视频宽或者高进行裁剪,画面内容会丢失。 |
PublishAvsyncMode: 推流的音画同步模式。
枚举名 | 描述 |
PublishAvsyncNoDelay | sdk内部不做缓存,PushExternalVideoFrame/PushExternalAudioFrame 后立刻发送到网络,调用方保证音画同步。 |
PublishAvysncWithPts | sdk内部做缓存,根据送入的pts 进行音画对齐和等待。PublishAvysncWithPts下的若干case:如 只推音频,但是音频是文件形式输入,比如2s的音频数据,可以快速输入到SDK中,SDK会根据pts按需等待,在2s内陆续输入到网络。如 同时输入音视频,但是音视频的获取时间并有一定间隔,SDK内部会根据音频和视频的pts 进行对齐,陆续输入到网络。在join-leave的生命周期内,多次pub、unpub,送入的不同片段的pts需要在相同时间轴上。如 join之后,第一次pub, pts 都从0 开始, 10s后unpub,然后再10s后再进行pub,第二次pub的pts需要从20s开始,不可以再从0开始,否则会导致卡顿。 |
VideoDataFormat: 视频数据格式。
枚举名 | 描述 |
VideoDataFormatUnknow | 未知格式。 |
VideoDataFormatBGRA | BGRA格式。 |
VideoDataFormatI420 | I420格式。 |
VideoDataFormatNV21 | NV21格式。 |
VideoDataFormatNV12 | NV12格式。 |
VideoDataFormatH264 | H264格式。 |
VideoDataFormatRGB24 | RGB24格式。 |
VideoDataFormatBGR24 | BGR24格式。 |
VideoBufferType: 视频缓冲区类型。
枚举名 | 描述 |
VideoBufferTypeRawData | 原始数据。 |
VideoBufferTypeCVPixelBuffer | CVPixelBuffer类型。 |
VideoBufferTypeTexture | 纹理类型。 |
VideoDataSample: 视频数据样本。
参数 | 类型 | 描述 |
Format | VideoDataFormat | 视频数据格式。 |
BufferType | VideoBufferType | 视频缓冲区类型。 |
Data | bytes | 指向视频数据的指针,默认为nullptr。 |
DataLen | int | 视频数据的长度。 |
StrideY | int | Y平面的跨度,默认为0。 |
StrideU | int | U平面的跨度,默认为0。 |
StrideV | int | V平面的跨度,默认为0。 |
Height | int | 视频高度,默认为0。 |
Width | int | 视频宽度,默认为0。 |
Rotation | int | 视频旋转角度,默认为0。 |
TimeStamp | int | 时间戳。 |
SubscribeMode: 定义仅用于订阅的枚举。
枚举名 | 描述 |
SubscribeAutomatically | 自动订阅。 |
SubscribeManually | 手动订阅。 |
SubscribeAudioAutoAndOnly | 自动仅订阅音频。 |
SubscribeCameraAutoAndOnly | 自动仅订阅来自摄像头的视频。 |
VideoTrackType: 视频轨道类型。
枚举名 | 描述 |
VideoTrackCameraLarge | 来自摄像头的大流视频。 |
VideoTrackCameraSmall | 来自摄像头的小流视频。 |
VideoTrackCameraSuper | 来自摄像头的超清流视频。 |
VideoTrackScreenshare | 屏幕共享视频。 |
VideoFormat: 视频格式。
枚举名 | 描述 |
VideoFormatNone | 无视频格式。 |
VideoFormatH264 | H264视频格式。 |
AudioFormat: 音频格式。
枚举名 | 描述 |
AudioFormatNone | 无音频格式。 |
AudioFormatMixedPcm | 混合后的PCM格式。 |
AudioFormatPcmBeforMixing | 混合前的PCM格式。 |
VideoFrameType: 视频帧类型。
枚举名 | 描述 |
VideoFrameH264 | YUV I420,解码后的图像。 |
VideoFrameH264Nalu | H264 Nalu,解码前的图像。 |
AudioFrameType: 音频帧类型。
枚举名 | 描述 |
AudioFrameRawPcm | 原始PCM数据。 |
AudioFrameAacAdts | AAC ADTS格式数据。 |
AudioPcmFrame: 音频PCM帧类。
参数 | 类型 | 描述 |
FrameMs | int | 时间戳,以毫秒为单位。 |
Channels | int | 音频通道数,比如1表示单声道。 |
SampleBits | int | 每个样本的位数,例如16位采样深度。 |
SampleRates | int | 音频采样率,如8000Hz(8kHz)、16000Hz(16kHz)、32000Hz(32kHz)。 |
Samples | int | 音频样本数量。 |
PcmBuf | bytes | 指向PCM数据缓冲区的指针。 |
PcmBufSize | int | PCM数据缓冲区的大小,单位是字节。 |
AudioAacFrame: 音频AAC帧类。
参数 | 类型 | 描述 |
FrameMs | int | 时间戳,以毫秒为单位。 |
Channels | int | 音频通道数,例如1表示单声道。 |
SampleRates | int | 音频采样率,可选值有8000Hz(8kHz)、16000Hz(16kHz)、32000Hz(32kHz)。 |
AacBuf | bytes | 指向AAC数据缓冲区的指针。 |
AacBufSize | int | AAC数据缓冲区的大小,单位是字节。 |
AudioFrame: 音频帧类。
参数 | 类型 | 描述 |
FrameType | AudioFrameType | 音频帧的类型,标识存储的是原始PCM数据还是AAC数据。 |
Pcm | AudioPcmFrame | 音频PCM帧 |
Aac | AudioAacFrame | 音频AAC帧 |
AudioTranscodingCodec: 音频转码编解码器类型。
枚举名 | 描述 |
AudioTranscodingCodecPcm | 仅转码为PCM格式。 |
AudioTranscodingCodecAac | 仅转码为AAC格式。 |
AudioTranscodingCodecBothPcmAndAac | 同时转码为PCM和AAC格式。 |
AudioTranscodingCodecMax | 音频转码编解码器的最大枚举值,用于枚举范围检查。 |
VideoTranscodingCodec: 视频转码编解码器类型。
枚举名 | 描述 |
VideoTranscodingCodecYuv | 仅转码为YUV格式。 |
VideoTranscodingCodecH264 | 仅转码为H264格式。 |
VideoTranscodingCodecBothYuvAndH264 | 同时转码为YUV和H264格式。 |
VideoTranscodingCodecMax | 视频转码编解码器的最大枚举值,用于枚举范围检查。 |
VideoH264Frame: H264视频帧类。
参数 | 类型 | 描述 |
FrameMs | int | 视频帧的时间戳,单位为毫秒。 |
FrameNum | int | 视频帧的序号。 |
Buf | bytes | 指向视频帧数据的指针。 |
BufSize | int | 视频帧数据的大小,单位是字节。 |
Width | int | 视频帧的宽度。 |
Height | int | 视频帧的高度。 |
VideoFrame: 视频帧类。
参数 | 类型 | 描述 |
Track | VideoTrackType | 视频帧对应的轨道类型。 |
FrameType | VideoFrameType | 视频帧的类型,例如H264或者H264 NALU。 |
Frame | VideoH264Frame | H264视频帧。 |
AliEnginePublishState: 推流状态。
枚举名 | 描述 |
AliEngineStatsPublishIdle | 初始状态。 |
AliEngineStatsNoPublish | 未推流。 |
AliEngineStatsPublishing | 推流中。 |
AliEngineStatsPublished | 已推流。 |
AliEngineSubscribeState: 订阅状态。
枚举名 | 描述 |
AliEngineStatsSubscribeIdle | 初始状态。 |
AliEngineStatsNoSubscribe | 未订阅。 |
AliEngineStatsSubscribing | 订阅中。 |
AliEngineStatsSubscribed | 已订阅。 |
AliEngineVideoStreamType: 视频流类型。
枚举名 | 描述 |
AliEngineVideoStreamTypeNone | 无,在OnSubscribeStreamTypeChanged回调表示当前未订阅。 |
AliEngineVideoStreamTypeHigh | 高码率,高分辨率流(大流)。 |
AliEngineVideoStreamTypeLow | 低码率,低分辨率流(小流)。 |
AliEngineMuteLocalAudioMode: 静音模式。
枚举名 | 描述 |
AliEngineMuteLocalAudioModeDefault | 默认模式(静音全部,包括麦克风及外部输入音频)。 |
AliEngineMuteLocalAudioModeMuteOnlyMic | 只静音麦克风。 |
AliEngineMuteLocalAudioModeMuteAll | 静音全部(包括麦克风及外部输入音频)。 |
AliEngineClientRole: 用户角色类型。
枚举名 | 描述 |
AliEngineClientRoleInteractive | 互动角色。 |
AliEngineClientRoleLive | 观众角色。 |
JoinChannelConfig: 加入频道配置类。
参数 | 类型 | 描述 |
ChannelProfile | ChannelProfile | 频道配置模式。 |
IsAudioOnly | bool | 是否仅音频模式。 |
PublishAvsyncMode | PublishAvsyncMode | 推流音视频同步模式。 |
PublishMode | PublishMode | 推流模式。 |
SubscribeMode | SubscribeMode | 订阅模式。 |
SubscribeVideoFormat | VideoFormat | 订阅的视频格式。 |
SubscribeAudioFormat | AudioFormat | 订阅的音频格式。 |
AuthInfo: 认证信息类。
参数 | 类型 | 描述 |
Channel | str | 频道名称。 |
UserID | str | 用户ID。 |
UserName | str | 用户名。 |
AppID | str | 应用ID。 |
Token | str | 认证Token。 |
Timestamp | int | 时间戳。 |
AliEngineDataMsgType: 伴奏控制指令模式。
枚举名 | 描述 |
AliEngineDataChannelNone | 无。 |
AliEngineDataChannelProgress | 进度。 |
AliEngineDataChannelCustom | 自定义。 |
AliEngineDataChannelMsg: 伴奏控制消息类。
参数 | 类型 | 描述 |
Type | AliEngineDataMsgType | 消息类型。 |
NetworkTime | int | 网络时间。 |
Progress | int | 进度。 |
Data | bytes | 数据。 |
DataLen | int | 数据长度。 |