Domain name for API request: trtc.tencentcloudapi.com.
In a TRTC room, there may be multiple audio and video streams concurrently active. You can use the MixTranscoding API to notify Tencent Cloud server to mix multiple video screens from the same room or multiple rooms together, and specify the position of each screen, while mixing multiple audio streams together. The final result is a single audio and video stream, which can be used for recording and live viewing. It also supports pushing this mixed audio and video stream back to the TRTC room.
The Cloud API MixTranscoding feature includes three interfaces:
You can achieve the following goals through this set of interfaces:
The following layout templates are currently supported. Dynamic layout templates (floating template, grid template, screen sharing template) only support a single TRTC room, while custom templates support mixing audio and video streams from multiple TRTC rooms. The specific descriptions are as follows:
When using the relay API, you may incur the following costs depending on the usage characteristics:
For MCU MixTranscoding fees, please refer to the documentation: Billing of MixTranscoding and Relay to CDN | Tencent Cloud.
For non-Tencent Cloud CDN relay fees, please refer to the documentation: Billing of MixTranscoding and Relay to CDN | Tencent Cloud.
Instructions for using parameters:
Usage Precautions:
A maximum of 20 requests can be initiated per second for this API.
The following request parameter list only provides API request parameters and some common parameters. For the complete common parameter list, see Common Request Parameters.
Parameter Name | Required | Type | Description |
---|---|---|---|
Action | Yes | String | Common Params. The value used for this API: StartPublishCdnStream. |
Version | Yes | String | Common Params. The value used for this API: 2019-07-22. |
Region | Yes | String | Common Params. For more information, please see the list of regions supported by the product. This API only supports: ap-guangzhou, ap-hongkong, ap-singapore. |
SdkAppId | Yes | Integer | The SDKAppID of the TRTC room whose streams are relayed. |
RoomId | Yes | String | The ID of the room whose streams are relayed (the main room). |
RoomIdType | Yes | Integer | The type of the RoomId parameter, which must be the same as the ID type of the room whose streams are relayed. 0: integer; 1: string. |
AgentParams | Yes | AgentParams | The information of the relaying robot in the room. |
WithTranscoding | Yes | Integer | Whether to transcode the streams. 0 : No. 1 : Yes. This parameter determines whether transcoding fees are charged. If it is 0 , streams will only be relayed, and no transcoding fees will be incurred. If it is 1 , streams will be transcoded before being relayed, and transcoding fees will be incurred. |
AudioParams | No | McuAudioParams | The audio encoding parameters. Because audio is always transcoded (no fees are incurred), this parameter is required when you start a relay task. |
VideoParams | No | McuVideoParams | The video encoding parameters for relaying. If you do not pass this parameter, only audio will be relayed. |
SingleSubscribeParams | No | SingleSubscribeParams | The information of a single stream relayed. When you relay a single stream, set WithTranscoding to 0. |
PublishCdnParams.N | No | Array of McuPublishCdnParam | The information of the CDNs to relay to. You need to specify at least one between this parameter and FeedBackRoomParams.N . |
SeiParams | No | McuSeiParams | The stream mixing SEI parameters. |
FeedBackRoomParams.N | No | Array of McuFeedBackRoomParams | The information of the room to which streams are relayed. Between this parameter and PublishCdnParams , you must specify at least one. Please note that relaying to a TRTC room is only supported in some SDK versions. For details, please contact technical support. |
Parameter Name | Type | Description |
---|---|---|
TaskId | String | The task ID, which is generated by the Tencent Cloud server. You need to pass in the task ID when making a request to update or stop a relaying task. |
RequestId | String | The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem. |
无
POST / HTTP/1.1
Host: trtc.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: StartPublishCdnStream
<Common request parameters>
{
"AgentParams": {
"MaxIdleTime": 30,
"UserSig": "eJw1zV8LgjAUBfCvInsO2dStGfQSQUb2pFJvsnLJJZW1LekPffdc6X08v8O5b5Snmd9LjRYeCnyMZt4vgUp2Fi7wB6vtuVRC207q0kpjSzIVTXUVSkE11EiEMeE8ZGw0*VCg5SCcDeRuBAutiwkLeRRwOo*nMajduy5O*gIaus9qel9vX*lJbHJmyDMxuKFFI27tsT*I1S6pl*jzBb*IOTE_",
"UserId": "trtc_partner_test_1"
},
"AudioParams": {
"AudioEncode": {
"SampleRate": 48000,
"Codec": 0,
"BitRate": 64,
"Channel": 2
}
},
"VideoParams": {
"VideoEncode": {
"Height": 720,
"Width": 1280,
"Fps": 15,
"BitRate": 1536,
"Gop": 2
},
"LayoutParams": {
"PureAudioHoldPlaceMode": 0,
"MixLayoutMode": 4,
"MixLayoutList": [
{
"LocationX": 0,
"LocationY": 0,
"UserMediaStream": {
"StreamType": 0,
"UserInfo": {
"RoomIdType": 0,
"RoomId": "295066",
"UserId": "Trtc_User_0"
}
},
"ZOrder": 0,
"ImageHeight": 720,
"ImageWidth": 640,
"RenderMode": 0
},
{
"LocationX": 640,
"LocationY": 0,
"UserMediaStream": {
"StreamType": 0,
"UserInfo": {
"RoomIdType": 0,
"RoomId": "295066",
"UserId": "Trtc_User_1"
}
},
"ZOrder": 0,
"ImageHeight": 720,
"ImageWidth": 640,
"RenderMode": 0
}
]
},
"BackGroundColor": "0xFF0000",
"WaterMarkList": [
{
"WaterMarkType": 0,
"WaterMarkImage": {
"LocationX": 64,
"LocationY": 64,
"WaterMarkHeight": 64,
"WaterMarkWidth": 64,
"WaterMarkUrl": "https://xkt-course-1304449343.cos.ap-beijing.myqcloud.com/test/mark/37f9eb62-ca72-430e-bfca-e700b59b20e0.png",
"ZOrder": 3
}
}
]
},
"PublishCdnParams": [
{
"PublishCdnUrl": "rtmp://3891.livepush.myqcloud.com/live/trtc_publishcdn_test1",
"IsTencentCdn": 1
}
],
"RoomIdType": 0,
"SdkAppId": 1400188366,
"WithTranscoding": 1,
"RoomId": "295066"
}
{
"Response": {
"TaskId": "-m97l2ZU7vxyBSmXYsRx1Xy9Kf4bVVfbbhSKC4K-4pycoZWKv542xbi139uTvGt1zAHoAQ..",
"RequestId": "b934c535-8d82-4f52-bd52-a1cbb043c4be"
}
}
无
POST / HTTP/1.1
Host: trtc.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: StartPublishCdnStream
<Common request parameters>
{
"AgentParams": {
"MaxIdleTime": 30,
"UserSig": "eJw1zV8LgjAUBfCvInsO2dStGfQSQUb2pFJvsnLJJZW1LekPffdc6X08v8O5b5Snmd9LjRYeCnyMZt4vgUp2Fi7wB6vtuVRC207q0kpjSzIVTXUVSkE11EiEMeE8ZGw0*VCg5SCcDeRuBAutiwkLeRRwOo*nMajduy5O*gIaus9qel9vX*lJbHJmyDMxuKFFI27tsT*I1S6pl*jzBb*IOTE_",
"UserId": "trtc_partner_test_1"
},
"AudioParams": {
"AudioEncode": {
"SampleRate": 48000,
"Codec": 0,
"BitRate": 64,
"Channel": 2
},
"SubscribeAudioList": [
{
"UserInfo": {
"RoomIdType": 0,
"RoomId": "295066",
"UserId": "Trtc_User_0"
}
},
{
"UserInfo": {
"RoomIdType": 0,
"RoomId": "295066",
"UserId": "Trtc_User_1"
}
}
]
},
"PublishCdnParams": [
{
"PublishCdnUrl": "rtmp://3891.livepush.myqcloud.com/live/trtc_publishcdn_test1",
"IsTencentCdn": 1
}
],
"RoomIdType": 0,
"SdkAppId": 1400188366,
"WithTranscoding": 1,
"RoomId": "295066"
}
{
"Response": {
"RequestId": "388014ec-a0b8-4b8f-86bc-1f467448f5f0",
"TaskId": "-m9lnV5U7nj4rkLBWMXF9n8-EohONCXbalWuLYK-4pycoZWQndibcqSVnrlqKF5om7EIDVk4awE."
}
}
无
POST / HTTP/1.1
Host: trtc.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: StartPublishCdnStream
<Common request parameters>
{
"AgentParams": {
"MaxIdleTime": 30,
"UserSig": "eJw1zV8LgjAUBfCvInsO2dStGfQSQUb2pFJvsnLJJZW1LekPffdc6X08v8O5b5Snmd9LjRYeCnyMZt4vgUp2Fi7wB6vtuVRC207q0kpjSzIVTXUVSkE11EiEMeE8ZGw0*VCg5SCcDeRuBAutiwkLeRRwOo*nMajduy5O*gIaus9qel9vX*lJbHJmyDMxuKFFI27tsT*I1S6pl*jzBb*IOTE_",
"UserId": "trtc_partner_test_1"
},
"AudioParams": {
"AudioEncode": {
"SampleRate": 48000,
"Codec": 0,
"BitRate": 64,
"Channel": 2
}
},
"VideoParams": {
"VideoEncode": {
"Height": 720,
"Width": 1280,
"Fps": 15,
"BitRate": 1536,
"Gop": 2
}
},
"SingleSubscribeParams": {
"UserMediaStream": {
"StreamType": 0,
"UserInfo": {
"RoomIdType": 0,
"RoomId": "295066",
"UserId": "Trtc_User_0"
}
}
},
"PublishCdnParams": [
{
"PublishCdnUrl": "rtmp://3891.livepush.myqcloud.com/live/trtc_publishcdn_test1",
"IsTencentCdn": 1
}
],
"RoomIdType": 0,
"SdkAppId": 1400188366,
"WithTranscoding": 0,
"RoomId": "295066"
}
{
"Response": {
"TaskId": "-m97l2ZU7tq6nEsHR89259B8aCDblqnbGhWKC4K-4pycoZWpyHnld1jC9aCD+EU7V8WRAQ..",
"RequestId": "f23d95bf-ddaf-4d0c-86c0-6bf50c74c0a0"
}
}
无
POST / HTTP/1.1
Host: trtc.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: StartPublishCdnStream
<Common request parameters>
{
"AgentParams": {
"MaxIdleTime": 30,
"UserSig": "eJw1zV8LgjAUBfCvInsO2dStGfQSQUb2pFJvsnLJJZW1LekPffdc6X08v8O5b5Snmd9LjRYeCnyMZt4vgUp2Fi7wB6vtuVRC207q0kpjSzIVTXUVSkE11EiEMeE8ZGw0*VCg5SCcDeRuBAutiwkLeRRwOo*nMajduy5O*gIaus9qel9vX*lJbHJmyDMxuKFFI27tsT*I1S6pl*jzBb*IOTE_",
"UserId": "trtc_partner_test_1"
},
"AudioParams": {
"AudioEncode": {
"SampleRate": 48000,
"Codec": 0,
"BitRate": 64,
"Channel": 2
}
},
"SingleSubscribeParams": {
"UserMediaStream": {
"StreamType": 0,
"UserInfo": {
"RoomIdType": 0,
"RoomId": "295066",
"UserId": "Trtc_User_0"
}
}
},
"PublishCdnParams": [
{
"PublishCdnUrl": "rtmp://3891.livepush.myqcloud.com/live/trtc_publishcdn_test1",
"IsTencentCdn": 1
}
],
"RoomIdType": 0,
"SdkAppId": 1400188366,
"WithTranscoding": 0,
"RoomId": "295066"
}
{
"Response": {
"TaskId": "-m97l2ZU7r57nZBesMa84KgzxhH0OBbbCRaKC4K-4pycoZW7yFPtusNuZOen1Ca0qtQQAQ..",
"RequestId": "ef089f8b-d0d1-4131-894d-4edd68d61605"
}
}
POST / HTTP/1.1
Host: trtc.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: StartPublishCdnStream
<Common request parameters>
{
"AgentParams": {
"MaxIdleTime": 30,
"UserSig": "eJw1zV8LgjAUBfCvInsO2dStGfQSQUb2pFJvsnLJJZW1LekPffdc6X08v8O5b5Snmd9LjRYeCnyMZt4vgUp2Fi7wB6vtuVRC207q0kpjSzIVTXUVSkE11EiEMeE8ZGw0*VCg5SCcDeRuBAutiwkLeRRwOo*nMajduy5O*gIaus9qel9vX*lJbHJmyDMxuKFFI27tsT*I1S6pl*jzBb*IOTE_",
"UserId": "trtc_partner_test_1"
},
"AudioParams": {
"AudioEncode": {
"SampleRate": 48000,
"Codec": 0,
"BitRate": 64,
"Channel": 2
}
},
"VideoParams": {
"VideoEncode": {
"Height": 720,
"Width": 1280,
"Fps": 15,
"BitRate": 1536,
"Gop": 2
},
"LayoutParams": {
"PureAudioHoldPlaceMode": 0,
"MixLayoutMode": 4,
"MixLayoutList": [
{
"LocationX": 0,
"LocationY": 0,
"UserMediaStream": {
"StreamType": 0,
"UserInfo": {
"RoomIdType": 0,
"RoomId": "295066",
"UserId": "Trtc_User_0"
}
},
"ZOrder": 0,
"ImageHeight": 720,
"ImageWidth": 640,
"RenderMode": 0
},
{
"LocationX": 640,
"LocationY": 0,
"UserMediaStream": {
"StreamType": 0,
"UserInfo": {
"RoomIdType": 0,
"RoomId": "295066",
"UserId": "Trtc_User_1"
}
},
"ZOrder": 0,
"ImageHeight": 720,
"ImageWidth": 640,
"RenderMode": 0
}
]
},
"BackGroundColor": "0xFF0000",
"WaterMarkList": [
{
"WaterMarkType": 0,
"WaterMarkImage": {
"LocationX": 64,
"LocationY": 64,
"WaterMarkHeight": 64,
"WaterMarkWidth": 64,
"WaterMarkUrl": "https://xkt-course-1304449343.cos.ap-beijing.myqcloud.com/test/mark/37f9eb62-ca72-430e-bfca-e700b59b20e0.png",
"ZOrder": 3
}
}
]
},
"FeedBackRoomParams": [
{
"RoomId": "630777",
"RoomIdType": 0,
"UserId": "trtc_partner_test_2",
"UserSig": "eJwtjEELgjAYhv-Ldy10m7mtQYcQOtklU6mLSFs1LVnzq4Tovwfa8Xmel-cD*zQLXsaDAhYQmI9stenQnu2o0eOpcrXHzvgKTY8V*8963dbOWQ2KLgihUkacTwXt3YCigpIlo0KyyZrBWW9ARZyQ-4O9gIJrYfK365M85PEw02HZPneNaJJbg4-1Nj6KQqZZacVhI1fw-QEkCzYe"
}
],
"RoomIdType": 0,
"SdkAppId": 1400188366,
"WithTranscoding": 1,
"RoomId": "295066"
}
{
"Response": {
"RequestId": "921e9cf6-b77c-4a7a-ab0e-c66a3e66fc59",
"TaskId": "-m9lnV5U7n7TwoLKSsii1JivUn7DLDDbP16uLYK-4pycoZWQndib8GQJZEMMXFyOHe9Ds6WfxAE."
}
}
无
POST / HTTP/1.1
Host: trtc.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: StartPublishCdnStream
<Common request parameters>
{
"AgentParams": {
"MaxIdleTime": 30,
"UserSig": "eJw1zV8LgjAUBfCvInsO2dStGfQSQUb2pFJvsnLJJZW1LekPffdc6X08v8O5b5Snmd9LjRYeCnyMZt4vgUp2Fi7wB6vtuVRC207q0kpjSzIVTXUVSkE11EiEMeE8ZGw0*VCg5SCcDeRuBAutiwkLeRRwOo*nMajduy5O*gIaus9qel9vX*lJbHJmyDMxuKFFI27tsT*I1S6pl*jzBb*IOTE_",
"UserId": "trtc_partner_test_1"
},
"AudioParams": {
"AudioEncode": {
"SampleRate": 48000,
"Codec": 0,
"BitRate": 64,
"Channel": 2
}
},
"VideoParams": {
"VideoEncode": {
"Height": 720,
"Width": 1280,
"Fps": 15,
"BitRate": 1536,
"Gop": 2
},
"LayoutParams": {
"PureAudioHoldPlaceMode": 0,
"MixLayoutMode": 4,
"MixLayoutList": [
{
"LocationX": 0,
"LocationY": 0,
"UserMediaStream": {
"StreamType": 0,
"UserInfo": {
"RoomIdType": 0,
"RoomId": "295066",
"UserId": "Trtc_User_0"
}
},
"ZOrder": 0,
"ImageHeight": 720,
"ImageWidth": 640,
"RenderMode": 0
},
{
"LocationX": 640,
"LocationY": 0,
"UserMediaStream": {
"StreamType": 0,
"UserInfo": {
"RoomIdType": 0,
"RoomId": "295066",
"UserId": "Trtc_User_1"
}
},
"ZOrder": 0,
"ImageHeight": 720,
"ImageWidth": 640,
"RenderMode": 0
}
]
},
"BackGroundColor": "0xFF0000",
"WaterMarkList": [
{
"WaterMarkType": 0,
"WaterMarkImage": {
"LocationX": 64,
"LocationY": 64,
"WaterMarkHeight": 64,
"WaterMarkWidth": 64,
"WaterMarkUrl": "https://xkt-course-1304449343.cos.ap-beijing.myqcloud.com/test/mark/37f9eb62-ca72-430e-bfca-e700b59b20e0.png",
"ZOrder": 3
}
}
]
},
"SeiParams": {
"LayoutVolume": {
"AppData": "layout_sei_test",
"PayloadType": 100,
"Interval": 1000,
"FollowIdr": 1
}
},
"PublishCdnParams": [
{
"PublishCdnUrl": "rtmp://3891.livepush.myqcloud.com/live/trtc_publishcdn_test1",
"IsTencentCdn": 1
}
],
"RoomIdType": 0,
"SdkAppId": 1400188366,
"WithTranscoding": 1,
"RoomId": "295066"
}
{
"Response": {
"RequestId": "6dfc18cc-2123-4a11-9591-f1e873fbbd65",
"TaskId": "-m9lnV5U7nzo2Xwh48Dc-YCDrR5Bk8DbJ1WrLYK-4pycoZWQndibrNig9cq-7ljX4SenbKWlZAE."
}
}
TencentCloud API 3.0 integrates SDKs that support various programming languages to make it easier for you to call APIs.
The following only lists the error codes related to the API business logic. For other error codes, see Common Error Codes.
Error Code | Description |
---|---|
AuthFailure | CAM signature/authentication error. |
AuthFailure.UnRealNameAuthenticated | Identity verification has not been completed, so this operation is not allowed. |
AuthFailure.UnauthorizedOperation | CAM authentication failed. |
AuthFailure.UnsupportedOperation | Unsupported operation. |
FailedOperation | Operation failed. |
FailedOperation.RestrictedConcurrency | Maximum number of concurrent on-cloud recording tasks reached. Contact us to raise the limit. |
InternalError | Internal error. |
InvalidParameter | Parameter error. |
InvalidParameter.SdkAppId | SdkAppId is incorrect. |
MissingParameter | Missing parameter. |
ResourceNotFound | The resource does not exist. |
UnsupportedOperation | Unsupported operation. |
문제 해결에 도움이 되었나요?