- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 产品彩页
- 计费说明
- 云直播
- 媒体直播
- 最佳实践
- 云直播API参考
- 媒体直播API参考
- 云直播服务端SDK参考
- 低时延客户端SDK参考
- 场景代码示例
-
常见问题
- 高频问题导航
- 产品咨询
-
计费购买
- 点播的流量包直播服务能用吗?
- 如何查看直播套餐包的使用详情?
- 直播套餐包是否支持退订?
- 直播套餐包使用完之后会被停服吗?
- 购买了直播CDN出流包,为什么还会从账户余额扣费?
- 购买云直播转码套餐后,产生的转码费用未从套餐包中抵扣?
- 如何估算视频直播的流量消耗?
- 云直播录制需要收取哪些费用?
- 视频直播有哪些计费项?如何知道自己需要支付哪些费用?
- 如何查看直播按需资源的使用量和消费金额?
- 如何修改直播服务的计费方式?
- 不使用时是否需要停用或删除直播服务?
- 直播流量计费是按下行流量还是上行流量?
- 为什么账户欠费后仍一直产生直播费用?
- 视频直播服务的Key防盗链功能是否收费?
- 云直播转码是如何计费的?
- 如何知道账户是否欠费?
- 日峰值带宽是指上行带宽还是下行带宽?
- 为什么每月1号都会扣除一笔录制费用?
-
域名管理
- 什么是ICP备案?
- ICP备案是否是必须的?
- 如何进行ICP备案?
- 为什么要进行资质审核?审核未通过有什么影响?
- 域名已备案,如何在直播中添加域名?
- 直播服务许可证是否是必须的?如何办理?
- 添加域名时,提示“ICP编号不存在”怎么办?
- 域名管理中的消息订阅界面为什么操作不了?
- 一个租户最多可以添加多少个直播域名?
- 添加的播放域名和推流域名有什么要求?
- 域名管理界面的CNAME的作用是什么?
- 添加域名时,提示“添加失败,用户处于删除状态”怎么办?
- 为什么域名状态会从“正常”变为“配置中”?
- 配置CNAME域名解析,提示冲突?
- 播放域名和推流域名可以为二级域名吗?
- 一个域名是否可以同时添加在多个区域的直播服务中?
- 如何验证直播域名是否启动加速?
- 欠费后,域名是否会被清除掉?
- 更改了推拉流配置后,需要断流多长时间才能重新推流生效?
- 为什么直播控制台创建域名后,我的资源中未展示?
- 为什么直播控制台删除域名后,我的资源中仍展示?
- 如何查看我的资源?
-
直播录制
- 直播录制支持什么录制格式和播放格式?
- 直播录制后,为什么在控制台和回调信息中无播放地址?
- 是否支持直播录制存储至OBS桶中?
- 直播录制周期最多支持录制多长时间?
- 是否支持为每个直播流配置录制模板?
- 直播录制是否会录制转码流?
- 直播录制支持的ts分片大小是多少?
- 一次直播录制会生成几个录制文件?
- 已经删除录制规则,为什么还会生成录制文件?
- 为什么直播推流未中断,录制文件分成了两个?
- 直播录制后,如何获取录制文件地址?
- 是否支持通过调用API进行直播录制?
- 配置了录制至OBS模板,为什么未生成录制文件?
- 录制至OBS模板中,流名称是否支持通配符?
- 如何删除录制文件?
- 直播录制是否支持按需启停?
- 直播录制为什么无法收到RECORD_FILE_COMPLETE回调?
- 直播录制流名StreamName是否支持正则表达式的配置?
- 为什么直播录制生成的download_url无法下载视频?
- 修改了录制规则及文件存储路径,为什么没有生效?
- 直播中断流多次,可以录制成一个文件吗?
- 直播转码
- 直播截图
- 直播安全
- 直播推流
- 直播播放
- 直播回调
- API使用
- 统计分析
- 第三方工具使用
- 故障排除
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
配置录制回调
直播服务提供了录制文件生成状态回调设置,支持配置HTTP/HTTPS URL,向用户服务器发送POST请求、消息体JSON格式,将文件生成事件信息实时反馈到用户服务器。
操作步骤
- 登录视频直播控制台。
- 在左侧导航栏中,选择“域名管理”,进入域名管理页面。
- 在需要创建录制回调的推流域名行,单击“管理”。
- 在左侧导航树中,选择“模板配置 > 录制配置(新版)”,进入录制配置页面。
- 单击“新建回调配置”,界面右侧弹出“添加回调配置”对话框。
设置回调地址,如图1所示,回调参数说明请参见表1。
表1 录制回调参数说明 参数
说明
协议
回调地址支持HTTP/HTTPS协议。HTTP可能存在安全问题,推荐使用HTTPS。
回调地址
回调地址中不能携带消息头和参数,仅支持HTTP/HTTPS协议。推荐使用HTTPS协议。
回调类型
回调消息的类型,包含如下分类:
- 录制文件生成完成
- 录制开始
- 创建新的录制文件
- 录制结束
- 录制失败
各回调类型的详细说明请参见表2。
回调鉴权
是否开启回调鉴权。如果开启,需要配置“鉴权方式”和“鉴权密钥”。
鉴权方式
回调消息中的加密内容会根据选择的不同鉴权方式而有所不同。MD5方式可能存在安全风险,推荐使用HMACSHA256方式。
- MD5方式:MD5(key + auth_timestamp)
- HMACSHA256方式:HMACSHA256(auth_timestamp + event_type + publish_domain + app + stream + download_url + play_url,key)
鉴权密钥
鉴权key值。支持自定义设置,由数字和字母组成,长度不能小于32位。
- 单击“确定”,在回调列表中增加一条回调配置。
修改/删除录制回调配置
录制回调配置完成后,您还可以根据实际需要进行如下操作。
回调示例
录制文件生成事件回调示例如下。回调消息体字段如表2所示。
{ "project_id": "70b76xxxxxx34253880af501cdxxxxxx", "job_id": "dc0a1773-0cef-xxxx-xxxx-9a38fdb095d2", "task_id": "51126d0ebe94b1da00d2e21a10xxxxxx", "event_type": "RECORD_FILE_COMPLETE", "publish_domain": "push.example.com", "app": "live", "stream": "mystream", "record_format": "HLS", "download_url": "https://obs.cn-north-4.myhuaweicloud.com/live/record-xxxx-mystream-1589967495/record-push.example.com-live-mystream-1589967495.m3u8", "asset_id": "1a0d8e9bfaexxxxxxbe5021e62aa1e96", "file_size": 3957964, "record_duration": 120, "start_time": "2020-03-08T14:10:25Z", "end_time": "2020-03-08T14:12:25Z", "width": 1280, "height": 720, "obs_location": "https://obs.cn-north-4.myhuaweicloud.com", "obs_bucket": "mybucket", "obs_object": "live/record-xxxx-mystream-1589967495/record-hwpublish.myun.tv-live-mystream-1589967495.m3u8", "auth_sign": "4f97f46759axxxxxx7ad21e9935dc175", "auth_timestamp": 1583676745 }
字段 |
描述 |
---|---|
project_id |
项目ID。 |
job_id |
用于标识同一个文件。当“event_type”为“RECORD_NEW_FILE_START”或“RECORD_FILE_COMPLETE”时,携带该字段。 |
task_id |
录制任务ID,用于唯一标识一个录制任务。 |
event_type |
消息类型。 取值如下:
|
publish_domain |
直播推流域名。 |
app |
应用名。 |
stream |
录制的流名。 |
record_format |
录制格式,支持HLS、FLV和MP4格式。 |
download_url |
录制文件的下载地址。当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。
说明:
使用该下载地址用于视频播放无法保证播放效果。 |
asset_id |
用于标识一个录制文件。 当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 |
file_size |
文件大小。 单位:Byte。 |
record_duration |
录制文件的时长。 单位:秒。 |
start_time |
录制文件的开始时间,即接收到第一帧数据的时间,格式为yyyy-mm-ddThh:mm:ssZ。 当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 |
end_time |
录制文件的结束时间,格式为yyyy-mm-ddThh:mm:ssZ。 当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 |
width |
录制文件分辨率的宽。 当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 |
height |
录制文件分辨率的高。 当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 |
obs_location |
存储录制文件的OBS桶所在区域。 当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 |
obs_bucket |
存储录制文件的OBS桶。 当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 |
obs_object |
OBS桶存储录制文件的路径。 当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 |
auth_sign |
事件通知签名。当配置了“鉴权密钥”时,携带该字段。
其中,key为鉴权密钥值。 |
auth_timestamp |
事件通知签名过期UNIX时间戳。当配置了“鉴权密钥”时,携带该字段。 格式为十进制的UNIX时间戳,即从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数。 若消息通知中的auth_timestamp值所指定的时间已经过期,则此消息通知无效,进而防止网络重放攻击。 |
error_message |
录制失败的描述信息。 当“event_type”为“RECORD_FAILED”时,携带该字段。 |