You need to enable JavaScript to run this app.
导航
CreateLiveStreamRecordIndexFiles - 创建录制索引文件
最近更新时间:2025.02.19 17:12:04首次发布时间:2024.03.19 15:14:30

调用 CreateLiveStreamRecordIndexFiles 接口,将已有的录制文件,重新生成一个指定开始时间和结束时间的 M3U8 格式的录制文件,并将新生成的录制文件存储到指定的 TOS Bucket 中。

注意事项

  • 请求频率:单用户请求频率限制为 20 次/秒
  • 前提条件:创建录制索引文件的直播流,必须存在录制格式为 HLS 的录制配置,且存在录制文件。

请求说明

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

调试

请求参数

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

Query

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

Body

参数类型是否必选示例值描述
DomainStringpush.example.com直播流使用的域名。您可以调用 ListDomainDetail 接口或在视频直播控制台的域名管理页面,查看直播流使用的域名。
AppStringLive应用名称,取值与直播流地址中 AppName 字段取值相同。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 30 个字符。
StreamStringexample_stream流名称,取值与直播流地址中 StreamName 字段取值相同。支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 100 个字符。
StartTimeUTCString2023-06-30T15:04:05+08:00录制索引文件的开始时间,RFC3339 格式的时间戳,精度为秒。
EndTimeUTCString2023-06-30T15:10:05+08:00录制索引文件的结束时间,RFC3339 格式的时间戳,精度为秒。

StartTime

String

2023-06-30T15:04:05Z

录制索引文件的开始时间,仅支持 UTC 时间,格式为 YYYY-MM-DDTHH:MM:SSZ,不支持时区偏移量。

说明

仅在需要兼容旧版本 SDK 时使用。如果您的应用不需要考虑时区,或者您正在使用旧版本 SDK,可以继续使用该参数,反之,则推荐您使用 StartTimeUTC 参数。

EndTime

String

2023-06-30T15:04:05Z

录制索引文件的结束时间,仅支持 UTC 时间,格式为 YYYY-MM-DDTHH:MM:SSZ,不支持时区偏移量。

说明

仅在需要兼容旧版本 SDK 时使用。如果您的应用不需要考虑时区,或者您正在使用旧版本 SDK,可以继续使用该参数,反之,则推荐您使用 EndTimeUTC 参数。

OutputBucket

String

testBucket

指定录制文件存储的 TOS Bucket。默认为空,表示与对应录制配置中的存储配置一致。

说明

  • OutputBucket 参数用于覆盖录制配置中的 TOS 存储的 Bucket 参数,OutputObject 参数用于覆盖录制配置中 TOS 存储的 ExactObject 参数。
  • 当您的录制配置存储位置为 VOD ,且创建录制任务仍需存储至 VOD 时,请勿配置 OutputBucketOutputObject

OutputObject

String

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

定义录制索引文件存储至 TOS 时的存储路径与命名规则。支持输入字母(A - Z、a - z)、数字(0 - 9)、短横线(-)、叹号(!)、下划线(_)、句点(.)、星号(*)及占位符,最大长度为 200 个字符。缺省情况下,系统将自动应用您在添加/更新录制配置中预设的存储规则。
若自定义存储规则,支持以下字段作为占位符:

  • record:自定义字段,可遵照支持字符进行自定义。
  • {PubDomain}:配置中的 vhost 值。
  • {App}:配置中的 AppName 值。
  • {Stream}:配置中的 StreamName 值。
  • {StartTime}:录制开始的 Unix 时间戳,精度为 s。
  • {EndTime}:录制结束的 Unix 时间戳,精度为 s。
    设置存储规则的注意事项如下:
  • 目录层级:存储路径必须至少包含两级目录。例如: live/{App}/{Stream}.m3u8
  • 文件后缀:文件后缀必须设置为 .m3u8
    合法示例:
record/{PubDomain}/{App}/{Stream}/{StartTime}-{EndTime}.m3u8
{App}/archive/{Stream}/recording_{StartTime}.m3u8
vod/{Stream}/!highlight_{EndTime}.m3u8
a/b/custom_record.m3u8

错误示例:

single_level.m3u8              # 错误:路径层级不足两级
{App}/{Stream}.mp4             # 错误:后缀非.m3u8
invalid_/{S@ream}/file.m3u8    # 错误:含非法字符@

NeedFFProbe

Boolean

true

是否开启获取录制视频宽高数据的功能,开启后会获取视频宽和高信息,支持的取值及含义如下所示,默认不传时表示开启。

  • true:开启;
  • false:禁用。

SeparatedTS

Boolean

false

将录制文件存储到点播时,是否开启索引文件与 TS 文件分离,默认禁用。

  • true:启用,删除索引文件时不会删除关联的 TS 文件;
  • false:禁用,删除索引文件时会删除关联的 TS 文件。
WorkflowIDString25524a2d*********891d7daf4b9将录制文件存储到点播时,如需进行视频处理,可选择已定义的视频处理工作流模板,获取方法请参见工作流模板,默认为空。

TSScheme

String

http

指定访问录制文件的地址中的网络协议,取值及含义如下所示。

  • http:超文本传输协议(默认值);
  • https:安全的超文本传输协议。

返回参数

下表仅列出本接口特有的返回参数。更多信息请见返回结构

参数类型示例值描述
DomainStringpush.example.com直播流使用的域名。
AppStringLive直播流使用的应用名称。
StreamStringexample_stream直播流使用的流名称。
StartTimeUTCString2023-06-30T15:04:05Z录制索引文件的开始时间,RFC3339 格式的 UTC 时间戳,精度为秒。
EndTimeUTCString2023-06-30T15:10:05Z录制索引文件的结束时间,RFC3339 格式的 UTC 时间戳,精度为秒。
CreateTimeUTCString2023-06-30T15:04:05Z创建录制索引文件任务的时间,RFC3339 格式的 UTC 时间戳,精度为秒。
HeightInteger1080录制流的高度,单位为 px。当 NeedFFProbe 配置为 true 时返回此参数。
WidthInteger1920录制流的宽度,单位为 px。当 NeedFFProbe 配置为 true 时返回此参数。
DurationFloat60录制文件实际时长,单位为秒。
RecordURLStringhttp://live.example.com/record/Live/livestream001/1710745385_1710745445.m3u8生成的录制索引文件网网络访问地址。
OutputBucketStringtestBucketBucket 名称,存储到 TOS 时返回此参数。
OutputObjectStringrecord/Live/livestream001/1710745385_1710745445.m3u8根据存储规则生成的存储路径及文件名称,存储到 TOS 时返回此参数。
VodNamespaceStringrecord视频点播的空间名称,录制文件存储到视频点播时返回此参数。
VIDStringv0dc24g10001c***ihs1v0hqjggdd80视频点播文件 ID,录制文件存储到视频点播返回此参数。
URIStringrecord/Live/livestream001/1710745385_1710745445.m3u8"视频点播文件 URI,录制文件存储到视频点播时返回此参数。

请求示例

POST https://live.volcengineapi.com?Action=CreateLiveStreamRecordIndexFiles&Version=2023-01-01
{
    "Domain": "push.example.com",
    "App": "Live",
    "Stream": "example_stream",
    "StartTimeUTC": "2024-03-18T15:03:05+08:00",
    "EndTimeUTC": "2024-03-18T15:04:05+08:00"
}

返回示例

{
    "ResponseMetadata": {
        "RequestId": "20240318165753DE678C93CEB656C73848",
        "Action": "CreateLiveStreamRecordIndexFiles",
        "Version": "2023-01-01",
        "Service": "live",
        "Region": "cn-north-1"
    },
    "Result": {
        "App": "Live",
        "CreateTime": "2024-03-18T15:03:06Z",
        "Domain": "push.example.com",
        "Duration": 60,
        "EndTimeUTC": "2024-03-18T15:04:05+08:00",
        "Height": 1080,
        "OutputBucket": "testBucket",
        "OutputObject": "record/Live/livestream001/1710745385_1710745445.m3u8",
        "RecordURL": "http://live.example.com/record/Live/livestream001/1710745385_1710745445.m3u8",
        "StartTimeUTC": "2024-03-18T15:03:05+08:00",
        "Stream": "example_stream",
        "Width": 1920
    }
}

错误码

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

状态码错误码错误信息说明
200CommonErr-未分类错误。建议重试,如果仍返回该错误码,请联系技术支持
400InvalidParam-输入的参数无效或不符合要求,请参照请求参数说明进行检查。
400InvalidParam.BindErrorRequest parameter error, please check input data参数未通过校验,请检查参数类型是否正确。
400InvalidParam.Format%s is required参数缺失,请检查错误消息中指定的参数是否传入。

400

InvalidParam.TimeLogic

startTime later than endTime, etc.

传入的时间参数不符合时间逻辑,请检查是否存在以下问题。

  • 开始时间晚于结束时间
  • 过期时间早于当前时间
404ResourceNotFound-未找到资源(域名空间、域名、应用、配置模版、证书)。建议重试,如果仍返回该错误码,请联系技术支持
404ResourceNotFound.VhostNotExistvhost not found未找到域名空间(Vhost)。请检查传入的域名空间是否与实际使用的域名空间一致。
404ResourceNotFound.PresetNotExistpreset not found未找到配置模版。请检查传入的配置模版与创建好的配置模板是否一致。
500InternalErroran internal error occurred, please contact the administrator.出现内部错误,请联系技术支持
500InternalError.Presetan internal error related to preset occurred, please contact the administrator.出现与功能配置相关的内部错误,请联系技术支持

SDK

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