Dash-Industry-Forum / ClearKey-Content-Protection

The repository holds a description and an issue tracker for how ClearKey-based content protection should be used with MPEG DASH.
28 stars 5 forks source link

Azure Clearkey using different schemeIdUri #3

Open wilaw opened 4 years ago

wilaw commented 4 years ago

Azure outputs a ClearKey manifest with different content Protection elements than what is recommended in this profile. How do we reconcile this against what has been proposed?

<?xml version="1.0" encoding="utf-8"?>
<MPD
                xmlns="urn:mpeg:dash:schema:mpd:2011"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static"
                xmlns:sea="urn:mpeg:dash:schema:sea:2012" mediaPresentationDuration="PT1M14.608S" minBufferTime="PT7S">
                <Period>
                                <AdaptationSet id="1" group="5" profiles="ccff" bitstreamSwitching="false" segmentAlignment="true" contentType="audio" mimeType="audio/mp4" codecs="mp4a.40.2" lang="en">
                                                <ContentProtection schemeIdUri="urn:mpeg:dash:sea:2012">
                                                                <sea:SegmentEncryption schemeIdUri="urn:mpeg:dash:sea:aes128-cbc:2013"/>
                                                                <sea:KeySystem keySystemUri="urn:mpeg:dash:sea:keysys:http:2013"/>
                                                                <sea:CryptoPeriod keyUriTemplate="https://edgeworld.keydelivery.eastus.media.azure.net/?kid=1e2ee183-841f-4648-88cf-0942e9edea29" IV="0xC8FD40141A5D4F4618508A7486F8E077"/>
                                                </ContentProtection>
                                                <Label>aac_eng_2_129_2_1</Label>
                                                <SegmentTemplate timescale="10000000" media="QualityLevels($Bandwidth$)/Fragments(aac_eng_2_129_2_1=$Time$,format=mpd-time-csf)" initialization="QualityLevels($Bandwidth$)/Fragments(aac_eng_2_129_2_1=i,format=mpd-time-csf)">
                                                                <SegmentTimeline>
                                                                                <S d="60160000" r="11"/>
                                                                                <S d="22613333"/>
                                                                </SegmentTimeline>
                                                </SegmentTemplate>
                                                <Representation id="5_A_aac_eng_2_129_2_1_1" bandwidth="129000" audioSamplingRate="48000"/>
                                </AdaptationSet>
                                <AdaptationSet id="2" group="1" profiles="ccff" bitstreamSwitching="false" segmentAlignment="true" contentType="video" mimeType="video/mp4" codecs="avc1.640029" maxWidth="1920" maxHeight="1080" startWithSAP="1">
                                                <ContentProtection schemeIdUri="urn:mpeg:dash:sea:2012">
                                                                <sea:SegmentEncryption schemeIdUri="urn:mpeg:dash:sea:aes128-cbc:2013"/>
                                                                <sea:KeySystem keySystemUri="urn:mpeg:dash:sea:keysys:http:2013"/>
                                                                <sea:CryptoPeriod keyUriTemplate="https://edgeworld.keydelivery.eastus.media.azure.net/?kid=1e2ee183-841f-4648-88cf-0942e9edea29" IV="0xC8FD40141A5D4F4618508A7486F8E077"/>
                                                </ContentProtection>
                                                <SegmentTemplate timescale="10000000" media="QualityLevels($Bandwidth$)/Fragments(video=$Time$,format=mpd-time-csf)" initialization="QualityLevels($Bandwidth$)/Fragments(video=i,format=mpd-time-csf)">
                                                                <SegmentTimeline>
                                                                                <S d="60060000" r="4"/>
                                                                                <S d="59726333"/>
                                                                                <S d="60060000" r="4"/>
                                                                                <S d="59726333"/>
                                                                                <S d="26026000"/>
                                                                </SegmentTimeline>
                                                </SegmentTemplate>
                                                <Representation id="1_V_video_1" bandwidth="6831000" width="1920" height="1080"/>
                                                <Representation id="1_V_video_2" bandwidth="3541000" codecs="avc1.640020" width="1280" height="720"/>
                                                <Representation id="1_V_video_3" bandwidth="2242000" codecs="avc1.64001F" width="960" height="540"/>
                                                <Representation id="1_V_video_4" bandwidth="1172000" codecs="avc1.64001E" width="640" height="360"/>
                                                <Representation id="1_V_video_5" bandwidth="735000" codecs="avc1.640015" width="480" height="270"/>
                                                <Representation id="1_V_video_6" bandwidth="388000" codecs="avc1.64000D" width="320" height="180"/>
                                </AdaptationSet>
                </Period>
</MPD>
ZmGorynych commented 3 years ago

They use DASH-SEA (ISO/IEC 23009-4).