Dynamisk paketering i Media Services v3
Varning
Azure Media Services dras tillbaka den 30 juni 2024. Mer information finns i AMS-pensionsguiden.
Azure Media Services tillhandahåller inbyggda ursprungsserver- och paketeringsfunktioner för att leverera innehåll i HLS- och MPEG DASH-format för direktuppspelningsprotokoll. I AMS fungerar slutpunkten för direktuppspelning som den "origin"-server som skickar formaterat HLS- och DASH-innehåll till klientspelare som stöder direktuppspelning med anpassningsbar bithastighet med hjälp av dessa populära format. Slutpunkten för direktuppspelning stöder också många funktioner, till exempel just-in-time, dynamisk paketering med eller utan innehållsskydd för att nå alla större enheter (t.ex. iOS- och Android-enheter).
De flesta webbläsare och mobila enheter på marknaden idag stöder och förstår HLS- eller DASH-strömningsprotokollen. Till exempel kräver iOS att strömmar levereras i HTTP Live Streaming -format (HLS) och Android-enheter stöder HLS samt MPEG DASH på vissa modeller (eller genom användning av programnivåspelaren Exoplayer för Android-enheter.
I Media Services representerar en slutpunkt för direktuppspelning (ursprung) en dynamisk paketerings- och ursprungstjänst (just-in-time) som kan leverera ditt live- och on-demand-innehåll direkt till en klientspelarapp. Det använder ett av de vanliga protokollen för direktuppspelningsmedia som nämns i följande avsnitt. Dynamisk paketering är en funktion som är standard på alla slutpunkter för direktuppspelning.
Fördelarna med just-in-time-paketering är följande:
- Du kan lagra alla dina filer i mp4-standardfilformat.
- Du behöver inte lagra flera kopior av statiskt paketerade HLS- och DASH-format i Blob Storage, vilket minskar mängden videoinnehåll som lagras och sänker dina lagringskostnader.
- Du kan direkt dra nytta av nya protokolluppdateringar och ändringar i specifikationerna utan att behöva paketera om det statiska innehållet i katalogen.
- Du kan leverera innehåll med eller utan kryptering och DRM med samma MP4-filer i lagringen.
- Du kan dynamiskt filtrera eller ändra manifesten med enkla tillgångsnivåfilter eller globala filter för att ta bort specifika spår, upplösningar, språk eller ge kortare markeringsklipp från samma MP4-filer utan att koda om eller återrendera innehållet.
Förbereda dina källfiler för leverans
Om du vill dra nytta av dynamisk paketering kodar du din mezzaninfil (källa) till en uppsättning MP4-filer (ISO Base Media 14496-12) med enkel eller flera bithastigheter. De kodade videofilerna och konfigurationsfilerna för direktuppspelning finns i en utdatatillgång. Från den här uppsättningen filer kan du använda dynamisk paketering för att leverera video via protokollen för direktuppspelningsmedia.
Normalt använder du Azure Media Services-standardkodaren för att generera det här innehållet med hjälp av förinställningarna för innehållsmedveten kodning eller förinställningarna för anpassningsbar bithastighet. Båda genererar en uppsättning MP4-filer som är redo för direktuppspelning och dynamisk paketering.
Du kan också välja att koda med hjälp av en extern tjänst, lokalt eller på dina egna virtuella datorer eller serverlösa funktionsappar. Innehåll som kodas externt kan laddas upp till en tillgång för strömning, förutsatt att det uppfyller kodningskraven för direktuppspelningsformat med anpassningsbar bithastighet. Ett exempelprojekt för att ladda upp en förkodad MP4 för direktuppspelning är tillgängligt i .NET SDK-exemplen – se Strömma befintliga Mp4-filer.
Dynamisk Paketering i Azure Media Services stöder endast video- och ljudfiler i MP4-containerformat. Ljudfiler måste också kodas i en MP4-container när du använder alternativa codecs som Dolby.
Göra videor tillgängliga för direktuppspelning
Om du vill göra videor i den kodade tillgången tillgängliga för uppspelning av klienter publicerar du tillgången med hjälp av en positionerare för direktuppspelning och skapar lämpliga URL:er för HLS- och DASH-direktuppspelning. Genom att ändra det protokoll som används i URL-formatfrågan levererar tjänsten lämpligt direktuppspelningsmanifest (HLS, MPEG DASH.)
Därför behöver du bara lagra och betala för filerna i ett enda lagringsformat (MP4) och Media Services genererar och hanterar lämpliga HLS- eller DASH-manifest baserat på begäranden från dina klientspelare.
Om du planerar att skydda ditt innehåll med dynamisk Media Services-kryptering kan du läsa Mer information finns i Direktuppspelningsprotokoll och krypteringstyper.
Leverera HLS
Dynamisk HLS-paketering
Strömningsklienten kan ange följande HLS-format. Vi rekommenderar att du använder CMAF-formatet för kompatibilitet med de senaste spelarna och iOS-enheterna. För äldre enheter är även v4- och v3-formaten tillgängliga genom att helt enkelt ändra formatfrågesträngen.
Protokoll | Formatsträng | Exempel |
---|---|---|
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) |
Anteckning
Tidigare riktlinjer från Apple rekommenderade att reserven för nätverk med låg bandbredd var att tillhandahålla en ljudström. För närvarande genererar Media Services-kodaren automatiskt ett ljudspår. Apples riktlinjer säger nu att ljudspåret inte ska inkluderas, särskilt för Apple TV-distribution. För att förhindra att spelaren som standard använder ett ljudspår föreslår vi att du använder taggen "audio-only=false" i URL:en som tar bort återgivning endast ljud i HLS eller helt enkelt använder HLS-V3. Till exempel http://host/locator/asset.ism/manifest(format=m3u8-aapl,audio-only=false)
.
HLS-förpackningsförhållande för VOD
Om du vill kontrollera packningsförhållandet för VOD-innehåll för äldre HLS-format kan du ange metadatataggen fragmentPerHLSSegment i .ism-filen för att styra standardförpackningsförhållandet 3:1 för TS-segment som levereras från de äldre v3- och v4 HLS-formatmanifesten. Den här inställningsändringen kräver att du direkt ändrar .ism-filen i lagringen för att justera förpackningsförhållandet.
Exempel på .ism-servermanifest med fragmentPerHLSSegment inställt på 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>
Leverera DASH
DYNAMISK DASH-paketering
Strömningsklienten kan ange följande MPEG-DASH-format:
Protokoll | Formatsträng | Exempel |
---|---|---|
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 (äldre) | format=mpd-time-csf | https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=mpd-time-csf) |
Leverera Smooth Streaming-manifest
Dynamisk paketering med Smooth Streaming
Din strömningsklient kan ange följande Smooth Streaming-format:
Protokoll | Anteckningar/exempel |
---|---|
Smooth Streaming | https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest |
Smooth Streaming 2.0 (äldre manifest) | Som standard innehåller Smooth Streaming-manifestformatet taggen repeat (r-tag). Vissa spelare stöder r-tag dock inte . Klienter med dessa spelare kan använda ett format som inaktiverar r-taggen:https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=fmp4-v20) |
Anteckning
Smooth Streaming kräver att både ljud och video ska finnas i din ström.
Arbetsflöde för direktuppspelning på begäran
Följande steg visar ett vanligt Media Services-arbetsflöde för strömning där dynamisk paketering används tillsammans med standardkodaren i Azure Media Services.
Ladda upp en indatafil som MP4, QuickTime/MOV eller annat filformat som stöds. Den här filen kallas även mezzanin eller källfil. En lista över format som stöds finns i Format som stöds av standardkodaren.
Koda mezzaninfilen till en uppsättning anpassningsbar bithastighet för H.264/AAC MP4.
Om du redan har kodade filer och bara vill kopiera och strömma filerna använder du: CopyVideo - och CopyAudio-API :er. En ny MP4-fil med ett direktuppspelningsmanifest (.ism-fil) skapas därför.
Dessutom kan du bara generera .ism- och .ismc-filen på en förkodad fil, så länge den kodas med rätt inställningar för direktuppspelning med anpassningsbar bithastighet (detta är vanligtvis 2-sekunders GOPs, nyckelramavstånd på 2:or min och max och CBR-läge (Constant Bitrate) kodning.)
Mer information om hur du genererar .ism (servermanifestet) och .ismc (klientmanifest) för strömning från en befintlig, förkodad MP4-fil finns i strömmande mp4-exempelexemplet .
Publicera utdatatillgången som innehåller MP4-uppsättningen med anpassningsbar bithastighet. Du publicerar genom att skapa en positionerare för direktuppspelning.
Skapa URL:er som riktar sig mot olika format (HLS, MPEG-DASH och Smooth Streaming). Slutpunkten för direktuppspelning tar hand om att betjäna rätt manifest och begäranden för alla dessa olika format.
Nedladdningssökvägen finns i bilden ovan bara för att visa att du kan ladda ned en MP4-fil direkt via slutpunkten för direktuppspelning (ursprung) (du anger den nedladdningsbara direktuppspelningsprincipen på positioneraren för direktuppspelning).
Den dynamiska paketeraren ändrar inte filen. Du kan också använda Azure Blob Storage-API:er för att komma åt en MP4 direkt för progressiv nedladdning om du vill kringgå funktionerna för slutpunkter för direktuppspelning (ursprung).
Koda till MP4:ar med anpassningsbar bithastighet
Följande artiklar visar exempel på hur du kodar en video med Media Services:
Se listan över standardkodarens indataformat och codecs som stöds.
Arbetsflöde för liveuppspelning
En livehändelse kan anges till antingen en direktströmning (en lokal livekodare skickar en dataström med flera bithastigheter) eller livekodning (en lokal livekodare skickar en dataström med en bithastighet).
Här är ett vanligt arbetsflöde för liveuppspelning med dynamisk paketering:
- Skapa en livehändelse.
- Hämta inmatnings-URL:en och konfigurera din lokala kodare så att den använder URL:en för att skicka bidragsfeeden.
- Hämta förhandsgransknings-URL:en och använd den för att kontrollera att indata från kodaren tas emot.
- Skapa en ny tillgång.
- Skapa en live-utdata och använd tillgångsnamnet som du skapade.
Liveutdata arkiverar strömmen till tillgången. - Skapa en positionerare för direktuppspelning med de inbyggda typerna av strömningsprinciper.
Om du tänker kryptera ditt innehåll läser du Översikt över innehållsskydd. - Visa en lista över sökvägarna i positioneraren för direktuppspelning för att få url:erna att använda.
- Hämta värdnamnet för den slutpunkt för direktuppspelning som du vill strömma från.
- Skapa URL:er som riktar sig mot olika format (HLS, MPEG-DASH och Smooth Streaming). Slutpunkten för direktuppspelning tar hand om att hantera rätt manifest och begäranden för de olika formaten.
Information om liveuppspelning i Media Services v3 finns i Översikt över liveuppspelning.
Video codecs som stöds av dynamisk paketering
Dynamisk paketering stöder videofiler som har filformatet MP4-container och innehåller video som är kodad med H.264 (MPEG-4 AVC eller AVC1) eller H.265 (HEVC, hev1 eller hvc1).
Anteckning
Upplösningar på upp till 4 K och bildfrekvenser på upp till 60 bildrutor/sekund har testats med dynamisk paketering.
Ljud codecs som stöds av dynamisk paketering
Dynamisk paketering stöder även ljudfiler som lagras i MP4-filcontainerns format som innehåller kodad ljudström i någon av följande codecs:
AAC (AAC-LC, HE-AAC v1 eller HE-AAC v2).
Dolby Digital Plus (Förbättrad AC-3 eller E-AC3). Det kodade ljudet måste lagras i MP4-containerformat för att fungera med dynamisk paketering.
Dolby Atmos
Strömmande Dolby Atmos-innehåll stöds för standarder som MPEG-DASH-protokollet med antingen Common Streaming Format (CSF) eller Common Media Application Format (CMAF) fragmenterad MP4 och via HTTP Live Streaming (HLS) med CMAF.
DTS
DTS-codecs som stöds av DASH-CSF, DASH-CMAF, HLS-M2TS och HLS-CMAF-förpackningsformat är:- DTS Digital Surround (dtsc)
- DTS-HD High Resolution och DTS-HD Master Audio (dtsh)
- DTS Express (dtse)
- DTS-HD Lossless (ingen kärna) (dtsl)
Dynamisk paketering stöder flera ljudspår med DASH eller HLS (version 4 eller senare) för strömmande tillgångar som har flera ljudspår med flera codecs och språk.
För alla ovanstående ljudkodare måste det kodade ljudet lagras i MP4-containerformat för att fungera med dynamisk paketering. Tjänsten stöder inte obehandlade elementära dataströmfilformat på bloblagring (till exempel skulle följande inte stödjas – .dts, .ac3.)
Endast filer med .mp4 av .mp4a-tillägget stöds för ljudpaketering.
Begränsningar
iOS-begränsning för AAC 5.1-ljud
Apple iOS-enheter stöder inte AAC-ljudkodc 5.1. Ljud med flera kanaler måste kodas med Dolby Digital- eller Dolby Digital Plus-codecs.
Detaljerad information finns i HLS-redigeringsspecifikation för Apple-enheter.
Anteckning
Media Services stöder inte kodning av Dolby Digital, Dolby Digital Plus eller Dolby Digital Plus med Dolby Atmos-ljudformat med flera kanaler.
Dolby Digitalt ljud
Dynamisk Media Services-paketering stöder för närvarande inte filer som innehåller Dolby Digital-ljud (AC3) (eftersom detta anses vara en äldre codec av Dolby).
Manifesterar
I dynamisk Media Services-paketering genereras strömningsklientmanifesten för HLS, MPEG-DASH och Smooth Streaming dynamiskt baserat på formatfrågan i URL:en.
En manifestfil innehåller strömmande metadata som spårtyp (ljud, video eller text), spårnamn, start- och sluttid, bithastighet (kvaliteter), spårspråk, presentationsfönster (skjutfönster med fast varaktighet) och video codec (FourCC). Det instruerar också spelaren att hämta nästa fragment genom att tillhandahålla information om nästa spelbara videofragment som är tillgängliga och deras plats. Fragment (eller segment) är de faktiska "segmenten" av videoinnehåll.
Exempel
HLS
Här är ett exempel på en HLS-manifestfil, även kallad en HLS-huvudspellista:
#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
Här är ett exempel på en MPEG-DASH-manifestfil, även kallad MPEG-DASH Media Presentation Description (MPD):
<?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
Här är ett exempel på en Smooth Streaming-manifestfil:
<?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>
Namngivning av spår i manifestet
Om ett ljudspårsnamn anges i .ism-filen lägger Media Services till ett Label
element i ett AdaptationSet
för att ange textinformationen för det specifika ljudspåret. Ett exempel på utdata-DASH-manifestet:
<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>
Spelaren kan använda -elementet Label
för att visa i användargränssnittet.
Ljudbeskrivningsspår för signalering
Du kan lägga till ett berättarspår i videon för att hjälpa synskadade klienter att följa videoinspelningen genom att lyssna på berättarrösten. Du måste kommentera ett ljudspår som en ljudbeskrivning i manifestet. Det gör du genom att lägga till parametrarna "accessibility" och "role" i .ism-filen. Det är ditt ansvar att ange dessa parametrar korrekt för att signalera ett ljudspår som en ljudbeskrivning. Lägg till exempel till <param name="accessibility" value="description" />
och <param name="role" value="alternate"
i .ism-filen för ett visst ljudspår.
Smooth Streaming-manifest
Om du spelar upp en Smooth Streaming-ström skulle manifestet innehålla värden och Accessibility
Role
attribut för det ljudspåret. Till exempel Role="alternate" Accessibility="description"
skulle läggas till i elementet StreamIndex
för att indikera att det är en ljudbeskrivning.
DASH-manifest
För DASH-manifestet läggs följande två element till för att signalera ljudbeskrivningen:
<Accessibility schemeIdUri="urn:mpeg:dash:role:2011" value="description"/>
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="alternate"/>
HLS-spellista
För HLS v7 och senare (format=m3u8-cmaf)
skulle dess spellista bära AUTOSELECT=YES,CHARACTERISTICS="public.accessibility.describes-video"
när ljudbeskrivningsspåret signaleras.
Dynamisk manifestfiltrering
Om du vill styra antalet spår, format, bithastigheter och presentationstidsfönster som skickas till spelarna kan du använda dynamisk filtrering med den dynamiska Media Services-paketeraren. Mer information finns i Förfiltrering av manifest med den dynamiska paketeraren.
Dynamisk kryptering för DRM
Du kan använda dynamisk kryptering för att dynamiskt kryptera ditt live- eller på begäran-innehåll med AES-128 eller något av de tre stora DRM-systemen (Digital Rights Management): Microsoft PlayReady, Google Widevine och Apple FairPlay. Media Services tillhandahåller också en tjänst för att leverera AES-nycklar och DRM-licenser till auktoriserade klienter. Mer information finns i dynamisk kryptering.
Anteckning
Widevine är en tjänst som tillhandahålls av Google Inc. och som omfattas av användarvillkoren och sekretesspolicyn för Google, Inc.
Få hjälp och support
Du kan kontakta Media Services med frågor eller följa våra uppdateringar med någon av följande metoder:
- Q & A
-
Stack Overflow. Tagga frågor med
azure-media-services
. - @MSFTAzureMedia eller använd @AzureSupport för att begära support.
- Öppna en supportbegäran via Azure Portal.