更新时间:2023-01-30 09:17:40
随着直播行业的发展,互联网直播的这种内容传播形式逐渐被普遍接受并广泛应用,随之而来的是越来越多竞争者的涌入和诸多社会问题的出现,为了应对这一系列变化和需求,网宿推出直播录制功能。
中华人民共和国国家互联网信息办公室于2016年11月4日发布《互联网直播服务管理规定》,其中第十六条规定,互联网直播服务提供者应当记录互联网直播服务使用者发布内容和日志信息,保存六十日。根据此规定,直播录制功能已经成为了互联网直播平台的标配。
对比直播平台自行搭建源站进行直播录制,CDN进行直播录制具有天然的成本优势,所以,网宿直播推出与网宿云存储(WCS)产品结合的直播录制产品,实现录制+存储的一体化解决方案。
直播录制文件生成后,网宿会将录制文件存储在WCS上,下文对方案进行详细描述。
网宿直播录制将直播文件上传至WCS,实现录制+存储+转码一体化服务。且直播转点播的时效性可控制在秒级。
1、录制格式:支持flv、mp4、ts。
2、文件命名格式:流名+时间戳。
3、支持按时长分段录制,例如5分钟一个录制文件。
4、支持转码、转封装、加水印等音视频处理。
5、支持录制回调客户接口可配置。
6、支持回调通知失败重试。
录制开始、录制结束回调
网宿在录制开始、录制结束时均可回调客户接口通知客户,时效性较高,通常可控制在秒级。并且可以根据频率或个数合并通知,避免频繁通知消耗资源。
录制开始通知:
通知地址示例:http://abc.com?message_type=ws_record_start
注:通知地址响应200即表示通知成功。
通知内容:
通知地址将收到一个经过URL安全的Base64编码的Json信息,客户获取通知内容后需要进行解析。解析后内容格式如下:
{ "persistentId": "<persistentId>", "streamname": "<streamname>", "ops": "<Record ops>", "bucket": "<bucket>", "batch_notify_id": "<batch_notify_id>" }
字段名 | 必填 | 描述 |
persistentId | 是 | 录制任务的唯一标识。 |
streamname | 是 | 直播流名,格式为<发布点>-<流名> 。 |
ops | 是 | 录制参数,包含输出格式、码率等信息。 |
bucket | 是 | 录制存储的空间名。 |
batch_notify_id | 否 | 合并通知的关联ID。如果示配置了多个录制任务的结果合并通知,则该字段为null。 |
录制结束通知:
通知地址示例:http://abc.com?message_type=ws_record_finish
注:通知地址响应200即表示通知成功。
通知内容:
通知地址将收到一个经过URL安全的Base64编码的Json信息,客户获取通知内容后需要进行解析。解析后内容格式如下:
{
"items": [
{
"persistentId": "< persistentId >",
"streamname": "<streamname>",
"ops": "<ops>",
"bucket": "<bucket>",
"code": "<code>",
"desc": "<desc>",
"error": "<error>",
"keys": [
"key1",
"key2",
"key3"
],
"urls": [
"url1",
"url2"
]
"detail": [
{
"key": "<key string>",
"url": "<url string>",
"duration": "<duration double>",
"hash": "<hash string>",
"fsize": "<fsize int>",
"startTime": "<startTime string>",
"endTime": "<endTime string>",
"bit_rate": "<bit_rate string>",
"resolution": "<resolution string>"
}
]
},
{
"persistentId": "<persistentId >",
"streamname": "<streamname>",
"ops": "<ops>",
"bucket": "<bucket>",
"code": "<code>",
"desc": "<desc>",
"error": "<error>",
"keys": [
"key1",
"key2",
"key3"
],
"urls": [
"url1",
"url2"
]
"detail": [
{
"key": "<key string>",
"url": "<url string>",
"duration": "<duration double>",
"hash": "<hash string>",
"fsize": "<fsize int>",
"startTime": "<startTime string>",
"endTime": "<endTime string>",
"bit_rate": "<bit_rate string>",
"resolution": "<resolution string>"
}
]
}
],
"batch_notify_id": "<batchnotifyid>"
}
字段名 | 必填 | 描述 |
persistentId | 是 | 录制任务的唯一标识。 |
streamname | 是 | 直播流名,格式为<发布点>-<流名> 。 |
ops | 是 | 录制参数,包含输出格式、码率等信息。 |
bucket | 是 | 录制存储的空间名。 |
code | 是 | 录制任务状态码。值为1、2、3,分别表示正在处理、处理失败、处理成功 |
desc | 是 | 任务状态码描述。值为fileOperateActive, fileOperateFail, fileOperateSucceed。分别表示正在处理,处理失败,处理成功。 |
error | 否 | 错误描述。 |
keys | 否 | 输出文件名列表。录制未成功时,该字段为空。 |
urls | 否 | 输出文件访问地址列表。录制未成功时,该字段为空。 |
detail | 否 | 输出文件的具体信息。录制未成功时,该字段为空。 |
key | 否 | 输出文件名。录制未成功时,该字段为空。 |
url | 否 | 输出文件访问地址。录制未成功时,该字段为空。 |
duration | 否 | 输出视频文件的时长。录制未成功时,该字段为空。 |
hash | 否 | 输出视频文件的hash值。录制未成功时,该字段为空。 |
fsize | 否 | 输出视频文件的大小,单位为B(字节)。录制未成功时,该字段为空。 |
startTime | 否 | 开始录制时间。 |
endTime | 否 | 结束录制时间。 |
bit_rate | 否 | 输出文件的视频码率。 |
resolution | 否 | 输出文件的视频分辨率。 |
batch_notify_id | 否 | 合并通知的关联ID。如果示配置了多个录制任务的结果合并通知,则该字段为null。 |
1.配合《互联网直播服务管理规定》监管要求,对直播平台内容进行录制备查
2.保留主播精彩内容,进行二次宣传,增加平台点播内容
3.重点赛事、热门直播,进行重播,保持热度
客户若需要开通直播录制功能,需要提供给网宿以下信息:
1.录制分段时长
2.录制文件命名规则
3.录制文件格式
4.提供客户回调接口地址。
function getSelect() {
return '123'
}