如果你已使用 StartPushPublicStream 发布了一路公共流,你可以调用 UpdatePublicStreamParam 来更新任务的部分参数。
你可以调用 UpdatePublicStreamParam 接口,覆盖此前在 StartPushPublicStream 或 UpdatePublicStreamParam 中设定的参数。
如果你在调用 UpdatePublicStreamParam 时,没有传入对应的参数值,那么,这部分参数将被更新为参数的默认值。
例如,调用 UpdatePublicStreamParam 时,没有传入 Layout 参数,则公共流的布局模式将被更新为自动布局,即 Layout 的默认值。
如果你已使用 StartPushPublicStream 发布了一路公共流。
关于调用接口的服务地址、通信协议、字符编码和签名机制,参看调用 OpenAPI。
请求频率:QPS 不得超过 150。
下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数。
| 参数 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| Action | String | 是 | UpdatePublicStreamParam | 接口名称。当前 API 的名称为 UpdatePublicStreamParam。 |
| Version | String | 是 | 2023-11-01 | 接口版本。当前 API 的版本为 2023-11-01。 |
| 参数 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| AppId | String | 是 | Your_AppId | 你的音视频应用的唯一标志 |
| BusinessId | String | 否 | Your_BusinessId | 业务标识 |
| PublicStreamId | String | 是 | Your_PublicStreamId | 公共流 ID。 |
TranscodeMode | Integer | 否 |
| 公共流处理模式。
|
| TargetStreams | Array of PublicStream | 是 | - | 为公共流指定单路或多路媒体流及对应参数,Stream 数组。最高支持 17 路。 |
| ExcludeStreams | Array of PublicStream | 否 | - | 你可以通过本参数排除掉不需要包含在公共流中的音视频流,即黑名单。参数默认为空。黑名单中的流不得超过 17 路。此参数中的 stream 不应和 TargetStreams 中重复。 |
| Layout | Object of PublicLayout | 否 | - | 房间内多路流合为一路时的布局参数 |
| Encode | Object of PublicEncode | 否 | - | 媒体编码参数 |
| Control | Object of PublicControl | 否 | - | 控制选项。 |
| 参数 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
UserId | String | 否 |
| 媒体流的发布方的用户 ID。 |
StreamType | Integer | 否 |
| 流类型。默认值为
|
Index | Integer | 否 |
| 当选择自定义布局模式时,此字段必填。标记同一路公共流中不同的媒体流。 |
| RoomId | String | 是 | Your_RoomId | 发布公共流的用户所在的房间 ID |
MediaType | String | 否 |
| 流的媒体类型。默认值为
|
| 参数 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
LayoutMode | Integer | 是 |
| 布局模式。默认值为 |
| VerticalLayout | Object of VerticalLayout | 否 | 垂直布局参数 | |
| CustomLayout | Object of PublicCustomLayout | 否 | 自定义布局参数 |
| 参数 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| VideoConfig | Object of VideoConfig | 否 | 视频编码配置 |
| 参数 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| MaxIdleTime | Integer | 否 | 180 | 任务的空闲超时时间,超过此时间后,任务自动终止。单位为秒。取值范围为 [10, 86400],默认值为 180。只在调用 StartPushPublicStream 时有效。 |
DataMsg | String | 否 |
| 插入公共流的自定义信息,可用于随流信息同步,长度不超过 4 kB。 |
UserCaptureStatsMode | Boolean | 否 |
| 是否开启房间用户采集状态回调,仅在纯音频时触发。开启后会通过
|
VolumeIndicationMode | Boolean | 否 |
| 是否开启音量指示模式。
|
StreamPublishStatsMode | Boolean | 否 |
| 是否开启房间用户发布状态回调。开启后会通过
|
| UserCaptureStatsInterval | Integer | 否 | 2000 | 房间用户采集状态回调间隔,仅在纯音频时触发。单位为毫秒,默认值为 2000,取值范围为 [1000,2147483647]。 |
| VolumeIndicationInterval | Integer | 否 | 2000 | 音量指示的回调间隔。单位为毫秒,最小值为 100,默认值为 2000。 VideoConfig.FrameRate 大于 10 fps 时,回调间隔才能达到 100ms。 |
| StreamPublishStatsInterval | Integer | 否 | 2000 | 房间用户发布状态回调间隔,仅在纯音频时触发。单位为毫秒,默认值为 2000,取值范围为 [1000,2147483647]。 |
| 参数 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
MainStream | Object of PublicStream | 否 | 指定在大窗口中显示的流及相关信息 |
| 参数 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| Regions | Array of PublicCustomRegion | 是 | 自定义布局下,多路视频配置 | |
FrameInterpolationMode | Integer | 否 |
| 选择补帧模式。默认值为
|
BackgroundColor | String | 否 |
| 背整体屏幕(画布)的背景色,格式为 #RGB(16进制),默认值为 |
BackgroundImage | String | 否 |
| 背景图片的 URL。长度最大为 1024 byte。可以传入的图片的格式包括: |
| 参数 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| Width | Integer | 否 | 640 | 输出画面的宽度。默认值为 640,范围为 [16, **1920**],必须是偶数。 |
| Height | Integer | 否 | 480 | 输出画面的高度,默认值为 480。范围为 [16, 1920],必须是偶数。 |
| FrameRate | Integer | 否 | 15 | 输出视频帧率。默认为 15,取值范围为 [1,60]。单位 fps |
| Bitrate | Integer | 否 | 256 | 最高输出视频码率。取值范围 [0,10000],单位为 Kbps,默认值0,为0时表示自适应码率。 |
VideoCodec | Integer | 否 |
| 视频编码协议。可取值为
|
| 参数 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
StreamIndex | Integer | 是 |
| 流标识。 |
| LocationX | Float | 否 | 0 | 视频流对应区域左上角的横坐标相对整体画面的比例,取值的范围为 [0.0, 1.0),默认值为 0。 |
| LocationY | Float | 否 | 0 | 视频流对应区域左上角的纵坐标相对整体画面的比例,取值的范围为 [0.0, 1.0),默认值为 0。 |
| WidthProportion | Float | 是 | 0.5 | 视频流对应区域宽度相对整体画面的比例,取值的范围为 (0.0, 1.0]。 |
| HeightProportion | Float | 是 | 0.5 | 视频流对应区域高度相对整体画面的比例,取值的范围为 (0.0, 1.0]。 |
| ZOrder | Float | 否 | 0 | 当画面有重叠时,使用此参数设置指定画面的图层顺序,取值范围为 [0, 100]:0 表示该区域图像位于最下层,100 表示该区域图像位于最上层, 默认值为 0。 |
| Alpha | Float | 否 | 1.0 | 画面的透明度,取值范围为 (0.0, 1.0]。0.0 表示完全透明,1.0 表示完全不透明,默认值为 1.0。 |
RenderMode | Integer | 否 |
| 画面的渲染模式,值的范围为
|
| AlternateImage | String | 否 | https://xx.com/img/1.png | 占位图片的 url |
SourceCrop | Object of SourceCrop | 否 | 源流剪切功能。公共流功能下, 注意 如果你填写了 |
| 参数 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| LocationX | Float | 否 | 0 | 裁剪后得到的视频帧左上角的横坐标相对裁剪前整体画面的比例,取值的范围为 [0.0, 1.0)。默认值为 0.0。 |
| LocationY | Float | 否 | 0 | 裁剪后得到的视频帧左上角的纵坐标相对裁剪前整体画面的比例,取值的范围为 [0.0, 1.0)。默认值为 0.0。 |
| WidthProportion | Float | 否 | 0.5 | 裁剪后得到的视频帧宽度相对裁剪前整体画面宽度的比例,取值范围为 (0.0, 1.0]。默认值为 1.0。 |
| HeightProportion | Float | 否 | 0.5 | 裁剪后得到的视频帧高度相对裁剪前整体画面宽度的比例,取值范围为 (0.0, 1.0]。默认值为 1.0。 |
本接口无特有的返回参数。公共返回参数请见返回结构。
其中返回值 Result 仅在请求成功时返回 ok,失败时为空。
POST https://rtc.volcengineapi.com?Action=UpdatePublicStreamParam&Version=2023-11-01
{
"AppId": "Your_AppId",
"BusinessId": "Your_BusinessId",
"TranscodeMode": 0,
"TargetStreams": [
{
"Index": 0,
"UserId": "Your_UserId_3",
"RoomId": "Your_RoomId",
"StreamType": 1,
"MediaType": 0
},
{
"Index": 1,
"UserId": "Your_UserId_3",
"RoomId": "Your_RoomId",
"StreamType": 1,
"MediaType": 0
}
],
"Encode": {
"VideoConfig": {
"Width": 640,
"Height": 480,
"FrameRate": 15,
"Bitrate": 256
}
},
"Layout": {
"LayoutMode": 2,
"CustomLayout": {
"Regions": [
{
"StreamIndex": 0,
"LocationX": 0,
"LocationY": 0,
"WidthProportion": 0.5,
"HeightProportion": 1,
"ZOrder": 0,
"Alpha": 1,
"RenderMode": 0
},
{
"StreamIndex": 1,
"LocationX": 0.5,
"LocationY": 0,
"WidthProportion": 0.5,
"HeightProportion": 1,
"ZOrder": 1,
"Alpha": 1,
"RenderMode": 1,
"AlternateImage": "https://xx.com/img/1.jpg",
"SourceCrop": {
"LocationX": 500,
"LocationY": 0,
"WidthProportion": 0.5,
"HeightProportion": 0.5
}
}
],
"FrameInterpolationMode": 0,
"BackgroundColor": "#000000",
"BackgroundImage": "https://xx.com/img/1.jpg"
}
},
"Control": {
"DataMsg": "CamInfo"
}
}
json{
"Result": "ok",
"ResponseMetadata": {
"RequestId": "Your_RequestId",
"Action": "UpdatePublicStreamParam",
"Version": "2023-11-01",
"Service": "rtc",
"Region": "cn-north-1"
}
}
json您可访问公共错误码,获取更多错误码信息。