【问题标题】:AES Content ProtectionAES 内容保护
【发布时间】:2017-08-27 20:13:23
【问题描述】:

我想要将文件 m3u8 从 Wowza Streaming 流式传输到 jwPlayer。我也想让视频无法阅读或下载,我在链接中阅读: https://support.jwplayer.com/customer/portal/articles/1430261-aes-content-protection 关注链接:

var playerInstance = jwplayer("myElement");
playerInstance.setup({
file: 'sample_aes_stream.m3u8',
aestoken: 'EXAMPLE_AES_TOKEN'
});

我使用 AES 解密将我的视频 (.mp4) 加密为 index.m3u8,其中包含许多段文件 (.ts)。文件 m3u8 仅在有密钥文件时读取。但是在下面的演示中,我不明白

jwplayer("myElement").setup({
file: 'sample_aes_stream.m3u8',
aestoken: 'EXAMPLE_AES_TOKEN'
});

EXAMPLE_AES_TOKEN 是什么??? 关注链接:http://iphim.vn/xem-phim-phut-giay-sinh-tu-3136.html 您可以看到我无法使用 IDM(互联网下载管理器)下载视频。我想做但是不知道怎么做。请帮帮我!

【问题讨论】:

    标签: encryption aes jwplayer wowza wowza-transcoder


    【解决方案1】:

    EXAMPLE_AES_TOKEN 是什么???

    是解密视频内容的关键


    请确保您的 JWPlayer 支持 HLS-AES128 加密

    企业版能够解密流段 使用 AES-128 加密。使用加密时,m3u8 播放列表 文件需要引用对应的密钥文件,这样JW 玩家可以检索密钥进行解密。使用 aestoken 配置,播放器也可以传递一个token到key请求 URI,增强 AES 的安全性。

    在 wowza 流媒体上,尝试How to secure Apple HTTP Live Streaming (AES-128 - external method)

    1. 您需要在 Wowza 进行配置。设置 Key 对视频进行编码。
    2. 提供密钥以解密视频内容的密钥网址

    例如。如果我们在 Wowza 定义 key 是“PATRICKZ-KEY”。我们需要在 Key URL 处使用 same key

    <?php
        header('Content-Type: binary/octet-stream');
        header('Pragma: no-cache');
        echo hex2bin('PATRICKZ-KEY');
    }
    ?>
    

    【讨论】:

      【解决方案2】:

      属性 aestoken 实际上是一个令牌。它不是解密视频的关键。 HLS 视频可以在其主播放列表中包含一个带有 url 的标签,您可以在其中获取 aes 密钥。例如,对于像

      这样的主播放列表
      #EXTM3U
      #EXT-X-TARGETDURATION:10
      #EXT-X-VERSION:3
      #EXT-X-MEDIA-SEQUENCE:0
      #EXT-X-PLAYLIST-TYPE:VOD
      #EXTINF:10, 
      #EXT-X-KEY:METHOD=AES-128,URI="http://keyserver.com/key.enc",IV=0x1c341b1db8ff5399501511a99c8c7d14**
      fileSequence0.ts
      #EXTINF:10, 
      fileSequence1.ts
      #EXT-X-ENDLIST
      

      带有#EXT-X-KEY标签的行保存了处理aes解密的数据,包括密钥的url。

      问题是 url 指出的资源应该受到某种东西的保护……在大多数情况下是一个令牌(通常是一个 JWT)。因此,jwplayer 将对该 url 发出一个 get 请求,附加一个带有键“token”且值等于属性“aestoken”值的查询参数。

      所以,如果你的设置是

      jwplayer("myElement").setup({
      file: 'sample_aes_stream.m3u8',
      aestoken: 'EXAMPLE_AES_TOKEN'
      });
      

      然后使用上面的示例播放列表,您的 jwplayer 将执行表单的获取请求

      http://keyserver.com/key.enc?token=EXAMPLE_AES_TOKEN 
      

      获取加密密钥。此外,该查询参数在 jwplayer 的以下请求中传递。

      看看https://developer.jwplayer.com/jwplayer/docs/jw8-enable-aes-decryption

      【讨论】:

        猜你喜欢
        • 2012-03-02
        • 2011-02-20
        • 2010-09-24
        • 1970-01-01
        • 2011-02-26
        • 2018-02-02
        • 2016-02-22
        • 2018-03-28
        • 1970-01-01
        相关资源
        最近更新 更多