調用StartRecordTask錄制視頻任務。

使用說明

QPS限制

本接口的單用戶QPS限制為500次/秒。超過限制,API調用會被限流,這可能會影響您的業務,請合理調用。更多信息,請參見QPS限制

調試

您可以在OpenAPI Explorer中直接運行該接口,免去您計算簽名的困擾。運行成功后,OpenAPI Explorer可以自動生成SDK代碼示例。

請求參數

名稱 類型 是否必選 示例值 描述
Action String StartRecordTask

系統規定參數。取值:StartRecordTask。

SubSpecUsers.N String userID

指定該任務訂閱的用戶列表,默認訂閱頻道內全部用戶,N表示的是數組的下標,取值范圍:1~16。

說明 N需要從1開始并從小到大,不能中斷,要連續。
SubSpecAudioUsers.N String audioUserID

指定訂閱房間里有哪些用戶音頻流(輸入allStream表示混所有人音頻流)。N表示的是數組的下標,取值范圍:1~16。

說明 N需要從1開始并從小到大,不能中斷,要連續。
SubSpecShareScreenUsers.N String videoUserID

指定訂閱房間里有哪些用戶屏幕共享流(輸入allStream表示混所有人屏幕共享流)。N表示的是數組的下標,取值范圍:1~16。

說明 N需要從1開始并從小到大,不能中斷,要連續。
SubSpecCameraUsers.N String cameraUserID

指定訂閱房間里有哪些用戶攝像頭流(輸入allStream表示混所有人攝像頭流)。N表示的是數組的下標,取值范圍:1~16。

說明 N需要從1開始并從小到大,不能中斷,要連續。
UnsubSpecAudioUsers.N String audioUserID2

指定非訂閱房間里有哪些用戶音頻流(輸入allStream表示混所有人音頻流)。N表示的是數組的下標,取值范圍:1~16。

說明 N需要從1開始并從小到大,不能中斷,要連續。
UnsubSpecShareScreenUsers.N String videoUserID2

指定非訂閱房間里有哪些用戶屏幕共享流(輸入allStream表示混所有人屏幕共享流)。N表示的是數組的下標,取值范圍:1~16。

說明 N需要從1開始并從小到大,不能中斷,要連續。
UnsubSpecCameraUsers.N String cameraUserID2

指定非訂閱房間里有哪些用戶攝像頭流(輸入allStream表示混所有人攝像頭流)。N表示的是數組的下標,取值范圍:1~16。

說明 N需要從1開始并從小到大,不能中斷,要連續。
UserPanes.N.Images.N.Width Float 0.2456

窗格寬,歸一化百分比。

UserPanes.N.Images.N.Height Float 0.2456

窗格高,歸一化百分比。

UserPanes.N.Images.N.Y Float 0.7576

坐標Y,歸一化百分比。

UserPanes.N.Images.N.Url String https://www.example.com/image.jpg

圖片的HTTP或HTTPS地址。

UserPanes.N.Images.N.Display Integer 1

圖片顯示,取值:

  • 0(None):不顯示。
  • 1(Always):總是顯示。
  • 2(Backup):當前用戶無視頻流時顯示。
UserPanes.N.Images.N.ZOrder Integer 0

疊放順序,0為最底層,1層在0層之上,以此類推。

UserPanes.N.Images.N.X Float 0.7576

坐標X,歸一化百分比。

UserPanes.N.UserId String TestId

對應布局框格的用戶ID。N的取值:1~16。

UserPanes.N.Texts.N.FontType Integer 0

字體類型。取值:

  • 0(默認):NOTO_SERIF_CJKSC_REGULAR。
  • 1:ALIBABA_PUHUITI_REGULAR。
  • 2:ALIBABA_PUHUITI_BOLD。
  • 3:ALIBABA_PUHUITI_Heavy。
  • 4:ALIBABA_PUHUITI_LIGHT。
  • 5:ALIBABA_PUHUITI_MEDIUM。
UserPanes.N.Texts.N.FontColor Integer 1

文字顏色(RGB)。計算公式為R+G×256+B×65536,R(紅)、G(綠)、B(藍)的取值:0~255。

UserPanes.N.Texts.N.Y Float 0.7576

坐標Y,歸一化百分比。

UserPanes.N.Texts.N.Text String text

文本內容。

UserPanes.N.Texts.N.ZOrder Integer 0

疊放順序,0為最底層,1層在0層之上,以此類推。

UserPanes.N.Texts.N.X Float 0.7576

坐標X,歸一化百分比。

UserPanes.N.Texts.N.FontSize Integer 1

字體大小。字體合理范圍(0, 72]。

UserPanes.N.SourceType String camera

對應布局的用戶視頻輸入。取值:

  • camera(默認):視頻流。
  • shareScreen:共享屏幕流。
UserPanes.N.PaneId Integer 2

窗格ID,取值:0~15。

說明
  • 當指定的PaneId用戶找不到的話,會默認顯示其他的流,流的確定是根據用戶加入頻道的順序。
  • 如果某個UserPanes相關的參數為必選,則其他相關參數都為必選,反之都為非必選。
LayoutIds.N Long 1

布局ID數據,您可在一次任務中指定多個布局,系統會根據當時頻道中的人數進行切換。數組下標取值范圍:116,相當于一個旁路任務中最多可以同時設置16種布局。詳情請參見布局。

說明
  • 數組下標需要從1開始并從小到大,不能中斷,要連續。
  • 設置的布局窗格數不能相同。例:官網上的布局ID 2和3 的不能同時設置,他們兩個的窗格數相同都是2。
AppId String yourAppId

應用ID。通過控制臺創建和查詢,僅支持傳單個ID。

ChannelId String yourChannelId

頻道ID。僅支持傳單個ID。

TaskId String yourTaskId

任務ID。僅支持傳單個ID,需保證唯一。由1~55位大小寫字母、數字、下劃線、短劃線(-)組成。

TaskProfile String 4IN_1080P

任務計費配置,根據您的不同設置,進行收費。請參見下文中的TaskProfile枚舉值。

說明
  • 編碼選項MediaEncode的分辨率需要小于等于TaskProfile的分辨率。
  • 布局最大窗格數需要小于等于TaskProfile的輸入路數。
MediaEncode Integer 20

編碼選項,請參見下文中的MediaEncode枚舉值。

TemplateId String 76dasgb****

配置模板ID。獲取模板ID,請參見AddRecordTemplate

SourceType String camera

單流錄制模式下視頻源,取值:

  • camera:攝像頭。
  • shareScreen:屏幕共享。
說明 如果視頻源為shareScreen,且僅推攝像頭流,則錄制攝像頭流;如果同時推屏幕共享流,則錄制屏幕共享流。
StreamType Integer 0

單流錄制模式,取值:

  • 0(默認值):錄制原始流。
  • 1:僅錄制音頻流。
MixMode Integer 1

錄制模式,取值:

  • 0:單流錄制,不允許中間修改任務參數(不允許調用UpdateRecordTask接口修改任務參數)。
  • 1(默認值):合流錄制,支持多畫面合流輸出。
說明
  • 單流錄制模式下有效參數:StreamType、SourceType。
  • 合流錄制模式下有效參數:TaskProfile、MediaEncode、LayoutIds、BackgroundColor、SubSpecUsers、CropMode、UserPanes、Backgrounds、Watermarks、ClockWidgets。
CropMode Long 1

視頻的裁剪方式。取值:

  • 1:保持比例裁剪。
  • 2:保持比例留邊(默認值)。
MediaEncode枚舉值:

ID

碼流(kps)

幀率(fps)

0

0

0

64

0

1

640

360

500

15

54

360

640

500

30

53

360

640

500

15

52

640

360

500

30

10

960

540

700

24

20

1280

720

1024

25

22

720

1280

1024

30

23

800

600

1024

30

30

1920

1080

2048

30

31

1080

1920

2048

30

24

750

780

1024

30

25

750

540

700

30

26

720

1280

2048

30

27

1280

720

2048

30

28

1280

720

3096

30

32

1024

768

1024

24

33

1280

960

1024

24

34

1024

768

2048

24

35

1280

960

2048

24

36

1280

720

1024

24

37

1280

720

2048

24

38

540

960

750

15

39

540

960

1500

30

40

1280

720

1200

15

41

720

1280

1200

15

42

720

1280

1500

15

43

540

960

1200

15

TaskProfile枚舉值:
說明 Mixed_Audio(純音頻)不限制最大輸入路數,其余規格根據第一個數字判斷支持最大輸入路數,例如:4IN_720P代表支持最大輸入路數為4。

-

1080P

720P

360P

Audio

1IN

1IN_1080P

1IN_720P

1IN_360P

2IN

2IN_1080P

2IN_720P

2IN_360P

4IN

4IN_1080P

4IN_720P

4IN_360P

9IN

9IN_1080P

9IN_720P

9IN_360P

12IN

12IN_1080P

12IN_720P

12IN_360P

16IN

16IN_1080P

16IN_720P

16IN_360P

Mixed

Mixed_Audio

返回數據

名稱 類型 示例值 描述
RequestId String 760bad53276431c499e30dc36f6b****

請求ID。

錄制結果回調

錄制產生的結果文件寫入到用戶MNS隊列或者將結果文件通過JSON格式以HTTP POST方式回調,參數定義如下所示:

參數名稱

類型

說明

AppId

String

應用ID。

ChannelId

String

頻道ID。

TaskId

String

錄制任務ID。

Event

String

事件類型,目前僅支持FileCreated事件。

MsgId

String

消息ID。

StartTime

String

錄制開始時間。

StopTime

String

錄制結束時間。

Url

String

錄制到OSS的文件HTTP地址。

示例說明:


{
    "AppId": "9q****",
    "ChannelId": "record-004",
    "Duration": 1792.257,
    "Event": "FileCreated",
    "MsgId": "83eaaf62-19e8-45df-929b-79f4753b****",
    "StartTime": "2020-09-02T10:23:54Z",
    "StopTime": "2020-09-02T10:53:46Z",
    "TaskId": "task-005",
    "Url": "http://rtc-record.****.aliyuncs.com/record/0902-1/9q****/record-004_task-005/2020-09-02-18-23-56_2020-09-02-18-53-56.m3u8"
}

示例

請求示例

https://rtc.aliyuncs.com/?Action=StartRecordTask
&AppId=yourAppId
&ChannelId=yourChannelId
&TaskId=yourTaskId
&TemplateId=76dasgb****
&<公共請求參數>

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<StartRecordTaskResponse>
<RequestId>760bad53276431c499e30dc36f6b****</RequestId>
</StartRecordTaskResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "760bad53276431c499e30dc36f6b****"
}

特殊錯誤碼

錯誤代碼

描述

HTTP狀態碼

語義

InternalError

The request processing has failed due to some unknown error, exception or failure.

500

內部錯誤。

TaskExisted

task is already existed

200

任務已存在。

InvalidLayoutID.Malformed

The specified layout ID is malformed

400

參數LayoutId錯誤。

InvalidMediaEncode.Malformed

The specifed MediaEncode is malformed

400

參數MediaEncode錯誤。

InvalidBackgroundColor.Malformed

The specifed background color is malformed

400

參數BackgroundColor錯誤。

InternalError

The request processing has failed due to some unknown error, exception or failure.

500

內部錯誤。