更新时间:2024-11-21 GMT+08:00

直播截图

视频直播提供了截图功能,支持按配置截图模板在推流过程中截取直播画面,并存储在OBS桶中。一个推流域名下可以配置多个不同AppName的截图模板,即当推流开始时,启动直播截图功能,其中与推流地址中的AppName相同的截图模板生效。

截图流程

直播服务截图模板的配置流程,如图1所示。

图1 截图模板配置流程图
  1. 创建桶(可选):创建用于存储直播截图文件的OBS桶,若已有OBS桶,可直接跳转到2

    存储直播截图的OBS桶必须与使用的直播服务在同一区域,如使用“华北-北京四”的直播服务,则直播截图只能存储在“华北-北京四”区域的OBS桶。

  2. 桶授权:在直播服务中对存储截图的OBS桶进行授权,允许直播服务将截图存储在对应的OBS桶中。
  3. 配置截图模板:直播视频将按照设定的间隔时间对正在直播的视频进行画面截图操作,并以.jpg文件保存至指定的OBS存储位置。
  4. 查看直播截图:直播截图模板配置成功后,启动直播推流,可以通过截图的输出路径快速进入到OBS桶中查看存储的直播截图,还可以通过回调消息查看直播截图。

注意事项

  • 直播服务所在区域与存储截图的OBS桶需在同一区域。
  • 推荐将OBS桶设置为私有桶,效果如下所示:
    • 如果将OBS桶设置为私有桶,必须添加鉴权信息,才能访问并下载OBS截图文件。鉴权信息可参考OBS生成带授权信息的URL文档生成。
    • 如果将OBS桶设置为公开桶,则可直接访问并下载OBS截图文件。
  • 一个域名可配置多个截图模板,与推流地址中的AppName相同的截图模板生效。
  • 暂只支持截图生成JPG格式的图片文件。
  • 在“亚太-曼谷”区域,完成模板配置后需提交工单申请配置审核,审核通过后截图配置才生效。
  • 华为云视频直播服务计划于2024年8月15日,下线截图回调地址携带鉴权信息功能,届时截图回调地址将不再携带鉴权信息。

前提条件

费用说明

  • 直播截图功能为计费项,视频直播服务将根据实际产生的视频截图数量收取费用。具体价格详情请参见产品价格详情
  • 直播截图生成的截图文件最终存储在对象存储服务中,因此,产生的存储使用量费用将由对象存储服务单独收取。具体价格详情请参见OBS价格详情

步骤一:创建桶(可选)

若您还未在OBS服务中创建用于存储文件的桶,或者您需要新创建桶用于存储直播截图文件,请参见OBS帮助中心创建与使用的直播服务同一区域的OBS桶。否则,请直接跳转到步骤二:OBS桶授权

步骤二:OBS桶授权

OBS桶创建后,您需要按照如下步骤在直播服务中对相关的桶进行授权,允许直播服务将截图存储在对应的OBS桶中。

OBS桶授权完成后,视频直播服务可以正常访问该OBS桶。请确保该桶仅处理直播相关业务,切勿在桶中存放涉密文件。

  1. 登录视频直播控制台
  2. 在左侧导航树中选择“云资源授权”,进入桶授权页面。
  3. 在“直播授权”页签,选择需要存储直播截图的OBS桶,单击“授权”即可。

    图2 云资源授权

步骤三:配置直播截图

OBS授权成功后,您可以开始配置直播截图模板。

  1. 登录视频直播控制台
  2. 在左侧导航栏中,选择域名管理,进入域名管理页面。
  3. 在需要进行直播截图的推流域名行,单击“管理”。
  4. 在左侧导航栏中,选择“模板配置 > 截图配置”。
  5. 单击“新建截图”,进入截图模板参数配置页面。

    图3 配置直播截图模板

    具体参数配置说明请参见表1

    表1 截图参数配置

    参数名

    描述

    应用名

    应用名称,默认为“live”,您也可以根据实际需求进行自定义,支持大小写字母、数字、下划线(_)中划线(-)。

    存储位置

    直播截图存储在OBS服务。

    存储-桶

    存储直播截图的OBS桶。

    存储-路径

    OBS桶存储直播截图的路径。

    截图频率

    截图频率,单位为秒。

    取值范围:5-3600。

    存储方式

    存储截图文件的模式。

    • 全保存模式:截图文件名中含时间戳,每条流的所有截图文件均会保存在存储对象里。示例:snapshot/{domain}/{app_name}/{stream_name}/{UnixTimestamp}.jpg
    • 覆盖模式:截图文件名不含时间戳,每条流只保存最新的截图文件,新的截图文件会覆盖原来的截图文件。示例:snapshot/{domain}/{app_name}/{stream_name}.jpg

    设置回调

    回调开关。

    回调地址

    回调开关打开后,输入回调地址,回调地址中不能携带消息头和参数。支持HTTP/HTTPS协议,推荐使用HTTPS协议。

    截图回调消息以JSON格式,通过HTTP接口向用户服务器发送POST请求,将截图回调信息反馈到用户服务器。截图回调消息体请参见回调示例

    鉴权密钥

    鉴权Key值。若需要使用回调鉴权功能,请配置鉴权密钥,否则,留空即可。

    • 支持自定义设置,长度为32-128个字符。
    • 支持自动生成。

  6. 单击“确定”,完成直播截图模板的配置。

    截图模板配置后,即可开始直播推流,推流过程中,直播服务会根据创建的截图模板对直播流进行截图。

  7. 您可以单击操作列的“修改”,修改直播截图模板的相关参数,其中,AppName不支持修改。

步骤四:查看直播截图

若您已配置直播截图模板,启动直播推流后,可以通过截图的输出路径快速进入到OBS桶中查看存储的直播截图,您还可以通过回调消息查看直播截图。

  • 通过控制台查看直播截图
    1. 登录视频直播控制台
    2. 在左侧导航栏中,选择域名管理,进入域名管理页面。
    3. 在需要查看直播截图的推流域名行,单击“管理”。
    4. 在左侧导航栏中,选择“模板配置 > 截图配置”。
    5. 在需要查看直播截图的应用行单击输出路径,进入OBS桶中查看存储的直播截图详情。
      图4 查看截图详情

      您可以对直播截图进行下载、分享等操作,具体请参见OBS帮助中心

  • 通过回调消息查看直播截图

    若您在配置直播截图模板时,设置了回调地址,则每生成一张截图都将收到截图回调消息。回调消息字段如表2所示。

    { 
        "domain": "play.example.com",
        "app": "live",
        "stream_name": "test001",
        "snapshot_url": "https://xxx.obs.cn-north-4.myhuaweicloud.com:443...",
        "width":"720",
        "height":"1280",
        "obs_addr": {
            "bucket": "xxx",
            "location": "cn-north-4",
            "object": "xxx.jpg"
        },
       "auth_timestamp":1587954140,
        "auth_sign":"4918b1axxxxxxb583cffa119d72513bbc35a989f8569fxxxxxx057646154a04a"
    }
    表2 消息体字段说明

    字段

    描述

    domain

    推流域名。

    app

    应用名称。

    stream_name

    流名称。

    snapshot_url

    截图下载链接。

    width

    图片宽度。

    单位:像素。

    height

    图片高度。

    单位:像素。

    obs_addr

    截图所在的OBS桶地址,具体结构体说明如下所示:
    • bucket:OBS的桶名称。
    • location:OBS桶所在数据中心。
    • object:OBS对象路径。

    auth_timestamp

    事件通知签名过期UNIX时间戳。当配置了“鉴权密钥”时,携带该字段。

    格式为十进制的UNIX时间戳,即从1970年1月1日(UTC/GMT的午夜)以来的当前时间秒数。

    示例:1592639100(即2020-06-20 15:45)

    auth_sign

    事件通知签名。当配置了“鉴权密钥”时,携带该字段。

    auth_sign = HmacSHA256(domain + app + stream_name + snapshot_url + width + height + obs_addr.bucket + obs_addr.location + obs_addr.object + auth_timestamp,key)

    其中,key为鉴权密钥值。