有奖捉虫:云通信与企业服务文档专题,速来> HOT
直播录制是将直播原始流经过转音视频封装(不修改音频、视频数据以及对应的时间戳等信息)得到的文件存储到点播平台的服务。

注意事项

创建录制任务创建录制模板配置 为两种录制发起方式,实际使用中按需选择其中一种即可。若同一直播流,配置录制模板的同时创建了录制任务,会导致重复录制。
因为推流发起后启动录制任务会有短暂延迟,所以推流时间过短会导致无法生成录制文件。为保证录制文件质量,建议每次录制时的推流时间大于10s。
根据国家《网络表演经营活动管理办法》及《网络交易监督管理办法》的最新规定,经营单位需记录网络直播视频内容并进行存储备份,保存时长根据直播类型建议存储60日至3年,详情请参考 直播录制国家相关规定

录制存储

直播录制将文件存放于点播平台,您如需使用直播录制服务,需首先申请开通 云点播服务
说明
若需了解生成的录制文件命名规则,请参考 录制模板参数-VodFileName

录制格式

录制文件格式支持:FLV/HLS/MP4/AAC,其中 AAC 为纯音频录制。

录制使用场景

使用场景
说明
按推流域名、流名称多级别录制
您可以在推流域名、流名称级别配置是否需要录制。
按指定时间段录制
您可以通过调用 API 控制录制的开始与结束时间,在您指定的时间内进行录制。
精彩视频录制
在推流过程中碰到精彩画面,您可以通过调用 API 实时产生录制。
纯音频录制
若推流为纯音频,您可以配置 AAC 纯音频录制。

为指定推流域名下所有直播流开启录制

我们将录制参数以模板形式进行管理,您可以为不同业务场景创建录制配置模板。并通过配置模板与不同推流域名、流名称进行关联,实现录制配置灵活管理目的。 您在开通点播服务后,如果需要对特定推流域名下直播流进行录制,有两种实现方法:

直播控制台

1. 进入功能配置 > 直播录制 ,单击 录制存储至 VOD 然后添加录制配置模板。
2. 域名管理 添加推流域名,单击管理,将此域名与录制模板进行关联。具体操作请参考 录制配置

API 调用

1. 调用 CreateLiveRecordTemplate,设置至少一种录制格式,如 FlvParam。
2. 调用 CreateLiveRecordRule,设置参数推流域名 DomainName 和 TemplateId(第1步返回),在 AppName 及 StreamName 填写空字符串,表示对此域名下所有推流进行录制。处理成功后约5分钟 - 10分钟生效。
类似,您还可以将录制模板与不同流名称进行关联,以此实现部分直播流开启录制的效果。
另外,同一录制模板可以关联到不同推流域名、AppName 、StreamName,但不允许相同的推流域名、AppName 、StreamName 与多个模板关联。如果出现同一直播流同时匹配到多个录制模板的情况,最终会按如下表格顺序匹配到优先级最高的一个录制模板(仅复杂场景使用,大多数用户可忽略)。
优先级
DomainName
AppName
StreamName
1
2
×
3
×
4
×
×
✓ 代表关联录制模板的对应参数有值,× 代表对应参数值为空。

同一推流域名下部分流不开启录制

您可能已经为某个推流域名配置了录制,但是此域名下存在个别推流因业务原因不需要录制。可以这样操作:
1. 调用 CreateLiveRecordTemplate,且不指定任何录制格式。
https://live.tencentcloudapi.com/?Action=CreateLiveRecordTemplate
&TemplateName=norecord
&Description=test
&<公共请求参数>
2. 通过 云直播控制台 或云 API CreateLiveRecordRule 设置 DomainName 和 StreamName 参数,将上述录制模板与指定推流域名、流名称进行关联。
注意
上述方案仅针对个别推流不需要录制的情况。如果您需要操作直播流数较多,我们还是建议您使用另外一个推流域名进行独立管理,主要考虑到:
无论录制模板还是录制规则,最大数目都存在限制(50个)。
按推流域名维度管理更灵活,即使业务变化也不需操作录制模板和规则。

指定时间段录制

对于一些推流,如果您希望在指定开始时间启动录制,并在指定结束时间结束录制,可以通过 API 方式指定录制。与配置录制模板方式不同,具体录制参数需要通过 API 指定。且这种方式一般用于未开通任何录制方式的情况下使用。

API 调用

创建录制任务 API 说明,具体请参见 CreateRecordTask

录制示例

最简单的情况,只需填写指定的 StreamName、DomainName、AppName 和 EndTime 参数。 例如:创建了2020年08月10日早上08点到10点的录制任务,格式为 FLV,视频录制,分片间隔30分钟,永久存储。 输入示例:
https://live.tencentcloudapi.com/?Action=CreateRecordTask
&AppName=live
&DomainName=mytest.live.push.com
&StreamName=livetest
&StartTime=1597017600
&EndTime=1597024800
&TemplateId=0
&<公共请求参数>
您还可以指定具体录制格式、录制类型以及存储参数等。 例如:创建了2020年08月10日早上08点到10点的录制任务,格式为 MP4,分片间隔1小时,永久存储。
1.1 调用 CreateLiveRecordTemplate ,先创建录制模板。 输入示例:
https://live.tencentcloudapi.com/?Action=CreateLiveRecordTemplate
&TemplateName=templat
&Description=test
&Mp4Param.Enable=1
&Mp4Param.RecordInterval=3600
&Mp4Param.StorageTime=0
&<公共请求参数>
输出示例:
{
"Response": {
"RequestId": "839d12da-95a9-43b2-a9a0-03366d01b532",
"TemplateId": 17016
}
}
1.2 调用 CreateRecordTask,创建录制任务。 输入示例:
https://live.tencentcloudapi.com/?Action=CreateRecordTask
&StreamName=livetest
&AppName=live
&DomainName=mytest.live.push.com
&StartTime=1597017600
&EndTime=1597024800
&TemplateId=17016
&<公共请求参数>
说明
对于同一条直播流,定时任务之间以及定时任务与其它形式的录制任务不冲突。也就是说,您创建的多个定时任务所指定的时间范围可以重叠。而且可以在启用配置录制的基础上再调用 API 创建录制任务。
另外,建议提前创建录制任务(如:提前一个小时,或者凌晨创建当天的任务),且指定的任务开始时间稍早于事件时间。

精彩视频录制

在推流过程中,若碰到精彩视频画面,您希望立即开始录制并生成精彩视频剪辑做后续使用。可以通过 API 调用并指定精彩视频录制来实现。
https://live.tencentcloudapi.com/?Action=CreateRecordTask
&StreamName=test
&AppName=live
&DomainName=mytest.live.push.com
&EndTime=1597024800
&<公共请求参数>
关于精彩视频录制,有以下几点说明:
创建录制时需要确保正在推流。
可以调用 API StopRecordTask 提前终止任务。
支持海外推流。

混流录制

在使用混流录制功能时,请您先参考 云端混流 文档,了解混流业务的相关知识和操作步骤。
对于使用了直播云端混流业务的场景,录制侧按混流参数 OutputStreamType(输出流类型)将混流分为两类:
OutputStreamType 为 0,表示输出流在输入流列表中,即没有生成新的流。
OutputStreamType 为 1,表示输出流不在输入流列表中,即生成了新的流。
例如,有推流 A、B,经过混流后输出流为 C。
对于 OutputStreamType 为 0 的情况,如果 C 流是 A 流(流名称相同,但是混流后画面),启用配置录制后,默认会生成 A 流(混流画面)和 B 流的录制文件。由于复用了同一流 ID,A 流原始推流将不会产生录制。对于 OutputStreamType 为 1 的情况,开启配置录制后,默认会生成 A 流、B 流以及 C 流(混流画面)的录制文件。
如果只想录制混流画面,您可以通过 API CreateRecordTask 实现。需要说明的是,对于 OutputStreamType 为 1 这种混流类型,调用上述 API 需要设置 StreamType 参数为 1。
注意
不支持中国内地(大陆)和国际/港澳台两个区域的推流进行混流录制,会导致录制文件错误,影响正常观看回放。

自动拼接录制(多次推流续流录制)

为了解决推流端网络抖动等原因导致的闪断推流,录制服务提供了自动拼接录制的功能,可以将短时间中断的多个推流录制成一个文件,方便直播回放观看。
其原理是针对 HLS 录制格式使用 HLS 的 #EXT-X-DISCONTINUITY 标签来分割多次推流的音视频数据,此标签的作用是:标识前后的音视频数据的时间戳、视频编码、音频编码采样等信息可能不同,需要播放器刷新解码器以实现无缝的正常播放,因此使用此功能时,需要播放器支持 #EXT-X-DISCONTINUITY 标签,iOS 自带播放器(或者 Safari 直接播放)、Android 的 ExoPlayer、Web 端的 hls.js 播放器都支持此标签,VLC 等播放器不支持此标签。
使用此功能后,设置好推流中断自动拼接时间(最长可设置30分钟,即最长支持将中断30分钟的推流拼接成一个文件),在最后一次正常推流结束后,会自动拼接断流时间内的内容并生成 HLS 录制文件。
自动拼接录制目前支持 HLS 格式,您可以在 直播录制 中设置续录超时时长。
注意
自动拼接不支持无音频数据的直播流。
视频合并功能需要通过调用点播中的视频合成接口实现,相关文档说明请参考 视频合成
配置了 HLS 续录功能后,中间断流不会回调,默认续流只回调最终生成文件。

录制文件获取

录制文件生成后自动存储到云点播系统,有以下方式可以获取录制文件:

云点播控制台

登录 云点播控制台,选择应用管理 > 进入应用 > 音视频管理,即可浏览录制生成的所有文件。







录制事件通知

通过控制台或者 API 调用设置录制回调地址,录制文件生成后会以消息方式通知到该回调地址。在收到消息后可根据录制事件通知进行业务处理。
事件通知机制高效可靠且实时性好,我们推荐您使用回调方式获取录制文件。

云点播 API 查询

具体使用请参考云点播 API SearchMedia 接口筛选查询录制文件。
注意
当通过云直播 API 创建录制任务 时,录制回调不会返回用户推流 URL 所带stream_param参数,其它录制方式会返回。

更新配置注意事项

在更新完录制配置之后,我们建议您重新推流并对配置进行验证。配置的生效规则如下:
配置生效时间默认为10分钟。
配置作用时间是在直播推流开始时刻,录制过程中不更新配置。
对于推流持续时间较长的场景(如监控摄像),需要断流重推配置才生效。