本文介绍如何调用服务端 API 接口,将指定的单路输入流,输出为不同分辨率、码率及帧率的视频流。
“客户端”基于转码模板触发的单流转码介绍,请参考 单流转码;“服务端”的相关回调,请参考 单流转码开始回调 和 单流转码停止回调。
在实现单流转码之前,请确保:
请求方法:POST
使用 POST 请求方法传递参数时:
请求地址:https://rtc-api.zego.im/?Action=StartCloudTranscode
传输协议:HTTPS
调用频率限制:100 次/秒
请求示例:
https://rtc-api.zego.im/?Action=StartCloudTranscode
&AppId=1234567890
&SignatureNonce=15215528852396
&Timestamp=1234567890
&Signature=7a2c0f11145fb760d607a07b54825013
&SignatureVersion=2.0
&IsTest=false
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表请参考 调用方式 中的 “2.1 公共请求参数”。
此接口中只有部分参数在开始混流后支持动态更新,未标注的则不支持动态更新,详情请参考下表中的参数描述。
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
TaskId |
String |
是 |
任务 ID,单流转码任务的唯一标识,由开发者自定义。 重复调用“开始单流转码”接口,传入相同的 TaskId,可以直接更新转码任务信息。 |
UserId |
String |
是 |
发起转码任务的用户 ID,由开发者自定义。同一个 TaskId 任务的用户 ID 需要一致,不同 TaskId 任务的用户 ID 需要保持不同。 通过 UserId 可以实现转码任务的用户归属,也就是该用户才能更新或者停止对应 TaskId 的转码任务,该功能需要联系 ZEGO 技术支持开通。 |
TranscodeInput |
Object |
是 |
转码任务的输入流设置。 |
StreamId |
String |
是 |
转码输入流 ID,该流 ID 来自 RTC 服务,仅支持数字、英文字符和 "-"、"_"。 StreamId 和 StreamUrl 二者取其一即可,若同时填写 StreamId 和 StreamUrl,则 StreamUrl 生效。 |
StreamUrl |
String |
是 |
转码输入流 URL,支持 RTMP 协议。 StreamId 和 StreamUrl 二者取其一即可,若同时填写 StreamId 和 StreamUrl,则 StreamUrl 生效。 |
TranscodeOutput |
Array of Object |
是 |
转码任务的输出流信息。 |
StreamId |
String |
是 |
输出流 ID。
StreamId 和 StreamUrl 二者取其一即可,若填写了 StreamId,则 StreamUrl 不生效。 |
StreamUrl |
String |
是 |
仅支持 RTMP 协议,表示转码输出至 CDN 直播服务,观众可以从 CDN 直播拉转码流。 StreamId 和 StreamUrl 二者取其一即可,若填写了 StreamId,则 StreamUrl 不生效。 |
TemplateId |
Int |
是 |
单流转码输出模板 ID,ZEGO 提供了如下模板:
请点击 单流转码的预设输出模板,查看具体的预设模板配置参数。 |
TemplateConfig |
Object |
否 |
自定义设置输出流的视频参数,TemplateId 取值为 4 时,该参数必填。 |
VideoEncId |
Int |
否 |
输出流的视频编码格式。
|
Fps |
Int |
否 |
视频帧率,取值必须大于或等于 0。
目前暂时不支持输出不同帧率的转码流,各个输出流的帧率设置必须保持一致。 |
GOP |
Int |
否 |
转码输出流的关键帧间隔,取值必须大于 0,默认值为 2,单位:秒。 如果需要自定义,请联系 ZEGO 技术支持开启支持自定义。 |
ShortEdgeAdaption |
Int |
否 |
输出流的分辨率是否按照设置的 Width 作为短边,自适应横竖屏。
|
Width |
Int |
否 |
宽,范围为 [0, 3000],数值必须是 2 的倍数。
支持转码过程中实时更新。再次调用本接口,即可动态更新该参数。 |
Height |
Int |
否 |
高,范围为 [0, 3000],数值必须是 2 的倍数。
支持转码过程中实时更新。再次调用本接口,即可动态更新该参数。 |
VideoBitrate |
Int |
否 |
视频码率,取值必须大于或等于 0,单位为 bps。
|
LowBitrateHD |
Int |
否 |
是否开启“高清低码”功能。
目前“高清低码”功能需要联系 ZEGO 技术支持开通权限,且仅在 VideoEncId 取值为 3(H265)时生效。 |
Sequence |
Int |
否 |
转码任务的序列号,用于保证时序,同个任务的参数修改需要保证序列号的递增。 |
预设模版(TemplateId 取值为 0、1、2、3)的各项参数配置如下:
模版 ID | 分辨率(短边) | 码率(kbps) | 其他配置 |
---|---|---|---|
0(360P) |
360 |
600 |
|
1(540P) |
540 |
1000 |
|
2(720P) |
720 |
1500 |
|
3(1080P) |
1080 |
2000 |
请求参数示例如下:
{
"TaskId": "2213699902971205739",
"UserId": "456",
"TranscodeInput": {
"StreamId": "stream1"
},
"TranscodeOutput": [
{
"StreamId": "stream3",
"TemplateId": 3
}
]
}
参数 | 类型 | 描述 |
---|---|---|
Code |
Number |
返回码。 |
Message |
String |
操作结果描述。 |
RequestId |
String |
请求 ID。 |
响应示例如下:
{
"Code": 0,
"Message": "success",
"RequestId": "8472822294336370476"
}
以下仅列出了常见的接口业务逻辑相关的返回码,完整返回码请参考 全局返回码。
返回码 | 说明 | 处理建议 |
---|---|---|
110200002 | 输入参数错误。 | 请参考 Message 信息处理。 |
110200150 | 单流转码的输入流不存在。 | 请确认输入流 StreamId 或 StreamUrl 是否存在。 |
110200151 | 单流转码任务失败。 | 请重试,或联系 ZEGO 技术支持处理。 |
联系我们
文档反馈