Shaka Player with CENC

There seems to be some kind of bug with not just shaka player but with several other players. It seems that wowza doesn’t generate proper chunks for MPEG-DASH streaming protocol when CENC is enabled. Is this a known bug. I have verified that the keys work using edash packager and bento4 packager. bento4 also generates identical PSSH box as wowza but for some reason it doesn’t work, the players fail. Please note that clear content works fine except on Edge and Internet Explorer 11 browsers which is also weird.

Bento4 sample manifest:

<?xml version="1.0" ?>
<MPD mediaPresentationDuration="PT2M25.480S" minBufferTime="PT1.92S" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:cenc="urn:mpeg:cenc:2013" xmlns:mspr="urn:microsoft:playready">
  <!-- Created with Bento4 mp4-dash.py, VERSION=1.6.0-608 -->
  <Period>
    <!-- Audio -->
    <AdaptationSet mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
      <!-- MPEG Common Encryption -->
      <ContentProtection cenc:default_KID="0922fdf5-6afa-41a0-8861-5d1bc84cac60" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
      <!-- EME Common Encryption -->
      <ContentProtection schemeIdUri="urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b" value="cenc">
        <cenc:pssh>AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAEJIv31avpBoIhhXRvITKxgAAAAAA==</cenc:pssh>
      </ContentProtection>
      <!-- PlayReady -->
      <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
        <mspr:pro>AjxXUk1IRUFERVIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vRFJNLzIwMDcvMDMvUGxheVJlYWR5SGVhZGVyIiB2ZXJzaW9uPSI0LjAuMC4wIj48REFUQT48UFJPVEVDVElORk8+PEtFWUxFTj4xNjwvS0VZTEVOPjxBTEdJRD5BRVNDVFI8L0FMR0lEPjwvUFJPVEVDVElORk8+PEtJRD45ZjBpQ2ZwcW9FR0lZVjBieUV5c1lBPT08L0tJRD48Q0hFQ0tTVU0+ZG84UWRmY1JDNFE9PC9DSEVDS1NVTT48TEFfVVJMPmh0dHA6Ly8xOTIuMTY4LjAuOC9saWNlbnNlPC9MQV9VUkw+PC9EQVRBPjwvV1JNSEVBREVSPg==</mspr:pro>
      </ContentProtection>
      <!-- Widevine -->
      <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
        <cenc:pssh>AAAARHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACQIARIQCSL99Wr6QaCIYV0byEysYBoLbW9yZXNjcmVlbnMiASo=</cenc:pssh>
      </ContentProtection>
      <SegmentTemplate duration="1920" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/seg-$Number$.m4f" startNumber="1" timescale="1000"/>
      <Representation audioSamplingRate="44100" bandwidth="76236" codecs="mp4a.40.2" id="audio/und">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
    </AdaptationSet>
    <!-- Video -->
    <AdaptationSet maxHeight="360" maxWidth="640" mimeType="video/mp4" minHeight="360" minWidth="640" segmentAlignment="true" startWithSAP="1">
      <!-- MPEG Common Encryption -->
      <ContentProtection cenc:default_KID="0922fdf5-6afa-41a0-8861-5d1bc84cac60" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
      <!-- EME Common Encryption -->
      <ContentProtection schemeIdUri="urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b" value="cenc">
        <cenc:pssh>AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAEJIv31avpBoIhhXRvITKxgAAAAAA==</cenc:pssh>
      </ContentProtection>
      <!-- PlayReady -->
      <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
        <mspr:pro>AjxXUk1IRUFERVIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vRFJNLzIwMDcvMDMvUGxheVJlYWR5SGVhZGVyIiB2ZXJzaW9uPSI0LjAuMC4wIj48REFUQT48UFJPVEVDVElORk8+PEtFWUxFTj4xNjwvS0VZTEVOPjxBTEdJRD5BRVNDVFI8L0FMR0lEPjwvUFJPVEVDVElORk8+PEtJRD45ZjBpQ2ZwcW9FR0lZVjBieUV5c1lBPT08L0tJRD48Q0hFQ0tTVU0+ZG84UWRmY1JDNFE9PC9DSEVDS1NVTT48TEFfVVJMPmh0dHA6Ly8xOTIuMTY4LjAuOC9saWNlbnNlPC9MQV9VUkw+PC9EQVRBPjwvV1JNSEVBREVSPg==</mspr:pro>
      </ContentProtection>
      <!-- Widevine -->
      <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
        <cenc:pssh>AAAARHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACQIARIQCSL99Wr6QaCIYV0byEysYBoLbW9yZXNjcmVlbnMiASo=</cenc:pssh>
      </ContentProtection>
      <SegmentTemplate duration="1920" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/seg-$Number$.m4f" startNumber="1" timescale="1000"/>
      <Representation bandwidth="1110666" codecs="avc1.64001E" frameRate="25" height="360" id="video/1" scanType="progressive" width="640"/>
    </AdaptationSet>
  </Period>
</MPD>

Woza sample manifest:

<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="urn:mpeg:dash:schema:mpd:2011"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     xmlns:cenc="urn:mpeg:cenc:2013"
     xmlns:mspr="urn:microsoft:playready"
     xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd"
     profiles="urn:mpeg:dash:profile:isoff-live:2011"
     type="static"
     publishTime="2016-04-13T14:36:04Z" 
     mediaPresentationDuration="PT2M25.496S"
     minBufferTime="PT1.5S">
<ProgramInformation>
    <Title>video_360p.mp4</Title>
</ProgramInformation>
<Location>http://192.168.0.8:1935/vod/_definst_/mp4:video_360p.mp4/manifest_w173738678.mpd</Location>
<Period id="0" start="PT0.0S">
    <AdaptationSet id="0" mimeType="video/mp4" width="640" height="360" par="16:9" frameRate="25" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
        <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="0922fdf5-6afa-41a0-8861-5d1bc84cac60"/>
        <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="Microsoft PlayReady">
            <cenc:pssh>AAACrnBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAo6OAgAAAQABAIQCPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgA5AGYAMABpAEMAZgBwAHEAbwBFAEcASQBZAFYAMABiAHkARQB5AHMAWQBBAD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcAA6AC8ALwBmAGEAbABzAGUAPAAvAEwAQQBfAFUAUgBMAD4APABEAFMAXwBJAEQAPgBWAGwAUgA3AEkAZABzAEkASgBFAHUAUgBkADAANgBMAGEAcQBzADIAagB3AD0APQA8AC8ARABTAF8ASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBkAG8AOABRAGQAZgBjAFIAQwA0AFEAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=</cenc:pssh>
            <mspr:pro>jgIAAAEAAQCEAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AOQBmADAAaQBDAGYAcABxAG8ARQBHAEkAWQBWADAAYgB5AEUAeQBzAFkAQQA9AD0APAAvAEsASQBEAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAOgAvAC8AZgBhAGwAcwBlADwALwBMAEEAXwBVAFIATAA+ADwARABTAF8ASQBEAD4AVgBsAFIANwBJAGQAcwBJAEoARQB1AFIAZAAwADYATABhAHEAcwAyAGoAdwA9AD0APAAvAEQAUwBfAEkARAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AZABvADgAUQBkAGYAYwBSAEMANABRAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</mspr:pro>
        </ContentProtection>
        <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed" value="Widevine">
            <cenc:pssh>AAAARHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACQIARIQCSL99Wr6QaCIYV0byEysYBoLbW9yZXNjcmVlbnMiASo=</cenc:pssh>
        </ContentProtection>
        <SegmentTemplate presentationTimeOffset="0" timescale="90000" media="chunk_ctvideo_cfm4s_rid$RepresentationID$_cs$Time$_w173738678_mpd.m4s" initialization="chunk_ctvideo_cfm4s_rid$RepresentationID$_cinit_w173738678_mpd.m4s">
            <SegmentTimeline>
                <S t="0" d="1036800"/>
                <S d="1036800"/>
                <S d="1036800"/>
                <S d="1036800"/>
                <S d="1036800"/>
                <S d="1036800"/>
                <S d="1036800"/>
                <S d="1036800"/>
                <S d="1036800"/>
                <S d="1036800"/>
                <S d="1036800"/>
                <S d="1036800"/>
                <S d="653040"/>
            </SegmentTimeline>
        </SegmentTemplate>
        <Representation id="p0a0r0" codecs="avc1.64001e" sar="1:1" bandwidth="800000" />
    </AdaptationSet>
    <AdaptationSet id="1" mimeType="audio/mp4" lang="eng" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
        <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="0922fdf5-6afa-41a0-8861-5d1bc84cac60"/>
        <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="Microsoft PlayReady">
            <cenc:pssh>AAACrnBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAo6OAgAAAQABAIQCPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgA5AGYAMABpAEMAZgBwAHEAbwBFAEcASQBZAFYAMABiAHkARQB5AHMAWQBBAD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcAA6AC8ALwBmAGEAbABzAGUAPAAvAEwAQQBfAFUAUgBMAD4APABEAFMAXwBJAEQAPgBWAGwAUgA3AEkAZABzAEkASgBFAHUAUgBkADAANgBMAGEAcQBzADIAagB3AD0APQA8AC8ARABTAF8ASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBkAG8AOABRAGQAZgBjAFIAQwA0AFEAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=</cenc:pssh>
            <mspr:pro>jgIAAAEAAQCEAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AOQBmADAAaQBDAGYAcABxAG8ARQBHAEkAWQBWADAAYgB5AEUAeQBzAFkAQQA9AD0APAAvAEsASQBEAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAOgAvAC8AZgBhAGwAcwBlADwALwBMAEEAXwBVAFIATAA+ADwARABTAF8ASQBEAD4AVgBsAFIANwBJAGQAcwBJAEoARQB1AFIAZAAwADYATABhAHEAcwAyAGoAdwA9AD0APAAvAEQAUwBfAEkARAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AZABvADgAUQBkAGYAYwBSAEMANABRAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</mspr:pro>
        </ContentProtection>
        <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed" value="Widevine">
            <cenc:pssh>AAAARHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACQIARIQCSL99Wr6QaCIYV0byEysYBoLbW9yZXNjcmVlbnMiASo=</cenc:pssh>
        </ContentProtection>
        <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
        <SegmentTemplate presentationTimeOffset="0" timescale="44100" media="chunk_ctaudio_cfm4s_rid$RepresentationID$_cs$Time$_w173738678_mpd.m4s" initialization="chunk_ctaudio_cfm4s_rid$RepresentationID$_cinit_w173738678_mpd.m4s">
            <SegmentTimeline>
                <S t="0" d="508032"/>
                <S d="508032"/>
                <S d="508032"/>
                <S d="508032"/>
                <S d="508032"/>
                <S d="508032"/>
                <S d="508032"/>
                <S d="508032"/>
                <S d="508032"/>
                <S d="508032"/>
                <S d="508032"/>
                <S d="508032"/>
                <S d="319990"/>
            </SegmentTimeline>
        </SegmentTemplate>
        <Representation id="p0a1r0" codecs="mp4a.40.2" audioSamplingRate="44100" bandwidth="64000">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
        </Representation>
    </AdaptationSet>
</Period>
</MPD>

Tested using http://shaka-player-demo.appspot.com/demo/ with custom asset option.

Hello,

We do have a update available that fixes a bug in MPEG-DASH vod streaming with CENC, that cause a exception and failure on segment requests. If you would like this update please open a ticket with our Support Team and reference this forum post.

Best regards,

Andrew

I have downgraded to 4.3.0 and it seems that the big is not present for VOD. But now there is a problem with live playback with CENC on shaka player. Also, clear stream doesn’t really work at all. Shaka player reports: “(video:1) cannot find segment: currentPeriod.startTime=0 lookupTime=28.18400001525879”.

Can you confirm if this is another bug?

Hello,

Again, we suggest that you do open a ticket requesting the latest update that will fix this issue.

MPEG-DASH is an evolving technology and many related fixes have been included since version 4.3.0. We are constantly adapting our DASH implementation to meet the compatibility requirements of various players and it’s suggested that you update to the latest version of Wowza Streaming Engine for best performance.

Best regards,

Andrew