You need to enable JavaScript to run this app.
视频直播

视频直播

复制全文
加密管理
HLS 标准加密
复制全文
HLS 标准加密

视频直播支持 HLS 标准加密,本文为您介绍在视频直播使用 HLS 的实现原理和进行HLS 加密配置的前置操作。

实现原理

视频直播 HLS 加密功能使用 HLS 协议的通用加密方案,该方案通过使用 AES-128 加密算法对每个 TS(Transport Stream)进行加密,并在生成的播放清单文件中添加解密信息。

本方案中视频直播服务端自身集成了 KMS 服务可提供加密密钥生成和定时轮换功能。

加密解密流程如下:

  1. 客户端使用 HLS 拉流地址发起对加密直播的拉流请求。

  2. 视频直播服务收到请求后,使用自身生成的密钥对直播流进行加密,并将带有解密信息的 M3U8 文件返回给客户端。
    其中,#EXT-X-KEY 标签包含了加密信息,其中 URI 即为向客户自建密钥管理服务请求密钥的地址,M3U8 文件部分内容示例如下。

    #EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-MEDIA-SEQUENCE:107326
    #EXT-X-TARGETDURATION:2
    #EXT-X-PROGRAM-DATE-TIME:2024-05-07T17:59:02.927+08:00
    #EXT-X-KEY:METHOD=AES-128,URI="https://example.kms.com/get_hls_enc_key?key_id=08e765a4da*****c4028755c3c",IV=0x00000000000000000000018F4E83AD11
    #EXTINF:2.000,
    HD_1080p_1715075942927_3070957834_107326.ts?ps=11&app=live&stream=HD_1080p&vhost=push.example.com
    
  3. 客户端使用 M3U8 中的解密信息向自建密钥管理服务发起获取密钥请求。

  4. 自建密钥管理服务向视频直播发起获取密钥请求。

    说明

    自建密钥管理服务需具备密钥缓存能力,当下次有其他拉流请求时可直接返回密钥,无需每次都向视频直播请求获取。

  5. 自建密钥管理服务将视频直播服务返回的密钥返回给拉流客户端,客户端通过获取的密钥解密播放 M3U8 文件。

前提条件

自建密钥管理服务

如需使用 HLS 加密,并实现解密播放功能,您需要自行搭建密钥管理服务。且需具备如下功能。

  • 支持向视频直播服务获取密钥: HLS 加密密钥由视频直播提供,因此您的密钥管理服务需要调用视频直播提供的GetHLSEncryptDataKey API,获取对应加密密钥。
  • 支持对获取的密钥进行缓存:为了避免所有拉流行为均从视频直播服务获取密钥,您的密钥管理服务应具备缓存功能,实现客户端向密钥管理服务获取密钥的能力。

鉴权

您可以使用视频直播提供的远程鉴权对拉流请求的合法性进行鉴权,如需使用请您创建工单联系技术支持,获取配置方法。

操作步骤

  1. 登录视频直播控制台

  2. 左侧导航栏选择功能管理 > 加密管理,选择HLS 标准加密页签。

  3. 单击编辑配置,填写以下参数。

    参数说明
    密钥获取地址客户自建密钥管理服务后,客户端向密钥管理服务请求获取密钥的地址。
    轮换时间视频直播服务端生成密钥的更新周期,单位为秒,取值范围为 [60,604800]。
  4. 单击确认

后续操作

  1. 添加 HLS 类型的直播加密配置,参考加密配置
  2. 生成 HLS 类型的加密流的拉流地址,参考地址生成器
最近更新时间:2025.03.10 19:40:10
这个页面对您有帮助吗?
有用
有用
无用
无用