关于 HLS 视频播放鉴权,每条 TS 均请求解密 KEY,造成的服务器压力求解.

发布于 2022-09-12 04:32:42 字数 259 浏览 36 评论 0

公司视频之前未加密,为了提高被下载的难度.我进行了 HLS 标准加密操作.

当前遇到的问题是:当一个视频如被切成了 100 个 TS,则播放时每个 TS 都会请求服务器的鉴权 url 获取 KEY.

这样就会造成对服务器端的很大压力. 是否有方法让视频播放时只请求一次 key.而不进行多次请求.

希望有相关经验的大佬指点一下.
image

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空城缀染半城烟沙 2022-09-19 04:32:42

视频已经切片后存储在阿里云OSS

原理是一样的,不过手法有小区别。

步骤如下

  1. 动态生成 m3u8 中的鉴权 url,要求可以区分不同视频源。
  2. 鉴权 url设置缓存策略。

举例,A视频目录在 /A/index-hls.m3u8鉴权 url可以设置成 /A/play_very.php,同理 B视频设置成 /B/play_very.php

当然你也可以用客户端的 IP 代替视频编号作区分,形如 /play_very.php?ip=1.2.3.4, 和 /play_very.php?ip=5.6.7.8。这样每个客户端只会请求一次鉴权 url,无论看几部视频。


首先设置多个 ts 共享一个 key,然后为 key 设置缓存策略即可。

具体步骤如下

  1. 每 10 个 ts 更新一次 key

    hls_fragments_per_key 10;
  2. 设置缓存策略,5分钟过期

    location /keys {
      etag on;
      expires 5m;
      add_header Cache-Control "public";
      ...
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文