Dynamische pakketten in Media Services v3

Media Services-logo v3


Waarschuwing

Azure Media Services wordt op 30 juni 2024 buiten gebruik gesteld. Zie de Handleiding voor buitengebruikstelling van AMS voor meer informatie.

Azure Media Services biedt ingebouwde origin-server- en verpakkingsmogelijkheden voor het leveren van inhoud in HLS- en MPEG DASH-streamingprotocolindelingen. In AMS fungeert het streaming-eindpunt als de oorspronkelijke server die opgemaakte HLS- en DASH-inhoud verzendt naar clientspelers die ondersteuning bieden voor adaptive bitrate streaming met behulp van deze populaire indelingen. Het streaming-eindpunt ondersteunt ook veel functies, zoals Just-In-Time, dynamische pakketten met of zonder inhoudsbeveiliging, om alle belangrijke apparaten (zoals iOS- en Android-apparaten) te bereiken.

De meeste browsers en mobiele apparaten op de markt ondersteunen en begrijpen de HLS- of DASH-streamingprotocollen. iOS vereist bijvoorbeeld dat streams worden geleverd in de HLS-indeling (HTTP Live Streaming) en Android-apparaten ondersteunen HLS en MPEG DASH op bepaalde modellen (of door het gebruik van de exoplayer op toepassingsniveau voor Android-apparaten).

In Media Services vertegenwoordigt een streaming-eindpunt (origin) een dynamische service (just-in-time) die u uw live en on-demand-inhoud rechtstreeks kan leveren aan een client-speler-app. De service maakt gebruik van een van de algemene protocollen voor het streamen van media die worden vermeld in de volgende sectie. Dynamische pakketten is een functie die standaard wordt geleverd op alle streaming-eindpunten.

dynamische pakketten

De voordelen van Just-In-Time verpakken zijn de volgende:

  • U kunt al uw bestanden opslaan in de standaard MP4-bestandsindeling.
  • U hoeft niet meerdere kopieën van statische verpakte HLS- en DASH-indelingen op te slaan in blobopslag, waardoor de hoeveelheid opgeslagen video-inhoud wordt verminderd en uw opslagkosten worden verlaagd.
  • U kunt direct profiteren van nieuwe protocolupdates en wijzigingen in de specificaties zonder dat u de statische inhoud in uw catalogus opnieuw hoeft te verpakken.
  • U kunt inhoud leveren met of zonder versleuteling en DRM met behulp van dezelfde MP4-bestanden in de opslag.
  • U kunt de manifesten dynamisch filteren of wijzigen met eenvoudige filters op assetniveau of globale filters om specifieke nummers, resoluties, talen te verwijderen of kortere markeringsclips uit dezelfde MP4-bestanden te bieden zonder de inhoud opnieuw te coderen of opnieuw te genereren.

Voorbereiding van de bronbestanden voor levering

Als u dynamische pakketten wilt gebruiken, codeert u het mezzanine-bestand (bronbestand) in een set mp4-bestanden (ISO Base Media 14496-12). De gecodeerde videobestanden en streamingconfiguratiebestanden bevinden zich in een uitvoerasset. Vanuit deze set bestanden kunt u dynamische pakketten gebruiken om video te leveren via de protocollen voor streaming media.

Normaal gesproken gebruikt u de standaardcoderingsprogramma van Azure Media Services om deze inhoud te genereren met behulp van de voorinstellingen voor Content Aware Encoding of de adaptive bitrate-voorinstellingen. Beide genereren een set MP4-bestanden die klaar zijn voor streaming en dynamische pakketten.

U kunt er ook voor kiezen om te coderen met behulp van een externe service, on-premises of op uw eigen VM's of serverloze functie-apps. Inhoud die extern is gecodeerd, kan worden geüpload naar een asset voor streaming, mits deze voldoet aan de coderingsvereisten voor streaming-indelingen voor adaptieve bitrate. Een voorbeeldproject van het uploaden van een vooraf gecodeerde MP4 voor streaming is beschikbaar in de .NET SDK-voorbeelden. Zie Bestaande Mp4-bestanden streamen.

Dynamische pakketten van Azure Media Services ondersteunen alleen video- en audiobestanden in de MP4-containerindeling. Audiobestanden moeten ook worden gecodeerd in een MP4-container wanneer alternatieve codecs, zoals Dolby, worden gebruikt.

Video's beschikbaar maken voor streaming

Als u video's in de gecodeerde asset beschikbaar wilt maken voor clients om af te spelen, publiceert u de asset met behulp van een streaming-locator en bouwt u de juiste HLS- en DASH-streaming-URL's. Door het protocol te wijzigen dat wordt gebruikt voor de URL-indelingsquery, levert de service het juiste streamingmanifest (HLS, MPEG DASH).

Als gevolg hiervan hoeft u de bestanden alleen op te slaan en te betalen in één opslagindeling (MP4) en genereert Media Services de juiste HLS- of DASH-manifesten op basis van aanvragen van uw clientspelers.

Als u van plan bent om uw inhoud te beschermen met Media Services dynamische versleuteling, raadpleegt u Streaming protocols and encryption types (streaming-protocollen en versleutelingstypen).

HLS leveren

Dynamische HLS-pakketten

Uw streamingclient kan de volgende HLS-indelingen opgeven. We raden u aan de CMAF-indeling te gebruiken voor compatibiliteit met de nieuwste spelers en iOS-apparaten. Voor oudere apparaten zijn de indelingen v4 en v3 ook beschikbaar door de opmaakqueryreeks te wijzigen.

Protocol Notatietekenreeks Voorbeeld
HLS CMAF format=m3u8-cmaf https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-cmaf)
HLS V4 format=m3u8-aapl https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-aapl)
HLS V3 format=m3u8-aapl-v3 https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-aapl-v3)

Notitie

In de vorige richtlijnen van Apple wordt aanbevolen dat bij de terugval voor netwerken met lage bandbreedte alleen audio zou kunnen worden gestreamd. Op dit moment genereert de Media Services-encoder automatisch een nummer met alleen audio. Apple-richtlijnen stellen nu dat het nummer alleen audio niet moet worden opgenomen, met name voor Apple TV-distributie. Om te voorkomen dat de speler standaard een nummer met alleen audio kan maken, raden we u aan de tag audio-only=false te gebruiken in de URL waardoor weergave met alleen audio in HLS wordt verwijderd. U kunt ook gewoon HLS-V3 gebruiken. Bijvoorbeeld http://host/locator/asset.ism/manifest(format=m3u8-aapl,audio-only=false).

HLS-verpakkingsverhouding voor VOD

Als u de verpakkingsverhouding van VOD-inhoud voor oudere HLS-indelingen wilt beheren, kunt u de metagegevenstag fragmentsPerHLSSegment in het .ism-bestand instellen om de standaardverpakkingsverhouding van 3:1 te bepalen voor TS-segmenten die worden geleverd vanuit de oudere hls-indeling manifesten v3 en v4. Voor deze instellingswijziging moet u het .ism-bestand in de opslag rechtstreeks wijzigen om de verpakkingsverhouding aan te passen.

Voorbeeld van ism-servermanifest met fragmentsPerHLSSegment ingesteld op 1.

   <?xml version="1.0" encoding="utf-8" standalone="yes"?>
   <smil xmlns="http://www.w3.org/2001/SMIL20/Language">
      <head>
         <meta name="formats" content="mp4" />
         <meta name="fragmentsPerHLSSegment" content="1"/>
      </head>
      <body>
         <switch>
         ...
         </switch>
      </body>
   </smil>

DASH bezorgen

DYNAMISCHE DASH-pakketten

Uw streaming-client kan de volgende MPEG-DASH-indelingen opgeven:

Protocol Notatietekenreeks Voorbeeld
MPEG-DASH CMAF format=mpd-time-cmaf https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=mpd-time-cmaf)
MPEG-DASH CSF (verouderd) format=mpd-time-csf https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=mpd-time-csf)

Smooth Streaming-manifesten leveren

Dynamische pakketten voor Smooth Streaming

Uw streaming-client kan de volgende Smooth Streaming-indelingen opgeven:

Protocol Opmerkingen/voorbeelden
Smooth Streaming https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest
Smooth Streaming 2.0 (verouderd manifest) De Smooth Streaming manifest-indeling bevat standaard de herhalingstag (r-tag). Sommige spelers bieden echter geen ondersteuning voor de r-tag. Clients met deze spelers kunnen een indeling gebruiken waarmee de r-tag wordt uitgeschakeld:

https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=fmp4-v20)

Notitie

Smooth Streaming vereist dat zowel audio als video aanwezig is in de stroom.

Werkstroom voor streaming on demand

De volgende stappen tonen een algemene Media Services-streaming-werkstroom waarbij dynamische pakketten worden gebruikt samen met de Standaard Encoder in Azure Media Services.

  1. Upload een invoerbestand, zoals een MP4-, QuickTime-/MOV-bestand of andere ondersteunde bestandsindeling. Dit bestand wordt ook wel het mezzanine- of bronbestand genoemd. Zie indelingen die worden ondersteund door de Standard-encodervoor een lijst met ondersteunde indelingen.

  2. Codeer uw mezzanine-bestand in een H.264/AAC MP4-set met adaptieve bitsnelheid.

    Als u al gecodeerde bestanden hebt en alleen de bestanden wilt kopiëren en streamen, gebruikt u: De API’s CopyVideo en CopyAudio. Als gevolg daarvan zal een nieuw MP4-bestand met een streamingmanifest (.ism-bestand) worden gemaakt.

    Bovendien kunt u het .ism- en .ismc-bestand genereren op een vooraf gecodeerd bestand, zolang het is gecodeerd met behulp van de juiste instellingen voor adaptive bitrate streaming (dit is meestal GOPs van 2 seconden, sleutelframeafstanden van 2 minuten en max, en CBR-moduscodering (Constant Bitrate).)

    Zie het stream-bestaande Mp4 .NET SDK-voorbeeld voor meer informatie over het genereren van de .ism (servermanifest) en .ismc (clientmanifesten) voor streaming vanuit een bestaand, vooraf gecodeerd MP4-bestand.

  3. Publiceer de uitvoer-asset die de MP4-set met adaptieve bitsnelheid bevat. U publiceert door het maken van een streaming-locator.

  4. Bouw URL's die zijn gericht op verschillende indelingen (HLS, MPEG-DASH en Smooth Streaming). Het streaming-eindpunt zorgt voor het aanbieden van het juiste manifest en de juiste aanvragen voor al deze verschillende indelingen.

Het downloadpad is aanwezig in de bovenstaande afbeelding om te laten zien dat u een MP4-bestand rechtstreeks via het streaming-eindpunt (origin) kunt downloaden (u geeft het downloadbare streaming-beleid op in de streaming-locator).
Het dynamische pakket wijzigt het bestand niet. U kunt eventueel de API's van Azure Blob Storage gebruiken als u een MP4 rechtstreeks wilt openen voor progressief downloaden als u de functies voor het streaming-eindpunt wilt omzeilen.

Coderen naar MP4's met adaptieve bitsnelheid

In de volgende artikelen ziet u voorbeelden van het coderen van een video met Media Services:

Zie de lijst met ondersteunde invoerindelingen en codecs voor Standard Encoder.

Werkstroom voor live streamen

Een livegebeurtenis kan worden ingesteld op een pass-through (een on-premises live-encoder verzendt een stroom met meerdere bitsnelheden) of live-codering (een on-premises live-encoder verzendt een stream met één bitsnelheid).

Hier volgt een algemene werkstroom voor live streamen met dynamische pakketten:

  1. Maak een livegebeurtenis.
  2. Haal de opname-URL op en configureer uw on-premises encoder voor het gebruik van de URL om de bijdragefeed te verzenden.
  3. Haal de preview-URL op en gebruik deze om te controleren of de input van de encoder wordt ontvangen.
  4. Maak een nieuwe asset.
  5. Maak een live-uitvoer en gebruik de assetnaam die u hebt gemaakt.
    De live uitvoer archiveert de stroom naar de asset.
  6. Maak een streaming-locator met de ingebouwde streaming-beleidstypen.
    Als u van plan bent om uw inhoud te versleutelen, raadpleegt u het Overzicht van inhoudsbeveiliging.
  7. Maak een lijst van de paden op de streaming-locator om de te gebruiken URL's te krijgen.
  8. Haal de hostnaam op voor het streaming-eindpunt van waaruit u wilt streamen.
  9. Bouw URL's die zijn gericht op verschillende indelingen (HLS, MPEG-DASH en Smooth Streaming). Het streaming-eindpunt zorgt voor het aanbieden van het juiste manifest en de juiste aanvragen voor de verschillende indelingen.

Zie Overzicht van live streamen voor informatie over live streamen in Media Services v3.

Video-codecs die worden ondersteund door dynamische pakketten

Dynamische pakketten ondersteunen videobestanden in de bestandsindeling MP4-container en bevatten video die is gecodeerd met H.264 (MPEG-4 AVC of AVC1) of H.265 (HEVC, hev1 of hvc1).

Notitie

Resoluties van maximaal 4.000 en framesnelheden van maximaal 60 frames per seconde zijn getest met dynamische pakketten.

Audio-codecs die worden ondersteund door dynamische pakketten

Dynamische pakketten ondersteunen ook audiobestanden die zijn opgeslagen in de bestandsindeling MP4-container die gecodeerde audiostroom bevat in een van de volgende codecs:

  • AAC (AAC-LC, HE-AAC v1 of HE-AAC v2).

  • Dolby Digital Plus (Enhanced AC-3 of E-AC3). De gecodeerde audio moet worden opgeslagen in de MP4-containerindeling om met dynamische pakketten te kunnen werken.

  • Dolby Atmos

    Het streamen van Dolby Atmos-inhoud wordt ondersteund voor standaarden zoals het MPEG-DASH-protocol met CSF (Common Streaming Format) of CMAF (Common Media Application Format) gefragmenteerde MP4, en via HLS (HTTP Live Streaming) met CMAF.

  • DTS
    DTS-codecs die worden ondersteund door de pakketindelingen DASH-CSF, DASH-CMAF, HLS-M2TS en HLS-CMAF zijn:

    • DTS Digital Surround (DTSC)
    • DTS-HD High Resolution en DTS-HD Master Audio (dtsh)
    • DTS Express (DTSE)
    • DTS-HD Lossless (no core) (DTSL)

Dynamische pakketten ondersteunen meerdere audiosporen met DASH of HLS (versie 4 of later) voor streaming-assets die meerdere audiosporen met meerdere codecs en talen bevatten.

Voor alle bovenstaande audiocodecs moet de gecodeerde audio worden opgeslagen in de MP4-containerindeling om met dynamische pakketten te kunnen werken. De service biedt geen ondersteuning voor raw-bestandsindelingen van elementaire streams in Blob Storage (het volgende wordt bijvoorbeeld niet ondersteund: .DTS, .AC3.)

Alleen bestanden met de extensie .mp4 of .mp4a worden ondersteund voor audiopakketten.

Beperkingen

iOS-beperking op AAC 5.1-audio

Apple iOS-apparaten ondersteunen geen 5.1 AAC-audiocodec. Audio met meerdere kanalen moet worden gecodeerd met Dolby Digital- of Dolby Digital Plus-codecs.

Zie HLS authoring specification for Apple devices (HLS-ontwerpspecificatie voor Apple-apparaten) voor gedetailleerde informatie.

Notitie

Media Services biedt geen ondersteuning voor codering van Dolby Digital, Dolby Digital Plus of Dolby Digital Plus met Dolby Atmos multi-channel audio-indelingen.

Dolby Digital-audio

Dynamische pakketten van Media Services ondersteunen momenteel geen bestanden die Dolby Digital-audio (AC3) bevatten, omdat dit door Dolby als verouderd wordt beschouwd.

Manifesten

In dynamische pakketten van Media Services worden de streamingclientmanifesten voor HLS, MPEG-DASH en Smooth Streaming dynamisch gegenereerd op basis van de indelingsquery in de URL.

Een manifestbestand bevat streaming-metagegevens zoals het type spoor (audio, video of tekst), de naam van het spoor, de begin- en eindtijd, de bitsnelheid (kwaliteiten), de spoortalen, het presentatievenster (sliding window met vaste duur) en de videocodec (FourCC). Het instrueert de speler ook om het volgende fragment op te halen door informatie te geven over de volgende afspeelbare videofragmenten die beschikbaar zijn en hun locatie. Fragmenten (of segmenten) zijn de werkelijke 'chunks' met video-inhoud.

Voorbeelden

HLS

Hier volgt een voor beeld van een HLS-manifestbestand, ook wel een HLS-hoofdafspeellijst genoemd:

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="aac_eng_2_128041_2_1",LANGUAGE="eng",DEFAULT=YES,AUTOSELECT=YES,URI="QualityLevels(128041)/Manifest(aac_eng_2_128041_2_1,format=m3u8-aapl)"
#EXT-X-STREAM-INF:BANDWIDTH=536608,RESOLUTION=320x180,CODECS="avc1.64000d,mp4a.40.2",AUDIO="audio"
QualityLevels(381048)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=536608,RESOLUTION=320x180,CODECS="avc1.64000d",URI="QualityLevels(381048)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=884544,RESOLUTION=480x270,CODECS="avc1.640015,mp4a.40.2",AUDIO="audio"
QualityLevels(721495)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=884544,RESOLUTION=480x270,CODECS="avc1.640015",URI="QualityLevels(721495)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=1327398,RESOLUTION=640x360,CODECS="avc1.64001e,mp4a.40.2",AUDIO="audio"
QualityLevels(1154816)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=1327398,RESOLUTION=640x360,CODECS="avc1.64001e",URI="QualityLevels(1154816)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=2413312,RESOLUTION=960x540,CODECS="avc1.64001f,mp4a.40.2",AUDIO="audio"
QualityLevels(2217354)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=2413312,RESOLUTION=960x540,CODECS="avc1.64001f",URI="QualityLevels(2217354)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=3805760,RESOLUTION=1280x720,CODECS="avc1.640020,mp4a.40.2",AUDIO="audio"
QualityLevels(3579827)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=3805760,RESOLUTION=1280x720,CODECS="avc1.640020",URI="QualityLevels(3579827)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=139017,CODECS="mp4a.40.2",AUDIO="audio"
QualityLevels(128041)/Manifest(aac_eng_2_128041_2_1,format=m3u8-aapl)

MPEG-DASH

Hier volgt een voorbeeld van een MPEG-DASH-manifestbestand, ook wel een MPEG-DASH MPD (Media Presentation Description) genoemd:

<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" mediaPresentationDuration="PT1M10.315S" 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">
         <SegmentTemplate timescale="10000000" media="QualityLevels($Bandwidth$)/Fragments(aac_eng_2_128041_2_1=$Time$,format=mpd-time-csf)" initialization="QualityLevels($Bandwidth$)/Fragments(aac_eng_2_128041_2_1=i,format=mpd-time-csf)">
            <SegmentTimeline>
               <S d="60160000" r="10" />
               <S d="41386666" />
            </SegmentTimeline>
         </SegmentTemplate>
         <Representation id="5_A_aac_eng_2_128041_2_1_1" bandwidth="128041" audioSamplingRate="48000" />
      </AdaptationSet>
      <AdaptationSet id="2" group="1" profiles="ccff" bitstreamSwitching="false" segmentAlignment="true" contentType="video" mimeType="video/mp4" codecs="avc1.640020" maxWidth="1280" maxHeight="720" startWithSAP="1">
         <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="10" />
               <S d="42375666" />
            </SegmentTimeline>
         </SegmentTemplate>
         <Representation id="1_V_video_1" bandwidth="3579827" width="1280" height="720" />
         <Representation id="1_V_video_2" bandwidth="2217354" codecs="avc1.64001F" width="960" height="540" />
         <Representation id="1_V_video_3" bandwidth="1154816" codecs="avc1.64001E" width="640" height="360" />
         <Representation id="1_V_video_4" bandwidth="721495" codecs="avc1.640015" width="480" height="270" />
         <Representation id="1_V_video_5" bandwidth="381048" codecs="avc1.64000D" width="320" height="180" />
      </AdaptationSet>
   </Period>
</MPD>

Smooth Streaming

Hier volgt een voorbeeld van een Smooth Streaming-manifestbestand:

<?xml version="1.0" encoding="UTF-8"?>
<SmoothStreamingMedia MajorVersion="2" MinorVersion="2" Duration="703146666" TimeScale="10000000">
   <StreamIndex Chunks="12" Type="audio" Url="QualityLevels({bitrate})/Fragments(aac_eng_2_128041_2_1={start time})" QualityLevels="1" Language="eng" Name="aac_eng_2_128041_2_1">
      <QualityLevel AudioTag="255" Index="0" BitsPerSample="16" Bitrate="128041" FourCC="AACL" CodecPrivateData="1190" Channels="2" PacketSize="4" SamplingRate="48000" />
      <c t="0" d="60160000" r="11" />
      <c d="41386666" />
   </StreamIndex>
   <StreamIndex Chunks="12" Type="video" Url="QualityLevels({bitrate})/Fragments(video={start time})" QualityLevels="5">
      <QualityLevel Index="0" Bitrate="3579827" FourCC="H264" MaxWidth="1280" MaxHeight="720" CodecPrivateData="0000000167640020ACD9405005BB011000003E90000EA600F18319600000000168EBECB22C" />
      <QualityLevel Index="1" Bitrate="2217354" FourCC="H264" MaxWidth="960" MaxHeight="540" CodecPrivateData="000000016764001FACD940F0117EF01100000303E90000EA600F1831960000000168EBECB22C" />
      <QualityLevel Index="2" Bitrate="1154816" FourCC="H264" MaxWidth="640" MaxHeight="360" CodecPrivateData="000000016764001EACD940A02FF9701100000303E90000EA600F162D960000000168EBECB22C" />
      <QualityLevel Index="3" Bitrate="721495" FourCC="H264" MaxWidth="480" MaxHeight="270" CodecPrivateData="0000000167640015ACD941E08FEB011000003E90000EA600F162D9600000000168EBECB22C" />
      <QualityLevel Index="4" Bitrate="381048" FourCC="H264" MaxWidth="320" MaxHeight="180" CodecPrivateData="000000016764000DACD941419F9F011000003E90000EA600F14299600000000168EBECB22C" />
      <c t="0" d="60060000" r="11" />
      <c d="42375666" />
   </StreamIndex>
</SmoothStreamingMedia>

Naamgeving van sporen in het manifest

Als er in het .ism-bestand een audiospoornaam wordt opgegeven, voegt Media Services een Label-element binnen een AdaptationSet toe om de textuurgegevens voor het specifieke audiospoor op te geven. Een voorbeeld van het uitgevoerde DASH-manifest:

<AdaptationSet codecs="mp4a.40.2" contentType="audio" lang="en" mimeType="audio/mp4" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
  <Label>audio_track_name</Label>
  <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
  <Representation audioSamplingRate="48000" bandwidth="131152" id="German_Forest_Short_Poem_english-en-68s-2-lc-128000bps_seg">
    <BaseURL>German_Forest_Short_Poem_english-en-68s-2-lc-128000bps_seg.mp4</BaseURL>
  </Representation>
</AdaptationSet>

De speler kan het Label-element gebruiken om weer te geven in de gebruikersinterface ervan.

Signalering audiobeschrijvingssporen

U kunt een commentaarspoor toevoegen aan uw video om visueel gehandicapten te helpen de video-opname te volgen door naar de gesproken tekst te luisteren. U moet een audiospoor in het manifest aangeven als audiobeschrijving. Voeg hiervoor de parameters 'accessibility' en 'role' toe aan het .ism-bestand. Het is uw verantwoordelijkheid om deze parameters op de juiste wijze in te stellen om een audiospoor te signaleren als audiobeschrijving. Voeg bijvoorbeeld en <param name="role" value="alternate" toe <param name="accessibility" value="description" /> aan het .ism-bestand voor een specifieke audiotrack.s

Smooth Streaming-manifest

Als u een Smooth Streaming-stroom afspeelt, bevat het manifest waarden in de attributen Accessibility en Role voor dat audiospoor. Er wordt bijvoorbeeld Role="alternate" Accessibility="description" toegevoegd in het StreamIndex-element om aan te geven dat het een audiobeschrijving is.

DASH-manifest

Voor een DASH-manifest worden de volgende twee elementen toegevoegd om de audiobeschrijving te signaleren:

<Accessibility schemeIdUri="urn:mpeg:dash:role:2011" value="description"/>
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="alternate"/>

HLS-afspeellijst

Voor HLS v7 en hoger (format=m3u8-cmaf) bevat de afspeellijst AUTOSELECT=YES,CHARACTERISTICS="public.accessibility.describes-video" wanneer het audiobeschrijvingsspoor wordt gesignaleerd.

Filteren van dynamisch manifest

Als u het aantal sporen, indelingen, bitsnelheden en presentatietijdvensters wilt beheren dat naar spelers wordt verzonden, kunt u dynamische filtering gebruiken met de dynamische pakketten van Media Services. Zie Manifesten vooraf filteren met dynamische pakketten voor meer informatie.

Dynamische versleuteling voor DRM

U kunt dynamische versleuteling gebruiken om uw live of on-demand inhoud te versleutelen met AES-128 of een van de drie voornaamste DRM-systemen (Digital Rights Management): Microsoft PlayReady, Google Widevine en Apple FairPlay. Media Services biedt ook een service voor het leveren van AES-sleutels en DRM-licenties aan geautoriseerde clients. Zie dynamische versleuteling voor meer informatie.

Notitie

Widevine is een service van Google Inc. en is onderworpen aan de servicevoorwaarden en het privacybeleid van Google Inc.

Help en ondersteuning

U kunt contact opnemen met Media Services met vragen of onze updates op een van de volgende manieren volgen: