agora::recording::RecordingConfig结构体 参考
录制的详细设置。
构造及析构函数说明
RecordingConfig()
|
~RecordingConfig()
|
类成员变量说明
isAudioOnly
bool agora::recording::RecordingConfig::isAudioOnly |
- true: 启用音频录制且关闭视频录制。
- false:(默认)启用音视频录制。
- 如果 isAudioOnly 为 true,且 isVideoOnly 为 false,则仅录制音频;
- 如果 isAudioOnly 为 false,且 isVideoOnly 为 true,则仅录制视频;
- 如果 isAudioOnly 为 false,且 isVideoOnly 为 false,则既录制音频,也录制视频;
- 不能将 isAudioOnly 和 isVideoOnly 同时设置为 true。
isVideoOnly
bool agora::recording::RecordingConfig::isVideoOnly |
- true: 启用视频录制且关闭音频录制。
- false:(默认)启用音视频录制。
- 如果 isAudioOnly 为 true,且 isVideoOnly 为 false,则仅录制音频;
- 如果 isAudioOnly 为 false,且 isVideoOnly 为 true,则仅录制视频;
- 如果 isAudioOnly 为 false,且 isVideoOnly 为 false,则既录制音频,也录制视频;
- 不能将 isAudioOnly 和 isVideoOnly 同时设置为 true。
isMixingEnabled
bool agora::recording::RecordingConfig::isMixingEnabled |
- true: 启用合流模式录制。多个 UID 的音频混合成一个纯音频文件,多个 UID 的视频混合成一个纯视频文件。无论频道内有多少用户,都只生成 1 个混合音频文件和 1 个混合视频文件。混合文件的音频属性通过 audioProfile 参数进行设置,视频属性通过 mixResolution 参数进行设置。
- false:(默认)启用单流模式录制。一个 UID 对应一个音频文件和一个视频文件。录制文件的音频属性为:采样率固定为 48 kHz,声道数和码率与原始音频流保持一致。录制文件的视频属性与原始视频流保持一致。
autoSubscribe
bool agora::recording::RecordingConfig::autoSubscribe |
- true: (默认)录制所有用户。
- false: 录制指定 UID 用户。
注解
enableCloudProxy
bool agora::recording::RecordingConfig::enableCloudProxy |
- true: 启用云代理服务
- false:(默认)不启用云代理服务
mixedVideoAudio
agora::linuxsdk::MIXED_AV_CODEC_TYPE agora::recording::RecordingConfig::mixedVideoAudio |
该参数有六种设置,详见 MIXED_AV_CODEC_TYPE。
注解
- 仅当 isMixingEnabled 为 true 启用合流模式时有效。
- 推荐设置
mixedVideoAudio
为AV_CODEC_MIXED_TS_ONLY(6)
或AV_CODEC_MIXED_TS_AND_MP4(7)
,以保证录制进程崩溃后录制文件的可用性。如果设置为 AV_CODEC_MIXED_TS_AND_MP4(7),录制会有一定程度的性能回退。
mixResolution
const char* agora::recording::RecordingConfig::mixResolution |
注解
设置帧率时,仅支持声网标准帧率:1 fps,7 fps,10 fps,15 fps,24 fps,30 fps 和 60 fps。如果你设置成其他帧率,SDK 会采用默认帧率 15 fps。
请参考视频属性对照表设置分辨率、帧率、码率。
decryptionMode
const char* agora::recording::RecordingConfig::decryptionMode |
注解
录制 SDK 的解密方式必须与频道设置的加密方式一致。
目前支持以下几种解密方式:
- "aes-128-xts":128 位 AES 加密,XTS 模式。
- "aes-128-ecb":128 位 AES 加密,ECB 模式。
- "aes-256-xts":256 位 AES 加密,XTS 模式。
- "aes-128-gcm": 128 位 AES 加密,GCM 模式。
- "aes-256-gcm": 256 位 AES 加密,GCM 模式。
secret
const char* agora::recording::RecordingConfig::secret |
appliteDir
const char* agora::recording::RecordingConfig::appliteDir |
SDK 包内 AgoraCoreServices 的默认路径为:Agora_Recording_SDK_for_Linux_FULL/bin/
recordFileRootDir
const char* agora::recording::RecordingConfig::recordFileRootDir |
设置该参数后,录制 SDK 会按照录制日期自动生成子目录保存录制文件。
cfgFilePath
const char* agora::recording::RecordingConfig::cfgFilePath |
--cfgFilePath /home/guest/recording_dir/cfg.json
。在该配置文件里,你可以设置以下参数:
Recording_Dir
: 字符串类型,指定存放录制文件的绝对路径。指定路径后,SDK 不会自动生成子目录。
示例:{"Recording_Dir": "/home/guest/recording_dir/"}
,表示录制文件存放的绝对路径为/home/guest/recording_dir/
。Chunk_Time_Span
: 字符串类型,设置直播场景中单流录制模式下录制文件切片的间隔时间,单位为秒,最小值为 10。
示例:{"Chunk_Time_Span": "15"}
,表示每隔 15 秒生成一个录制文件。Secondary_Recorder
: 字符串类型,表示录制两种格式的音频文件,Secondary_Recorder
为增加的音频文件格式。
示例:{"Secondary_Recorder":"mp3"}
,表示生成 AAC 和 MP3 两种格式的音频文件。Audio_Only_Record
: 字符串类型,表示仅录制一种格式的音频文件,Audio_Only_Record
为仅录制的音频文件格式。
示例:{"Audio_Only_Record":"mp3"}
,表示只生成 MP3 格式的音频文件。Audio_Sample_Rate
: Number 类型,设置录制的音频的采样率。
示例:{"Audio_Sample_Rate":16000}
,表示录制音频的采样率是 16000Hz。Pcm_Sample_Rate
: Number 类型,设置录制 PCM 帧格式的原始音频数据(getAudioFrame
为2
或3
)的采样率。
示例:{"Pcm_Sample_Rate":16000}
,表示录制 PCM 帧格式的原始音频数据的采样率是 16000Hz。
注解
Chunk_Time_Span
参数仅适用于直播场景下的单流录制模式。- 要使用
Chunk_Time_Span
参数,必须将enableIntraRequest
设为true
,请求发流端发送关键帧。发流端是否发送关键帧,由发流端使用的 RTC SDK 版本决定。 - 录制 SDK 只有遇到视频关键帧才会真正切片,因而实际的切片时间间隔与设置的参数会有少许偏差。
Audio_Sample_Rate
可以设置为 16000Hz,32000Hz,44100Hz,48000Hz。如果设置的采样率不在上述范围内,则默认采样率为 16000Hz。Pcm_Sample_Rate
可以设置为 8000Hz, 16000Hz, 32000Hz。如果设置的采样率不在上述范围内,则配置不生效。
decodeVideo
agora::linuxsdk::VIDEO_FORMAT_TYPE agora::recording::RecordingConfig::decodeVideo |
注解
- VIDEO_FORMAT_TYPE = 1,2,3 或 4 时,isMixingEnabled 不能设为 true。
decodeAudio
agora::linuxsdk::AUDIO_FORMAT_TYPE agora::recording::RecordingConfig::decodeAudio |
注解
AUDIO_FORMAT_TYPE = 1 或 2 时,isMixingEnabled 不能设为 true。
lowUdpPort
int agora::recording::RecordingConfig::lowUdpPort |
highUdpPort
int agora::recording::RecordingConfig::highUdpPort |
idleLimitSec
int agora::recording::RecordingConfig::idleLimitSec |
该值需大于等于 3 秒。录制时,如果频道空闲(无用户)超过设定的时间,录制端自动退出频道,停止录制。
注解
- 该段时间也会纳入计费。
- 通信场景下,如果频道内有用户,但用户没有发流,不算作无用户状态。
- 直播场景下,如果频道内有观众但无主播,一旦无主播的状态超过
idleLimitSec
,录制程序会自动退出。
captureInterval
int agora::recording::RecordingConfig::captureInterval |
注解
仅当 decodeVideo 设为 3,4 或 5 时有效。
audioIndicationInterval
int agora::recording::RecordingConfig::audioIndicationInterval |
- <= 0:(默认)禁用说话者监测的功能。
- > 0: 说话者监测的时间间隔,单位为 ms 。建议设置时间间隔大于 200 ms。一旦检测到频道内有人说话,就会在 onActiveSpeaker 回调中返回当前时间段内声音最大的用户的 UID,在 onAudioVolumeIndication 回调中返回当前时间段内所有说话者的 UID 和音量。
channelProfile
agora::linuxsdk::CHANNEL_PROFILE_TYPE agora::recording::RecordingConfig::channelProfile |
streamType
agora::linuxsdk::REMOTE_VIDEO_STREAM_TYPE agora::recording::RecordingConfig::streamType |
triggerMode
agora::linuxsdk::TRIGGER_MODE_TYPE agora::recording::RecordingConfig::triggerMode |
lang
proxyType
int agora::recording::RecordingConfig::proxyType |
- 0: 自行部署 SOCKS5 类型的代理服务器。
- 1: (默认)使用云代理服务,配置域名(推荐使用)。
- 2: 使用云代理服务,配置 IP 列表(域名受限时使用)。
proxyType
参数后,需在 proxyServer
参数中进行相应设置。详见使用云代理服务。 proxyServer
const char* agora::recording::RecordingConfig::proxyServer |
proxyType
参数中选择的代理服务器类型设置代理服务器的 IP 地址(域名)和端口,从而实现在内网进行录制:- 如
proxyType
为 0,proxyServer
设为"<ip>:<port>"
。 - 如
proxyType
为 1,proxyServer
设为"<domain>:<port>"
。 - 如
proxyType
为 2,proxyServer
设为"<ip1>,<ip2>,...,<ipx>:<port>"
。
audioProfile
agora::linuxsdk::AUDIO_PROFILE_TYPE agora::recording::RecordingConfig::audioProfile |
注解
仅当 isMixingEnabled 为 true 启用合流模式时有效。
defaultVideoBg
const char* agora::recording::RecordingConfig::defaultVideoBg |
注解
仅支持本地 JPEG 文件。
defaultUserBg
const char* agora::recording::RecordingConfig::defaultUserBg |
合流模式下,如果某用户没有视频流,就会显示该图片。
注解
- 仅支持本地 JPEG 文件。
- 该设置对 Agora Web SDK 的用户无效。
subscribeVideoUids
const char* agora::recording::RecordingConfig::subscribeVideoUids |
当 autoSubscribe 设为 false 时,你可设置此参数来指定 UID 进行录制。 该参数设为 null 则表示录制所有发流用户的视频。
subscribeAudioUids
const char* agora::recording::RecordingConfig::subscribeAudioUids |
当 autoSubscribe 设为 false 时,你可设置此参数来指定 UID 进行录制。 该参数设为 null 则表示录制所有发流用户的音频。
enableIntraRequest
bool agora::recording::RecordingConfig::enableIntraRequest |
enableIntraRequest
设为 false。- true:(默认)启用关键帧请求。发流端通过接收关键帧请求生成关键帧。启用后,单流模式下录制的视频文件播放时无法指定播放位置。
- false: 禁用关键帧请求,频道内的所有发流端均每 2 秒发送一次关键帧。禁用后,单流模式下录制的视频可指定播放位置。
注解
如发流端使用的是 Agora RTC SDK v2.9.2 及之前的版本,通信模式下设置该参数将无效,仅在直播模式下生效。
enableH265Support
bool agora::recording::RecordingConfig::enableH265Support |
- true: 支持录制 H.265 视频流。
- false: (默认)不支持录制 H.265 视频流。频道内的远端用户无法发 H.265 视频流。