Shaka打包程序不加密资产

时间:2019-04-16 16:07:06

标签: mpeg-dash drm widevine shaka eme

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

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

这是给包装程序的参数

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>

1 个答案:

答案 0 :(得分:1)

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

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