Dynamische pakketten in Media Services v3
Zoekt u Media Services v2-documentatie?
Azure Media Services biedt ingebouwde oorspronkelijke server- en pakketmogelijkheden voor het leveren van inhoud in HLS- en MPEG DASH-indelingen voor streamingprotocollen. In AMS fungeert het streaming-eindpunt als de oorspronkelijke server die opgemaakte HLS- en DASH-inhoud naar client spelers stuurt die adaptive bitrate streaming ondersteunen met behulp van deze populaire indelingen. Het streaming-eindpunt ondersteunt ook veel functies, zoals Just-In-Time, dynamische verpakking 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 gebruik te maken van de speler op toepassingsniveau: Player for 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.
Just-In-Time-verpakking heeft de volgende voordelen:
- 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 verlaagd en de totale opslagkosten worden verlaagd
- U kunt onmiddellijk profiteren van nieuwe protocolupdates en wijzigingen in de specificaties naarmate deze zich in de loop van de tijd ontwikkelen zonder dat u de statische inhoud in uw catalogus opnieuw hoeft in te verpakken
- U kunt inhoud leveren met onze 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 sporen, resoluties en talen te verwijderen of kortere markeringsclips uit dezelfde MP4-bestanden te bieden zonder de inhoud opnieuw te coderen of opnieuw te renderen.
Voorbereiding van de bronbestanden voor levering
Als u gebruik wilt maken van dynamische verpakking, moet u uw mezzanine-bestand (bronbestand) coderen in een set single- of multiple bitrate MP4-bestanden (ISO Base Media 14496-12). U moet een asset hebben met de gecodeerde MP4- en streaming-configuratiebestanden die nodig zijn voor dynamische pakketten van Media Services. Vanuit deze set MP4-bestanden kunt u dynamische pakketten gebruiken voor het leveren van video via de protocollen voor streaming media die hieronder worden beschreven.
Normaal gesproken gebruikt u de Azure Media Services standard-encoder om deze inhoud te genereren met behulp van de voorinstellingen voor Content Aware Encoding of de voorinstellingen van Adaptive Bitrate. Beide genereren een set MP4-bestanden die gereed zijn voor streaming en dynamische verpakking. U kunt er ook voor kiezen om te coderen in een externe service, on-premises of op uw eigen VM's of serverloze functie-apps. Extern gecodeerde inhoud kan worden geüpload naar een asset voor streaming, mits deze voldoet aan de coderingsvereisten voor adaptive bitrate streaming-indelingen. 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.
Tip
Eén manier om de MP4- en streamingconfiguratiebestanden op te halen is door uw mezzanine-bestand te coderen met Media Services. U kunt het beste de vooraf ingestelde codering met inhoudsbewuste instellingen gebruiken om de beste adaptieve streaminglagen en instellingen voor uw inhoud te genereren. Zie codevoorbeelden voor codering met de .NET SDK in de map VideoEncoding
Als u video's in de gecodeerde asset beschikbaar wilt maken voor clients om af te spelen, moet u de asset publiceren met behulp van een streaming-locator en de juiste HLS- en DASH-streaming-URL's bouwen. Door het protocol te wijzigen dat wordt gebruikt voor de url-indelingsquery, zal de service het juiste streamingmanifest (HLS, MPEG DASH) leveren.
Als gevolg hiervan hoeft u de bestanden alleen op te slaan en te betalen in MP4 (Single Storage Format), en Media Services genereert en levert de juiste HLS- of DASH-manifesten op basis van aanvragen van uw client spelers.
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-verpakking
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 v4- en v3-indelingen ook beschikbaar door de opmaakqueryreeks te wijzigen.
| Protocol | Notatietekenreeks | Voorbeeld |
|---|---|---|
| HLS CMAF (aanbevolen) | 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-wordenl | https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-aapl) |
| HLS V3 | format=m3u8-wordenl-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. In de Apple-richtlijnen wordt nu vermeld dat het nummer met alleen audio niet moet worden opgenomen. Dit geldt met name voor de 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-pakketverhouding voor VOD
Als u de pakketverhouding van VOD-inhoud voor oudere HLS-indelingen wilt beheren, kunt u de metagegevenstag fragmentsPerHLSSegment in het .ism-bestand instellen om de standaard 3:1-pakketverhouding te bepalen voor TS-segmenten die worden geleverd vanuit de oudere v3- en v4 HLS-indelingmanifests. Voor deze instellingswijziging moet u het ISM-bestand in de opslag rechtstreeks wijzigen om de pakketverhouding aan te passen.
Voorbeeld van een .ism-servermanifest met fragmentenPerHLSSegment 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 leveren
Dynamische DASH-verpakking
Uw streaming-client kan de volgende MPEG-DASH-indelingen opgeven:
| Protocol | Notatietekenreeks | Voorbeeld |
|---|---|---|
| MPEG-DASH CMAF (aanbevolen) | 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) |
Manifesten Smooth Streaming leveren
Smooth Streaming dynamische verpakking
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.
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.
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 alleen genereren op een vooraf gecodeerd bestand, zolang het is gecodeerd met de juiste instellingen voor Adaptive Bitrate Streaming (dit is doorgaans gops van 2 seconden, sleutelframeafstanden van 2s min en max en CBR-moduscoderen.)
Zie het voorbeeld van de bestaande Mp4 .NET SDK streamen voor meer informatie over het genereren van het .ism-bestand (servermanifest) en .ismc (clientmanifests) voor streaming vanaf een bestaand, vooraf gecodeerd MP4-bestand.
Publiceer de uitvoer-asset die de MP4-set met adaptieve bitsnelheid bevat. U publiceert door het maken van een streaming-locator.
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.
In het volgende diagram ziet u de werkstroom voor streaming on demand met dynamische pakketten.
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:
- Inhoudsbewuste codering gebruiken.
- Coderen vanuit een HTTPS-URL met behulp van ingebouwde voorinstellingen.
- Een lokaal bestand coderen met behulp van ingebouwde voorinstellingen.
- Een aangepaste voorinstelling bouwen voor de vereisten van uw specifieke scenario of apparaat.
- Codevoorbeelden voor coderen met Standard Encoder met behulp van .NET
Zie de lijst met ondersteunde invoerindelingen en codecsvoor 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:
- Maak een livegebeurtenis.
- Haal de opname-URL op en configureer uw on-premises encoder voor het gebruik van de URL om de bijdragefeed te verzenden.
- Haal de preview-URL op en gebruik deze om te controleren of de input van de encoder wordt ontvangen.
- Maak een nieuwe asset.
- Maak een live-uitvoer en gebruik de assetnaam die u hebt gemaakt.
De live uitvoer archiveert de stroom naar de asset. - 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. - Maak een lijst van de paden op de streaming-locator om de te gebruiken URL's te krijgen.
- Haal de hostnaam op voor het streaming-eindpunt van waaruit u wilt streamen.
- 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.
Dit diagram toont de werkstroom voor live streamen met dynamische pakketten:
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 Media Services dynamische verpakking worden de streaming-clientmanifests 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 <param name="accessibility" value="description" /> en <param name="role" value="alternate" toe aan het .ism-bestand voor een specifiek audiospoor.
Zie voor meer informatie het voorbeeld Beschrijvend audiospoor signaleren.
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.
Voorbeeld
Zie Audiobeschrijvingssporen signaleren voor meer informatie.
Dynamisch manifest filteren
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.
Meer informatie
Ga naar de Azure Media Services-community om verschillende manieren te bekijken om vragen te stellen, feedback te geven en updates over Media Services te krijgen.
Hebt u hulp nodig?
U kunt een ondersteuningsticket openen door te navigeren naar Nieuwe ondersteuningsaanvraag.