本文介绍录制内容检索的适用场景、使用流程、实践示例和注意事项。
适用场景
对于录制下来的文件,您可以:
- 设置回调,每当一个录制文件生成,都能收到一个HTTP请求,便于您做一些业务上的实时处理。
- 查询已录制的内容,可按时间轴展示录制内容覆盖的时间区间。
- 将已录制的TS片段按时间段生成一个M3U8索引(写入您指定的Bucket,可以直接播放)。
使用流程
直接调用相应接口。涉及到的API包括:
API名称 | 说明 |
---|---|
AddLiveRecordNotifyConfig | 配置某个域名下的录制回调,包括事件回调和按需录制回调。 |
DeleteLiveRecordNotifyConfig | 如果不再需要某个域名的录制回调,可以通过该接口删除。 |
DescribeLiveRecordNotifyConfig | 查询某个域名的录制回调 |
UpdateLiveRecordNotifyConfig | 更新某个域名的录制回调 |
录制事件回调 | 录制事件回调给您的HTTP消息定义 |
DescribeLiveStreamRecordContent | 查询录制内容包含的时间段 |
CreateLiveStreamRecordIndexFiles | 根据时间段创建录制索引 |
DescribeLiveStreamRecordIndexFiles | 根据时间段查询录制索引 |
DescribeLiveStreamRecordIndexFile | 查询某个录制索引的信息 |
实践示例
- 回调录制文件生成事件
调用AddLiveRecordNotifyConfig接口,设置域名
aliyundoc.com
下直播录制文件生成事件都回调到http://example.aliyundoc.com
这个地址:/?DomainName=aliyundoc.com &NotifyUrl=http://example.aliyundoc.com &<公共请求参数>
设置之后,如果一条直播流aliyundoc.com/live/teststream
生成录制文件(TS/MP4/FLV),您就会收到以下内容的回调:POST / HTTP/1.1 Host: live.example.com User-Agent: Go-http-client/1.1 { "domain": "aliyundoc.com", "app": "live", "stream": "teststream", "uri": "live/teststream/0_2017-03-08-23:09:46_2017-03-08-23:10:40.flv", "duration": 69.403, "start_time": 1488985786, "stop_time": 1488985840 }
- 查询录制内容覆盖的时间段
假设您希望查找这条直播流
aliyundoc.com/live/teststream
在2019-02-15 09:00:00
到2019-02-15 21:00:00
之间的录制内容,可按如下方式调用DescribeLiveStreamRecordContent接口:/?AppName=live &DomainName=aliyundoc.com &StreamName=teststream &StartTime=2019-02-15T01:00:00Z &EndTime=2019-02-15T13:00:00Z &<公共请求参数>
- 生成某个时间段的M3U8索引
假设您已录制了
2019-02-15 09:00:00
到2019-02-15 21:00:00
的内容,但是想将10点到11点的内容单独生成一段M3U8录制索引,那么您可以按如下方式调用CreateLiveStreamRecordIndexFiles接口:/?AppName=live &DomainName=aliyundoc.com &StreamName=teststream &StartTime=2019-02-15T02:00:00Z &EndTime=2019-02-15T03:00:00Z &<公共请求参数>
生成的M3U8文件将会上传到您指定的OSS Bucket中(保存路径可通过AddLiveAppRecordConfig接口修改)。
注意事项
- 以上接口中的StartTime和EndTime字段填的均是UTC时间,请注意和本地时区的对应。
- 录制文件检索信息在视频直播系统中只保存6个月(过期会删除检索信息,但是不会删除用户录制文件)。
- ts分片信息在视频直播系统中只保存3个月,创建手动m3u8文件只能选择最近3个月的录制内容(过期会删除ts检索信息,但是不会删除用户录制ts文件)。