mpeg-dash - Shaka 打包器不加密 Assets

标签 mpeg-dash drm widevine shaka eme

即使我在播放器配置中提供了无效的解密 key ,我还是无法弄清楚 shaka 播放器如何能够解密我的 CENC 保护内容。

player.configure({
    drm: {
      clearKeys: {
        '6FepeJBbmaiozSMs18vPfA==': '6FepeJBbmaiozSMs18vPfA==', // ==> invalid key
        '6FepeJBbmaiozSMs18vPfA==': '6FepeJBbmaiozSMs18vPfA==', // ==> invalid key
      }
    }
  })   

这里是给packager的参数

packager in=video-SD.webm,stream=audio,output=protected_audio.webm,drm_label=AUDIO in=video-HD.
webm,stream=video,output=protected_video_HD.webm,drm_label=HD in=video-SD.webm,stream=video,output=prote
cted_video_SD.webm,drm_label=SD  --enable_raw_key_encryption --enable_raw_key_decryption  \

--keys label=AUDIO:key_id=f3c5e0361e6654b28f8049c778b23946:key=a4631a153a443df9eed0593043db7519, label=SD:key_id=abba271e8bcf552bbd2e86a434a9a5d9:key=69eaa802a6763af979e8d1940fb88392,label=HD:key_id=abba271e8bcf552bbd2e86a434a9a5d9:key=69eaa802a6763af979e8d1940fb88392  \

--base_urls https://s3-eu-west-1.amazonaws.com/dash/ \
--mpd_output h264.mpd

mpd 文件看起来像

<?xml version="1.0" encoding="UTF-8"?>
<!--Generated with https://github.com/google/shaka-packager version 72c4797-release-->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" minBufferTime="PT2S" type="static" mediaPresentationDuration="PT5.539000034332275S">
  <BaseURL>https://s3-eu-west-1.amazonaws.com/dash/</BaseURL>
  <Period id="0">
    <AdaptationSet id="0" contentType="audio" lang="en" subsegmentAlignment="true">
      <ContentProtection schemeIdUri="urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b" cenc:default_KID="f3c5e036-1e66-54b2-8f80-49c778b23946">
        <cenc:pssh>AAAAVHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAPzxeA2HmZUso+AScd4sjlGq7onHovPVSu9LoakNKml2au6Jx6Lz1UrvS6GpDSppdkAAAAA</cenc:pssh>
      </ContentProtection>
      <Representation id="0" bandwidth="96897" codecs="vorbis" mimeType="audio/webm" audioSamplingRate="44100">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
        <BaseURL>protected_audio.webm</BaseURL>
        <SegmentBase indexRange="4601-4619" timescale="1000000" presentationTimeOffset="3000">
          <Initialization range="0-4600"/>
        </SegmentBase>
      </Representation>
    </AdaptationSet>
    <AdaptationSet id="1" contentType="video" width="560" height="320" frameRate="1000000/33000" subsegmentAlignment="true" par="7:4">
      <ContentProtection schemeIdUri="urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b" cenc:default_KID="abba271e-8bcf-552b-bd2e-86a434a9a5d9">
        <cenc:pssh>AAAAVHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAPzxeA2HmZUso+AScd4sjlGq7onHovPVSu9LoakNKml2au6Jx6Lz1UrvS6GpDSppdkAAAAA</cenc:pssh>
      </ContentProtection>
      <Representation id="1" bandwidth="553816" codecs="vp8" mimeType="video/webm" sar="1:1">
        <BaseURL>protected_video_HD.webm</BaseURL>
        <SegmentBase indexRange="336-354" timescale="1000000" presentationTimeOffset="3000">
          <Initialization range="0-335"/>
        </SegmentBase>
      </Representation>
    </AdaptationSet>
    <AdaptationSet id="2" contentType="video" width="560" height="320" frameRate="1000000/33000" subsegmentAlignment="true" par="7:4">
      <ContentProtection schemeIdUri="urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b" cenc:default_KID="abba271e-8bcf-552b-bd2e-86a434a9a5d9">
        <cenc:pssh>AAAAVHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAPzxeA2HmZUso+AScd4sjlGq7onHovPVSu9LoakNKml2au6Jx6Lz1UrvS6GpDSppdkAAAAA</cenc:pssh>
      </ContentProtection>
      <Representation id="2" bandwidth="561429" codecs="vp09.00.21.08.01.01.01.01.00" mimeType="video/webm" sar="1:1">
        <BaseURL>protected_video_SD.webm</BaseURL>
        <SegmentBase indexRange="366-384" timescale="1000000" presentationTimeOffset="3000">
          <Initialization range="0-365"/>
        </SegmentBase>
      </Representation>
    </AdaptationSet>
  </Period>
</MPD>

最佳答案

您或其他人在我们的 GitHub 页面上提出了类似的问题 here .最好在我们的 GitHub 页面上提问。

问题是 Assets 实际上并未加密。它有明显的领先优势,因此前几秒实际上并未加密。在 GitHub 问题上,他们明确通过了 --clear-lead 6;但这不会传递任何内容,因此 Shaka Packager 默认为 10 秒。此 Assets 只有 6 秒长,因此没有加密。

关于mpeg-dash - Shaka 打包器不加密 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55712406/

相关文章:

android - Exoplayer 错误中的 Widevine Drm

ffmpeg - MPEG-DASH MPD 文件无法正确播放

php - 不同视频分辨率的理想比特率

c# - 是否可以将 "patch"a .exe 用于复制保护?

browser - VideoJS根据浏览器选择来源

android - DRMManagerClient acquireDrmInfo 失败

html - 如何使用ClearKey加密WebM或MP4文件然后播放

audio - 如何将 mp4 音频破折号片段与另一个音频合并

ios - iOS 和 AirPlay 上的 Widevine 视频流

ios - 如何防止iOS11内置屏幕录制功能(如Amazon Prime)以保护DRM内容?