You need to enable JavaScript to run this app.
导航
添加录制配置
最近更新时间:2024.08.12 10:24:17首次发布时间:2023.09.25 14:34:04

调用 CreateRecordPresetV2 接口创建一个录制配置,在直播流传输过程中,视频直播服务端将根据您直播流地址参数匹配录制配置,对直播流进行录制。

使用说明

CreateRecordPresetV2 接口支持创建 VhostVhost + AppVhost + App + Stream 三个级别的配置,当存在多个级别的配置时优先级依次升高。例如,当通过 CreateRecordPresetV2 接口创建了 VhostVhost + App 级别的录制配置时,直播流优先使用 Vhost + App 级别的录制配置。

注意事项

  • 前提条件:
    • 使用录制功能前,需先为视频直播服务授权跨服务访问角色,请参见跨服务访问授权
    • 录制文件选择存放在点播平台中时,请先开通点播服务,并参考空间管理创建空间。
    • 录制文件选择存放在 TOS 中时,请先开通 TOS 服务,并联系技术支持授权使用。
  • 计费说明:视频直播录制功能可能产生录制及存储费用,费用详细说明请参见录制计费
  • 请求频率:单用户请求频率限制为 10 次/秒
  • 生效说明:新增、更新、删除录制配置,均需在新增、更新、删除操作后(3-5 分钟)重新进行推流才会使用变更后的配置。

请求说明

  • 请求方式:POST
  • 请求地址:https://live.volcengineapi.com?Action=CreateRecordPresetV2&Version=2023-01-01

调试

请求参数

下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数

Query

参数类型是否必选示例值描述
ActionStringCreateRecordPresetV2接口名称。当前 API 的名称为 CreateRecordPresetV2
VersionString2023-01-01接口版本。当前 API 的版本为 2023-01-01

Body

参数类型是否必选示例值描述
VhostStringpush.example.com域名空间,即直播流地址的域名所属的域名空间。您可以调用 ListDomainDetail 接口或在视频直播控制台的域名管理页面,查看需要录制的直播流使用的域名所属的域名空间。

App

String

live

应用名称,取值与直播流地址的 AppName 字段取值相同,由 1 到 30 位数字(0 - 9)、大写小字母(A - Z、a - z)、下划线(_)、短横线(-)和句点(.)组成,默认为空。

说明

  • App 取值为空时,Stream 取值也需为空,表示录制配置为 Vhost 级别的全局配置。
  • App 取值不为空时,Stream 取值含义请参见 Stream 参数说明。

Stream

String

stream001

流名称,取值与直播流地址的 StreamName 字段取值相同,支持填写星号(*)或由 1 到 100 位数字(0 - 9)、字母、下划线(_)、短横线(-)和句点(.)组成。

说明

  • App 取值不为空、Stream 取值为空时,表示录制配置为 Vhost + App 级别的配置。
  • App 取值不为空、Stream 取值不为空时,表示录制为 Vhost + App + Stream 的配置。
RecordPresetConfigObject of RecordPresetConfig-直播流录制配置的详细配置。

RecordPresetConfig

参数类型是否必选示例值描述

TranscodeRecord

Integer

1

是否录制转码流,默认值为 0,支持的取值及含义如下所示。

  • 0:不录制;
  • 1:录制全部转码流;
  • 2:录制指定转码流,即通过转码后缀列表 TranscodeSuffixList 匹配转码流进行录制,如果转码流后缀列表为空仍表示录制全部转码流。

说明

转码流和源流需至少选一个进行录制,即是否录制转码流(TranscodeRecord)和是否录制源流(OriginRecord)的取值至少一个不为 0。

OriginRecord

Integer

0

是否源流录制,默认值为 0,支持的取值及含义如下所示。

  • 0:不录制;
  • 1:录制。

说明

转码流和源流需至少选一个进行录制,即是否录制转码流(TranscodeRecord)和是否录制源流(OriginRecord)的取值至少一个不为 0。

SliceDurationInteger5录制为 HLS 格式时,单个 TS 切片时长,单位为秒,默认值为 10,取值范围为 [5,30]。

FlvParam

Object of RecordParam

-

录制为 FLV 格式时的录制参数。

说明

您需至少配置一种录制格式,即 FlvParamHlsParamMp4Param 至少开启一个。

HlsParam

Object of RecordParam

-

录制为 HLS 合适时的录制参数。

说明

您需至少配置一种录制格式,即 FlvParamHlsParamMp4Param 至少开启一个。

Mp4Param

Object of RecordParam

-

录制为 MP4 格式时的录制参数。

说明

您需至少配置一种录制格式,即 FlvParamHlsParamMp4Param 至少开启一个。

TranscodeSuffixListArray of String["_hd","_bd"]转码流后缀列表,转码流录制配置为根据转码流列表匹配(TranscodeRecord 取值为 2)时生效,TranscodeSuffixList 默认配置为空,效果等同于录制全部转码流。

RecordParam

参数类型是否必选示例值描述

Enable

Boolean

true

当前格式的录制是否开启,默认值为 false,支持的取值及含义如下所示。

  • false:不开启;
  • true:开启。

Duration

Integer

7200

断流录制场景下,单文件录制时长,单位为秒,默认值为 7200,取值范围为 -1 和 [300,86400]。

  • 取值为 -1 时,表示不限制录制时长,录制结束后生成一个完整的录制文件。
  • 取值为 [300,86400] 之间的值时,表示根据设置的录制文件时长,到达时长立即生成录制文件,完成录制后一起上传。

说明

  • 断流录制场景仅在录制格式为 HLS 时生效,且断流录制和实时录制为二选一配置。
  • 如录制过程中出现断流,对应生成的录制文件时长也会相应缩短。

Splice

Integer

0

断流录制场景下,断流拼接时长,单位为秒,默认值为 0,支持的取值及含义如下所示。

  • -1:一直拼接,表示每次断流都不会影响录制任务,录制完成后生成一个完整的录制文件;
  • 0:不拼接,表示每次断流结束录制任务生成一个录制文件,断流恢复重新开始一个新的录制任务;
  • 大于 0:拼接容错时间,表示如果断流时间小于拼接容错时间时,则录制任务不会停止,不会生成新的录制文件;如果断流时间大于拼接容错时间,则录制任务停止,断流恢复后重新开始一个新的录制任务。

说明

断流录制场景仅在录制格式为 HLS 时生效,且断流录制和实时录制为二选一配置。

RealtimeRecordDuration

Integer

300

实时录制场景下,单文件录制时长,单位为秒,默认值为 1800,取值范围为 [300,21600]。录制时间到达设置的单文件录制时长时,会立即生成录制文件实时上传存储。

说明

如录制过程中出现断流,对应生成的录制文件时长也会相应缩短。

ContinueDurationInteger180实时录制场景下,断流等待时长,单位为秒,默认值为 180,取值范围为 [0,3600]。如果实际断流时间小于断流等待时长,录制任务不会停止;如果实际断流时间大于断流等待时长,录制任务会停止,断流恢复后重新开始一个新的录制任务。

TOSParam

Object of TOSParam

-

TOS 存储相关配置。

说明

录制文件只能选择一个位置进行存储,即 TOSParamVODParam 配置且配置其中一个。

VODParam

Object of VODParam

-

VOD 存储相关配置。

说明

录制文件只能选择一个位置进行存储,即 TOSParamVODParam 配置且配置其中一个。

TOSParam

参数类型是否必选示例值描述

Enable

Boolean

true

是否使用 TOS 存储,默认为 false,取值及含义如下所示。

  • false:不使用;
  • true:使用。

Bucket

String

live-test-tos-example

TOS 存储对应的 Bucket。例如,存储位置为 live-test-tos-example/live/liveapp 时,Bucket 取值为 live-test-tos-example

说明

如果使用 TOS 存储,即 TOSParamEnable 取值为 true 时,Bucket 为必填。

StorageDirStringlive/liveappTOS 存储对应 Bucket 下的存储目录,默认为空。例如,存储位置为 live-test-tos-example/live/liveapp 时,StorageDir 取值为 live/liveapp

ExactObject

String

record/{PubDomain}/{App}/{Stream}/{StartTime}_{EndTime}

录制文件的存储规则,最大长度为 200 个字符,支持以
record/{PubDomain}/{App}/{Stream}/{StartTime}_{EndTime} 样式设置存储规则,支持输入字母(A - Z、a - z)、数字(0 - 9)、短横线(-)、叹号(!)、下划线(_)、句点(.)、星号(*)及占位符。
存储规则设置注意事项如下。

  • 目录层级至少包含2级及以上,如 live/{App}/{Stream}
  • record 为自定义字段;
  • {PubDomain} 取值为当前配置的 vhost 值;
  • {App} 取值为当前配置的 AppName 值;
  • {Stream} 取值为当前配置的 StreamName 值;
  • {StartTime} 取值为录制的开始时间戳;
  • {EndTime} 取值为录制的结束时间戳。

VODParam

参数类型是否必选示例值描述

Enable

Boolean

true

是否使用 VOD 存储,默认为 false,支持的取值及含义如下所示。

  • false:不使用;
  • true:使用。

VodNamespace

String

Snapshot

视频点播(VOD)空间名称。可登录视频点播控制台查询。

说明

如果使用 VOD 存储,即 VODParamEnable 取值为 true 时,VodNamespace 为必填。

WorkflowIDString25524a2d891d7daf4b9视频点播工作流模板 ID,对于存储在点播的录制文件,会使用该工作流模版对录制的视频进行处理,可登录视频点播控制台获取工作流模板 ID,默认为空。
ClassificationIDInteger1234直播录制文件存储到点播时的视频分类 ID,您可以通过视频点播的 ListVideoClassifications 接口查询视频分类 ID 等信息,默认为空。

StorageClass

Integer

1

直播录制文件存储到点播时的存储类型,存储类型介绍请参考媒资存储管理。默认值为 1,支持的取值及含义如下所示。

  • 1:标准存储;
  • 2:归档存储。

ExactObject

String

record/{PubDomain}/{App}/{Stream}/{StartTime}_{EndTime}

录制文件的存储规则,最大长度为 200 个字符,支持以
record/{PubDomain}/{App}/{Stream}/{StartTime}_{EndTime} 样式设置存储规则,支持输入字母(A - Z、a - z)、数字(0 - 9)、短横线(-)、叹号(!)、下划线(_)、句点(.)、星号(*)及占位符。
存储规则设置注意事项如下。

  • 目录层级至少包含2级及以上,如 live/{App}/{Stream}
  • record 为自定义字段;
  • {PubDomain} 取值为当前配置的 vhost 值;
  • {App} 取值为当前配置的 AppName 值;
  • {Stream} 取值为当前配置的 StreamName 值;
  • {StartTime} 取值为录制的开始时间戳;
  • {EndTime} 取值为录制的结束时间戳。

返回参数

本接口无特有的返回参数。更多信息请见返回结构

请求示例

POST https://live.volcengineapi.com?Action=CreateRecordPresetV2&Version=2023-01-01
{
    "Vhost":"push.example.com",
    "App":"live",
    "RecordPresetConfig": { 
				"OriginRecord": 1,  
				"HlsParam": { 
						"Enable": "true", 
						"RealtimeRecordDuration": 7200, 
						"Splice": 0,
						"TOSParam": { 
						    "Enable": true, 
						    "Bucket": "live-test-tos-example", 
						    "StorageDir": "", 
						    "RecordObject": "record/{PubDomain}/{App}/{Stream}/{StartTime}_{EndTime}" 
						},
				}, 
    }
}

返回示例

{
  "ResponseMetadata": {
    "RequestId": "20220726*******************051B513A",
    "Action": "CreateRecordPresetV2",
    "Version": "2023-01-01",
    "Service": "live",
    "Region": "cn-north-1"
  }
}

错误码

下表仅列出本接口特有的错误码。更多信息请参见公共错误码获取详细信息。

状态码错误码错误信息说明
200CommonErr-未分类错误。建议重试,如果仍返回该错误码,请联系技术支持
400InvalidParam-输入的参数无效或不符合要求,请参照请求参数说明进行检查。
400InvalidParam.BindErrorRequest parameter error, please check input data参数未通过校验,请检查参数类型是否正确。
403RequestForbidden-请求被拒绝,当前账号下无请求的资源(域名空间、域名、应用、配置模版、证书)。
403RequestForbidden.AccountIDNotAllowthis AccountID does not have permission to access the corresponding resource, please check the request parameters请求被拒绝,当前账号下无请求的资源(域名空间、域名、应用、配置模版、证书)。
403RequestForbidden.BillingStatusBilling status is not available for the AccountID, please activate the service or recharge.未开通视频直播服务或账号欠费,造成账单不可用,请检查服务开通情况和账号欠费情况。
404ResourceNotFound-未找到资源(域名空间、域名、应用、配置模版、证书)。建议重试,如果仍返回该错误码,请联系技术支持
429RequestLimitExceeded.Exist%s already exist请求创建的资源(域名空间、域名、应用、配置模版、证书)已存在。
500InternalErroran internal error occurred, please contact the administrator.出现内部错误,请联系技术支持
500InternalError.Presetan internal error related to preset occurred, please contact the administrator.出现与功能配置相关的内部错误,请联系技术支持
502InternalServiceErroran internal error occurred, please contact the administrator.服务间出现错误,请联系技术支持
502InternalServiceError.BadResponsean internal error occurred, please contact the administrator.服务间出现错误,请联系技术支持
504InternalServiceTimeoutInternal Service is timeout. please contact the administrator.内部服务超时,请联系技术支持

服务端 SDK

视频直播提供了配套的开发工具集 SDK,支持多种编程语言,帮助您更方便的调用 API。