一、注意事项
·创建录制任务 和 创建录制模板 为两种录制发起方式,实际使用中按需选择其中一种即可。若同一直播流,配置录制模板的同时创建了录制任务,会导致重复录制。
·因为推流发起后启动录制任务会有短暂延迟,所以推流时间过短会导致无法生成录制文件。为保证录制文件质量,建议每次录制时的推流时间大于10s。
·根据国家《网络表演经营活动管理办法》及《网络交易监督管理办法》的最新规定,经营单位需记录网络直播视频内容并进行存储备份,保存时长根据直播类型建议存储60日至3年,详情请参考 直播录制国家相关规定。
二、录制存储
直播录制将文件存放于点播平台,你如需使用直播录制服务,需首先申请开通 云点播服务。
注意:说明:
注意:若需了解生成的录制文件命名规则,请参考 录制模板参数-VodFileName。
三、录制支持的格式
录制文件格式支持:FLV/ HLS/ MP4/ AAC,其中 AAC 为纯音频录制。
少部分音视频编码方式的直播流在录制并不支持,不同音视频编码方式在录制功能的支持情况如下:
| 编码方式 | 录制格式 | | |
| | FLV | HLS | MP4 |
| H.264 | 支持 | 支持 | 支持 |
| H.265 | 扩展支持 | 支持 | 支持 |
| H.266 | 扩展支持 | 支持 | 支持 |
| AV1 | 扩展支持 | 不支持 | 支持 |
| AAC | 支持 | 支持 | 支持 |
| MP3 | 支持 | 支持 | 支持 |
| OPUS | 扩展支持 | 支持 | 支持 |
注意:说明:
四、录制使用场景
| 使用场景 | 说明 |
| 按推流域名、流名称多级别录制 | 你可以在推流域名、流名称级别配置是否需要录制。 |
| 按指定时间段录制 | 你可以通过调用 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 参数,将上述录制模板与指定推流域名、流名称进行关联。
注意:上述方案仅针对个别推流不需要录制的情况。如果你需要操作直播流数较多,我们还是建议你使用另外一个推流域名进行独立管理,主要考虑到:
九、指定时间段录制
对于一些推流,如果你希望在指定开始时间启动录制,并在指定结束时间结束录制,可以通过 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 调用并指定精彩视频录制来实现。
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 格式,你可以在 直播录制 中设置续录超时时长。
十五、录制文件获取
录制文件生成后自动存储到云点播系统,有以下方式可以获取录制文件:
十六、云点播控制台
登录 云点播控制台,选择应用管理 > 进入应用 > 音视频管理,即可浏览录制生成的所有文件。
十七、录制事件通知
通过控制台或者 API 调用设置录制回调地址,录制文件生成后会以消息方式通知到该回调地址。在收到消息后可根据录制事件通知进行业务处理。
事件通知机制高效可靠且实时性好,我们推荐你使用回调方式获取录制文件。
十八、云点播 API 查询
具体使用请参考云点播 API SearchMedia 接口筛选查询录制文件。
注意:当通过云直播 API 创建录制任务 时,录制回调不会返回用户推流 URL 所带stream_param参数,其它录制方式会返回。
十九、更新配置注意事项
在更新完录制配置之后,我们建议你重新推流并对配置进行验证。配置的生效规则如下:
·配置生效时间默认为10分钟。
·配置作用时间是在直播推流开始时刻,录制过程中不更新配置。
·对于推流持续时间较长的场景(如监控摄像),需要断流重推配置才生效。