获取云端转码资源
更新时间不可用
获取用于创建云端转码任务的 builderToken。
https://api.sd-rtn.com/v1/projects/{appId}/rtsc/cloud-transcoder/builderTokensAcquire 方法用于在开始云端转码前获取云端转码资源。
注意
- 调用成功后,你可以在响应包体中得到一个
builderToken。一个builderToken仅可用于一次云端转码任务,同一时间仅允许一个builderToken运行任务。 builderToken用于创建云端转码的有效期为 5 分钟。为确保成功进行云端转码,建议你在每次Acquire请求获取到builderToken后的 2 秒内立即发起对应的Create请求。- 成功创建后,如果需要调用
Update/Delete,请求中传入的builderToken需要和创建云端转码时传入的builderToken一致。 - 在批量获取
builderToken后进行批量Create请求可能导致请求失败。
鉴权
appIdstring声网为每个开发者提供的 App ID。在声网控制台创建一个项目后即可得到一个 App ID。一个 App ID 是一个项目的唯一标识。
Content-Typestringapplication/json
serviceTypestring服务类型,此处为 "cloudTranscoderV2"。
Cloud transcoder 服务配置项。
idleTimeoutnumber空闲超时时间(秒)。空闲指 Cloud transcoder 处理的音视频流所对应的所有主播均已离开频道。当没有输入超过设置的时间(秒)后,Cloud transcoder 会停止工作并自动销毁,以节省资源。
streamProcessModestringCloud transcoder 的工作模式,如果不指定此参数,就是合图模式。可以指定类型如下:
"heterogeneous-single": 异构单流模式,也就是输入流和输出流的类型可以不同,也可以相同,当前支持的流类型是 RTC 流和 CDN 流。"single": RTC 流 Relay 模式,即把源频道内主播的音视频数据和信令一同 Relay 到目的频道。
注意
- 如果
streamProcessMode设置为"heterogeneous-single"或者"single",那audioInputs或者videoInputs列表最多只能包含一项。 - 如果需要混音、合图或混音合图,则无需设置
streamProcessMode。
音频输入源列表,支持 RTC 音频流和 CDN 音频流两种类型。如果 audioInputs 包含多个输入音频源,则表示需要混音。
注意
streamUrl 和 rtc 两者中必须填一个。
streamUrlstring音频源流的 URL。
注意
在音频输入源是 CDN 场景下,该参数为必填。
volumenumber音频源流的音量。
说明
仅在音频输入源是 CDN 场景下设置。
repeatobject媒体流播放重复次数:
1:(默认)播放媒体流一次。-1:循环播放媒体流。n:自定义播放媒体流次数。不可设置为 0。
说明
仅在音频输入源是 CDN 场景下设置。
在音频输入源是 RTC 场景下,该对象为必填。
rtcChannelstring频道名称,用于指定来源音频流来自那个频道。目前仅支持订阅单个频道的音视频源,音频源和视频源所属频道必须相同。
rtcUidnumber音频输入源所对应的 UID。在 RTC 系统中每个主播在频道内身份的唯一标识。
rtcTokenstringCloud transcoder 在进入待转码视频源所属 RTC 频道时所需设置的 Token。该值可用于确保频道安全,避免异常用户扰乱频道内其他用户。详见使用 Token 鉴权。
注意
Cloud transcoder 在待转码音视频源所属 RTC 频道内的 UID 为声网随机分配,因此,生成 Token 时,你使用的 uid 必须为 0。
视频输入源列表,支持 RTC 视频流和 CDN 视频流两种类型。如果 videoInputs 包含多个输入视频源,则表示需要合图。
注意
streamUrl 和 rtc 两者中必须填一个。
streamUrlstring视频源流的 URL。
注意
在视频输入源是 CDN 场景下,该参数为必填。
repeatobject媒体流播放重复次数:
1:(默认)播放媒体流一次。-1:循环播放媒体流。n:自定义播放媒体流次数。不可设置为 0。
说明
仅在音频输入源是 CDN 场景下设置。
在视频输入源是 RTC 场景下,该对象为必填。
rtcChannelstring频道名称,用于指定来源视频流来自哪个频道。
rtcUidnumber视频输入源所对应的 UID。在 RTC 系统中每个主播在频道内身份的唯一标识。
rtcTokenstringCloud transcoder 在进入待转码视频源所属 RTC 频道时所需设置的 Token。该值可用于确保频道安全,避免异常用户扰乱频道内其他用户。详见使用 Token 鉴权。
注意
Cloud transcoder 在待转码音视频源所属 RTC 频道内的 UID 为声网随机分配,因此,生成 Token 时,你使用的 uid 必须为 0。
placeholderImageUrlstring用户离线时占位图片的 URL。必须为合法 URL,且包含 jpg 或 png 后缀。
视频流画面在其画布上布局的位置和大小信息。
注意
如果需要合图,那 videoInputs 列表中的每一项都要设置 region 字段,指定其在输出画布中的位置,要保证不能超过画布大小。
xnumber画面在画布上的 x 坐标 (px)。以画布左上角为原点,x 坐标为画面左上角相对于原点的横向位移。
ynumber画面在画布上的 y 坐标 (px)。以画布左上角为原点,y 坐标为画面左上角相对于原点的纵向位移。
widthnumber画面的宽度 (px)。
heightnumber画面的高度 (px)。
zOrdernumber主播画面的图层编号。2 代表占位图图层所在的上面一层。100 代表最上层的图层。
输出画布。
widthnumber画布的宽度 (px)。
heightnumber画布的高度 (px)。取值范围为 [120,3840]。
colornumber画布的背景色。RGB 颜色值,以十进制数表示。如 0 代表黑色,255 代表蓝色。
backgroundImagestring画布背景图。必须为合法 URL,且包含 jpg 或 png 后缀。
说明
如果不传值,则没有画布背景图。
imageUrlstring水印图片的 URL。必须为合法 URL,且包含 jpg 或 png 后缀。
xnumber水印在画布上的 x 坐标 (px)。以画布左上角为原点,x 坐标为画面左上角相对于原点的横向位移。
ynumber水印在画布上的 y 坐标 (px)。以画布左上角为原点,y 坐标为画面左上角相对于原点的纵向位移。
widthnumber水印的宽度 (px)。
heightnumber水印的高度 (px)。
zOrdernumber水印的图层编号。0 代表最下层的图层。100 代表最上层的图层。
服务配置的输出设置,可选择输出到 RTC 频道或者 CDN 地址。
注意
streamUrl 和 rtc 两者中必须填一个。
streamUrlstringCDN 推流地址。
注意
在输出到 CDN 推流地址场景中,该参数为必填。
在输出到 RTC 场景中,该对象为必填。
rtcTokenstringCloud transcoder 在进入输出音视频流所属 RTC 频道时所需设置的 Token。该值可用于确保频道安全,避免异常用户扰乱频道内其他用户。详见使用 Token 鉴权。
注意
Cloud transcoder 在转码输出音视频流所属 RTC 频道内的 UID 为你指定的 outputs.rtc.rtcUid,因此,生成 Token 时,你使用的 uid 必须和 outputs.rtc.rtcUid 一致。
rtcChannelstring转码输出的音视频流所属的 RTC 频道名。
rtcUidnumberCloud transcoder 在转码输出音视频流所属 RTC 频道内的 UID。RTC 频道内不允许存在相同的 UID,因此,请确保该值与频道内其他用户 UID 不同。
输出音频编码参数。默认值: AUDIO_PROFILE_DEFAULT。
profileTypestring转码输出的音频属性:
"AUDIO_PROFILE_DEFAULT":48 kHz 采样率,音乐编码,单声道,编码码率最大值为 64 Kbps。"AUDIO_PROFILE_SPEECH_STANDARD":32 kHz 采样率,语音编码,单声道,编码码率最大值为 18 Kbps。"AUDIO_PROFILE_MUSIC_STANDARD": 48 KHz 采样率,音乐编码,单声道,编码码率最大值为 64 Kbps。"AUDIO_PROFILE_MUSIC_STANDARD_STEREO":48 KHz 采样率,音乐编码,双声道,编码码率最大值为 80 Kbps。"AUDIO_PROFILE_MUSIC_HIGH_QUALITY":48 KHz 采样率,音乐编码,单声道,编码码率最大值为 96 Kbps。"AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO":48 KHz 采样率,音乐编码,双声道,编码码率最大值为 128 Kbps。
输出视频的编码参数。
注意
支持的最大转码分辨率为 1080p (1920 x 1080 px)。
widthnumber转码输出视频的宽度 (px)。
heightnumber转码输出视频的高度 (px)。
bitratenumber转码输出视频的码率。
codecstring转码输出视频的 codec。取值包括:
"H264":标准 H.264 编码。"VP8":标准 VP8 编码。
fpsnumber转码输出视频的帧率 (fps)。
modestring可以设为 "RAW",表示输出视频不转码,即保持输入视频的编码格式不变。
注意
- 如果输出的视频转码,请勿设置该字段。
"RAW"模式下,videoInputs中设置的输入数量只能为 1。
预留字段。
预留字段。
预留字段。
uidVideoLayoutboolean预留字段。
预留字段。
typeinteger预留字段。
instanceIdstring用户指定的实例 ID。长度必须在 64 个字符以内,支持的字符集范围为:
- 所有小写英文字母(a-z)
- 所有大写英文字母(A-Z)
- 数字 0-9
- "-", "_"
注意
一个 instanceId 可以生成多个 builderToken,但同一时间仅允许一个 builderToken 运行任务。
响应
请求示例
curl --request POST \
--url "https://api.sd-rtn.com/v1/projects/:appId/rtsc/cloud-transcoder/builderTokens" \
--header 'Authorization: Basic <credentials>' \
-H 'Content-Type: application/json' \
-d '{
"instanceId": "abc13328",
"services": {
"cloudTranscoder": {
"serviceType": "cloudTranscoderV2",
"config": {
"transcoder": {
"idleTimeout": 300,
"audioInputs": [
{
"rtc": {
"rtcChannel": "test01",
"rtcUid": 123,
"rtcToken": "aab8b8f5a8cd4469a63042fcfafe7***"
}
},
{
"rtc": {
"rtcChannel": "test01",
"rtcUid": 456,
"rtcToken": "aab8b8f5a8cd4469a63042fcfafe7***"
}
}
],
"canvas": {
"width": 960,
"height": 480,
"color": 0,
"backgroundImage": "https://web-cdn.agora.io/website-files/images/new-home-2-banne-online-karaoke-bg.jpg",
"fillMode": "FIT"
},
"waterMarks": [
{
"imageUrl": "https://web-cdn.agora.io/website-files/images/advantage-interactive-live-streaming.png",
"region": {
"x": 0,
"y": 0,
"width": 100,
"height": 100,
"zOrder": 50
}
}
],
"videoInputs": [
{
"rtc": {
"rtcChannel": "test01",
"rtcUid": 123,
"rtcToken": "aab8b8f5a8cd4469a63042fcfafe7***"
},
"placeholderImageUrl": "https://web-cdn.agora.io/website-files/images/new-home-2-banner-realtime-bg.jpg",
"region": {
"x": 0,
"y": 0,
"width": 320,
"height": 360,
"zOrder": 2
}
},
{
"rtc": {
"rtcChannel": "test01",
"rtcUid": 456,
"rtcToken": "aab8b8f5a8cd4469a63042fcfafe7***"
},
"region": {
"x": 320,
"y": 0,
"width": 320,
"height": 320,
"zOrder": 2
}
}
],
"outputs": [
{
"rtc": {
"rtcChannel": "test02",
"rtcUid": 1000,
"rtcToken": "aab8b8f5a8cd4469a63042fcfafe7***"
},
"audioOption": {
"profileType": "AUDIO_PROFILE_MUSIC_STANDARD"
},
"videoOption": {
"fps": 30,
"codec": "H264",
"bitrate": 800,
"width": 960,
"height": 480,
"lowBitrateHighQuality": false
}
}
]
}
}
}
}
}'响应示例
{
"createTs": 1661324606,
"instanceId": "abc13328",
"tokenName": "nUwUbQf9Zg6tsgtLslGnDg0lk8RYaUE0***"
}