Dynamische Paketerstellung in Media Services v3
Warnung
Azure Media Services wird am 30. Juni 2024 eingestellt. Weitere Informationen finden Sie im Leitfaden zur Einstellung von AMS.
Azure Media Services bietet integrierte Ursprungsserver- und Paketerstellungsfunktionen zur Bereitstellung von Inhalten in HLS- und MPEG DASH-Streamingprotokollformaten. Bei AMS fungiert der Streamingendpunkt als „Ursprungsserver“, der formatierte HLS- und DASH-Inhalte an Clientplayer sendet, die das Adaptive Bitrate Streaming mithilfe dieser gängigen Formate unterstützen. Der Streamingendpunkt unterstützt auch viele Features wie Just-In-Time, dynamische Paketerstellung mit oder ohne Inhaltsschutz, um alle wichtigen Geräte (wie iOS- und Android-Geräte) zu erreichen.
Die meisten Browser und mobilen Geräte auf dem Markt unterstützen und verstehen die HLS- oder DASH-Streamingprotokolle. Für iOS müssen Streams z. B. im HLS-Format (HTTP Live Streaming) geliefert werden, und Android-Geräte unterstützen HLS sowie bei bestimmten Modellen auch MPEG DASH (oder mithilfe des Players auf Anwendungsebene, Exoplayer, für Android-Geräte).
In Media Services repräsentiert ein Streamingendpunkt (Ursprung) einen dynamischen Just-In-Time-Paketerstellungs- und Ursprungsdienst, der Ihre Live- und On-Demand-Inhalte direkt in einer Clientplayer-App bereitstellen kann. Der Streamingendpunkt verwendet hierbei eines der im nächsten Abschnitt beschriebenen allgemeinen Streamingmedienprotokolle. Die Funktion für die dynamische Paketerstellung ist standardmäßig auf allen Streamingendpunkten vorhanden.
Die Vorteile der Just-In-Time-Paketerstellung sind folgende:
- Sie können alle Ihre Dateien im MP4-Standarddateiformat speichern.
- Sie müssen nicht mehrere Kopien statischer HLS- und DASH-Formate im Blobspeicher speichern, wodurch die Menge an gespeicherten Videoinhalten reduziert und Ihre Speicherkosten gesenkt werden.
- Sie können sofort neue Protokollupdates und Änderungen an den Spezifikationen nutzen, ohne den statischen Inhalt in Ihrem Katalog neu verpacken zu müssen.
- Sie können Inhalte mit oder ohne Verschlüsselung und DRM mit den gleichen MP4-Dateien im Speicher bereitstellen.
- Sie können die Manifeste mit einfachen Filtern auf Medienobjektebene oder globalen Filtern dynamisch filtern oder ändern, um bestimmte Spuren, Auflösungen oder Sprachen zu entfernen oder kürzere Highlightclips aus denselben MP4-Dateien bereitzustellen, ohne den Inhalt neu zu codieren oder zu rendern.
So bereiten Sie die Quelldateien für die Bereitstellung vor
Um die Vorteile der dynamischen Paketerstellung zu nutzen, codieren Sie Ihre Mezzaninedatei (Quelldatei) in eine Reihe von MP4-Dateien mit einer oder mehreren Bitraten (ISO Base Media 14496-12). Die codierten Videodateien und Streamingkonfigurationsdateien befinden sich in einem Ausgabeobjekt. Aus diesem Satz von Dateien können Sie die dynamische Paketerstellung verwenden, um Videos über die Streamingmedienprotokolle zu übermitteln.
In der Regel verwenden Sie den Standardencoder von Azure Media Services, um diese Inhalte mithilfe der Voreinstellungen für die inhaltsbezogene Codierung oder der Voreinstellungen für die adaptive Bitrate zu generieren. Beide generieren eine Reihe von MP4-Dateien, die für das Streaming und die dynamische Paketerstellung bereit sind.
Alternativ können Sie die Codierung mit einem externen Dienst, lokal oder auf Ihren eigenen VMs oder serverlosen Funktions-Apps auswählen. Extern codierte Inhalte können in ein Medienobjekt zum Streaming hochgeladen werden, sofern sie die Codierungsanforderungen für Adaptive Bitrate Streaming-Formate erfüllen. Ein Beispielprojekt für das Hochladen einer vorcodierten MP4-Datei zum Streaming ist in den .NET SDK-Beispielen verfügbar – siehe Stream Existing Mp4 files (Streamen vorhandener MP4-Dateien).
Die dynamische Azure Media Services-Paketerstellung unterstützt nur Video- und Audiodateien im MP4-Containerformat. Audiodateien müssen ebenfalls in einen MP4-Container codiert werden, wenn alternative Codecs wie Dolby verwendet werden.
Videos für streaming verfügbar machen
Um Videos im codierten Medienobjekt clients zur Wiedergabe zur Verfügung zu stellen, veröffentlichen Sie das Medienobjekt mithilfe eines Streaminglocators , und erstellen Sie die entsprechenden HLS- und DASH-Streaming-URLs. Durch Ändern des für die URL-Formatabfrage verwendeten Protokolls liefert der Dienst das entsprechende Streamingmanifest (HLS, MPEG DASH).
Folglich müssen Sie die Dateien nur in einem einzelnen Speicherformat (MP4) speichern und dafür bezahlen. Media Services generiert und liefert die entsprechenden HLS- oder DASH-Manifeste auf der Grundlage der Anforderungen Ihrer Clientplayer.
Wenn Sie Ihre Inhalte mit der dynamischen Verschlüsselung von Media Services schützen möchten, finden Sie unter Streamingprotokolle und Verschlüsselungstypen weitere Informationen.
Bereitstellen von HLS
HLS: Dynamische Paketerstellung
Ihr Streamingclient kann folgende HLS-Formate angeben. Es wird empfohlen, das CMAF-Format zu verwenden, um die Kompatibilität mit den neuesten Playern und iOS-Geräten sicherzustellen. Bei Legacygeräten sind auch die Formate „v4“ und „v3“ verfügbar, indem Sie einfach die Formatabfragezeichenfolge ändern.
Protocol | Formatzeichenfolge | Beispiel |
---|---|---|
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) |
Hinweis
In früheren Richtlinien von Apple wurde als Fallback für Netzwerke mit geringer Bandbreite ein reiner Audiodatenstrom empfohlen. Der Media Services-Encoder generiert derzeit automatisch eine reine Audiospur. Jetzt besagen die Apple-Richtlinien, dass die reine Audiospur nicht enthalten sein soll, insbesondere bei der Distribution für Apple TV. Damit der Player nicht auf als Standard auf eine reine Audiospur zurückgreift, wird empfohlen, das Tag „audio-only=false“ in der URL anzugeben. Dadurch wird die reine Audiowiedergabe in HLS entfernt. Sie können auch einfach HLS-V3 verwenden. Beispiel: http://host/locator/asset.ism/manifest(format=m3u8-aapl,audio-only=false)
.
HLS-Komprimierungsverhältnis für VOD
Um das Komprimierungsverhältnis von VOD-Inhalten für ältere HLS-Formate zu steuern, können Sie das Metadatentag fragmentsPerHLSSegment in der ISM-Datei festlegen, um das Standardkomprimierungsverhältnis von 3:1 für TS-Segmente zu steuern, die von älteren HLS-Formatmanifesten vom Typ „v3“ und „v4“ bereitgestellt werden. Diese Einstellungsänderung erfordert, dass Sie die ISM-Datei im Speicher direkt ändern, um das Komprimierungsverhältnis anzupassen.
ISM-Beispielservermanifest, bei dem fragmentsPerHLSSegment auf 1 festgelegt ist.
<?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>
Bereitstellen von DASH
DASH: Dynamische Paketerstellung
Ihr Streamingclient kann folgende MPEG-DASH-Formate angeben:
Protocol | Formatzeichenfolge | Beispiel |
---|---|---|
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 (Legacy) | format=mpd-time-csf | https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=mpd-time-csf) |
Bereitstellen von Smooth Streaming-Manifesten
Smooth Streaming: Dynamische Paketerstellung
Ihr Streamingclient kann folgende Smooth Streaming-Formate angeben:
Protocol | Hinweise/Beispiele |
---|---|
Smooth Streaming | https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest |
Smooth Streaming 2.0 (Legacymanifest) | Das Smooth Streaming-Manifestformat enthält standardmäßig das Wiederholungstag (r-Tag). Einige Player unterstützen r-tag jedoch nicht. Clients mit diesen Playern können ein Format verwenden, das das r-Tag deaktiviert:https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=fmp4-v20) |
Hinweis
Smooth Streaming erfordert, dass Ihr Stream sowohl Audio- als auch Videodaten enthält.
Workflow für das On-Demand-Streaming
Die folgenden Schritte zeigen einen allgemeinen Media Services-Streamingworkflow mit dynamischer Paketerstellung und dem Standard-Encoder in Azure Media Services.
Laden Sie eine Eingabedatei hoch, etwa eine MP4-, QuickTime- oder MOV-Datei oder ein anderes unterstütztes Dateiformat. Diese Datei wird auch als Mezzanine- oder Quelldatei bezeichnet. Eine Liste der unterstützten Formate finden Sie unter Media Encoder Standard-Formate und -Codecs.
Codieren Sie Ihre Mezzaninedatei als H.264/AAC-MP4-Satz mit adaptiver Bitrate.
Falls Sie bereits codierte Dateien besitzen und die Dateien nur kopieren und streamen möchten, verwenden Sie Folgendes: APIs CopyVideo und CopyAudio. Daraufhin wird eine neue MP4-Datei mit einem Streamingmanifest (ISM-Datei) erstellt.
Darüber hinaus können Sie einfach die ISM- und ISMC-Datei in einer vorcodierten Datei generieren, solange sie mit den richtigen Einstellungen für Adaptive Bitrate Streaming codiert wird (dies sind in der Regel 2-Sekunden-GOPs, Keyframeentfernungen von 2s Min. und Max. und Codierung im CBR-Modus (konstante Bitrate)).
Ausführliche Informationen zum Generieren der ISM-Datei (Servermanifest) und der ISMC-Datei (Clientmanifeste) für das Streaming aus einer vorhandenen, vorcodierten MP4-Datei finden Sie im .NET SDK-Beispiel zum Streamen vorhandener MP4-Dateien.
Veröffentlichen Sie das Ausgabemedienobjekt, das den MP4-Satz mit adaptiver Bitrate enthält. Zur Veröffentlichung wird ein Streaminglocator erstellt.
Erstellen Sie URLs für unterschiedliche Formate (HLS, MPEG-DASH und Smooth Streaming). Der Streamingendpunkt sorgt dafür, dass das korrekte Manifest bereitgestellt wird und die Anforderungen für alle diese Formate korrekt verarbeitet werden.
Der Downloadpfad in der obigen Abbildung ist nur angegeben, um zu veranschaulichen, dass Sie eine MP4-Datei direkt über den Streamingendpunkt (Ursprung) herunterladen können. (Sie geben die herunterladbare Streamingrichtlinie im Streaminglocator an.)
Der dynamische Paketerstellungs-Manager verändert die Datei nicht. Optional können Sie die Azure Blob Storage-APIs verwenden, um für den progressiven Download direkt auf eine MP4-Datei zuzugreifen, wenn Sie die Features für den Streamingendpunkt (Ursprung) umgehen möchten.
Codieren als MP4-Dateien mit adaptiver Bitrate
Beispiele für die Codierung mit Media Services finden Sie in den folgenden Artikeln:
- Verwenden der inhaltsbezogenen Codierung
- Codebeispiele für die Codierung mit dem Standardencoder mithilfe von .NET
Weitere Informationen finden Sie in der Liste der unterstützten Formate und Codecs für die Standardencodereingabe.
Workflow für das Livestreaming
Ein Liveereignis kann entweder auf eine Pass-Through- (ein lokaler Liveencoder sendet einen Stream mit mehreren Bitraten) oder Livecodierung (ein lokaler Liveencoder sendet einen Stream mit Einzelbitrate) festgelegt werden.
Nachfolgend wird ein allgemeiner Workflow für das Livestreaming mit dynamischer Paketerstellung beschrieben:
- Erstellen Sie ein Liveereignis.
- Rufen Sie die Erfassungs-URL ab, und konfigurieren Sie Ihren lokalen Encoder so, dass die URL zum Senden des Beitragsfeeds verwendet wird.
- Rufen Sie die Vorschau-URL ab, und verwenden Sie sie, um zu überprüfen, ob die Eingabe des Encoders empfangen wird.
- Erstellen Sie ein neues Medienobjekt.
- Erstellen Sie eine Liveausgabe, und verwenden Sie den Namen des erstellten Medienobjekts.
Die Liveausgabe archiviert den Datenstrom im Medienobjekt. - Erstellen Sie einen Streaminglocator mit den integrierten Typen von Streamingrichtlinien.
Wenn Sie beabsichtigen, den Inhalt zu verschlüsseln, lesen Sie Übersicht über den Inhaltsschutz. - Listen Sie die Pfade für den Streaminglocator so auf, dass die zu verwendenden URLs abgerufen werden.
- Rufen Sie den Hostnamen für den Streamingendpunkt ab, von dem aus Sie streamen möchten.
- Erstellen Sie URLs für unterschiedliche Formate (HLS, MPEG-DASH und Smooth Streaming). Der Streamingendpunkt sorgt dafür, dass das korrekte Manifest bereitgestellt wird und die Anforderungen für die verschiedenen Formate korrekt verarbeitet werden.
Informationen zum Livestreaming in Media Services v3 finden Sie unter Übersicht über das Livestreaming.
Von der dynamischen Paketerstellung unterstützte Videocodecs
Die dynamische Paketerstellung unterstützt Videodateien, die im MP4-Containerdateiformat vorliegen und Videodaten enthalten, die mit H.264 (MPEG-4 AVC oder AVC1) oder H.265 (HEVC, hev1 oder hvc1) codiert sind.
Hinweis
Mit der dynamischen Paketerstellung wurden Auflösungen von bis zu 4K und Bildfrequenzen von bis zu 60 Frames/Sekunde getestet.
Von der dynamischen Paketerstellung unterstützte Audiocodecs
Darüber hinaus unterstützt die dynamische Paketerstellung Audiodateien, die im MP4-Dateicontainerformat gespeichert sind und codierte Audiostreams in einem der folgenden Codecs enthalten:
AAC (AAC-LC, HE-AAC v1 oder HE-AAC v2)
Dolby Digital Plus (Enhanced AC-3 oder E-AC3). Die codierte Audiodatei muss im MP4-Containerformat gespeichert werden, damit die dynamische Paketerstellung funktioniert.
Dolby Atmos
Das Streaming von Dolby Atmos-Inhalten wird für Standards wie das MPEG-DASH-Protokoll mit fragmentiertem CSF- (Common Streaming Format) oder CMAF-MP4 (Common Media Application Format) und über HTTP Live Streaming (HLS) mit CMAF unterstützt.
DTS
Folgende DTS-Codecs werden von den Paketerstellungsformaten DASH-CSF, DASH-CMAF, HLS-M2TS und HLS-CMAF unterstützt:- DTS Digital Surround (dtsc)
- DTS-HD High Resolution und DTS-HD Master Audio (dtsh)
- DTS Express (dtse)
- DTS-HD Lossless ohne Core (dtsl)
Die dynamische Paketerstellung unterstützt mehrere Audiospuren mit DASH oder HLS (ab Version 4) für Streamingmedienobjekte, die mehrere Audiospuren mit mehreren Codecs und Sprachen besitzen.
Bei allen oben genannten Codecs muss die codierte Audiodatei im MP4-Containerformat gespeichert sein, damit die dynamische Paketerstellung funktioniert. Der Dienst unterstützt keine unformatierten elementaren Datenstrom-Dateiformate im Blobspeicher. (Folgendes wird beispielsweise nicht unterstützt: .dts, .ac3.)
Nur Dateien mit der Erweiterung „.mp4“ oder „.mp4a“ werden für die Audiopaketerstellung unterstützt.
Einschränkungen
Einschränkungen unter iOS für AAC 5.1-Audio
Apple iOS-Geräte unterstützen den 5.1 AAC-Audiocodec nicht. Mehrkanal-Audio muss mit Dolby Digital- oder Dolby Digital Plus-Codecs codiert werden.
Ausführliche Informationen finden Sie unter HLS-Erstellungsspezifikation für Apple-Geräte.
Hinweis
Media Services unterstützt nicht die Codierung der Mehrkanal-Audioformate Dolby Digital, Dolby Digital Plus oder Dolby Digital Plus mit Dolby Atmos.
Dolby Digital-Audio
Die dynamische Paketerstellung von Media Services unterstützt derzeit keine Dateien, die Dolby Digital-Audio (AC3) enthalten, da dies als Legacy-Codec von Dolby betrachtet wird.
Manifeste
Bei der dynamischen Paketerstellung von Media Services werden die Streamingclientmanifeste für HLS, MPEG-DASH und Smooth Streaming dynamisch basierend auf der Formatabfrage in der URL generiert.
Eine Manifestdatei enthält Streamingmetadaten wie etwa Typ (Audio, Video oder Text), Titelname, Start- und Endzeit, Bitrate (Qualität), Sprachen, Präsentationsfenster (gleitendes Fenster mit fester Dauer) und Videocodec (FourCC). Sie weist den Player zudem zum Abrufen des nächsten Fragments an, indem Informationen zu den nächsten für die Wiedergabe verfügbaren Videofragmenten und den zugehörigen Speicherorten angegeben werden. Fragmente (oder Segmente) sind die eigentlichen „Blöcke“ von Videoinhalten.
Beispiele
HLS
Beispiel für eine HLS-Manifestdatei, auch als HLS Master Playlist bezeichnet:
#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
Beispiel für eine MPEG-DASH-Manifestdatei, auch als MPEG-DASH Media Presentation Description (MPD) bezeichnet:
<?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
Beispiel für eine Smooth Streaming-Manifestdatei:
<?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>
Benennen von Spuren im Manifest
Wird in der ISM-Datei ein Audiospurname angegeben, wird von Media Services ein Label
-Element innerhalb eines AdaptationSet
-Elements hinzugefügt, um die Strukturinformationen für die bestimmte Audiospur anzugeben. Beispiel für das DASH-Ausgabemanifest:
<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>
Der Player kann das Element Label
für die Anzeige auf der Benutzeroberfläche verwenden.
Kennzeichnen von Spuren für die Audiobeschreibung
Sie können dem Video eine Audiokommentarspur hinzufügen, damit Benutzer mit Sehbehinderung dem Video folgen können, indem sie sich den Audiokommentar anhören. Sie müssen eine Audiospur als Audiobeschreibung im Manifest kommentieren. Fügen Sie dafür in der ISM-Datei die Parameter „accessibility“ und „role“ hinzu. Es liegt in Ihrer Verantwortung, diese Parameter korrekt festzulegen, um eine Audiospur als Audiobeschreibung zu signalisieren. Fügen Sie beispielsweise der ISM-Datei für eine bestimmte Audiospur und <param name="role" value="alternate"
hinzu<param name="accessibility" value="description" />
.
Smooth Streaming-Manifest
Bei der Wiedergabe eines Smooth Streaming-Streams enthält das Manifest Werte in den Accessibility
- und Role
-Attributen für diese Audiospur. Beispielsweise durch Hinzufügen von Role="alternate" Accessibility="description"
zum StreamIndex
-Element angegeben werden, dass es sich um eine Audiobeschreibung handelt.
DASH-Manifest
Für das DASH-Manifest werden die folgenden beiden Elemente hinzugefügt, um die Audiobeschreibung zu signalisieren:
<Accessibility schemeIdUri="urn:mpeg:dash:role:2011" value="description"/>
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="alternate"/>
HLS-Wiedergabeliste
Bei HLS Version 7 und höher (format=m3u8-cmaf)
enthält die Wiedergabeliste AUTOSELECT=YES,CHARACTERISTICS="public.accessibility.describes-video"
, wenn die Audiobeschreibungsspur signalisiert wird.
Dynamische Manifestfilterung
Zur Steuerung der Anzahl von Spuren sowie der Formate, Bitraten und Präsentationszeitfenster können Sie die dynamische Filterung mit dem dynamischen Packager von Media Services verwenden. Weitere Informationen finden Sie unter Vorfiltern von Manifesten mit dem dynamischen Packager.
Dynamische Verschlüsselung für DRM
Mit der dynamischen Verschlüsselung können Sie Ihre Live- oder On-Demand-Inhalte mit AES-128 oder einem der drei hauptsächlichen DRM-Systeme (Digital Rights Management) dynamisch verschlüsseln: Microsoft PlayReady, Google Widevine und Apple FairPlay. Media Services bietet außerdem einen Dienst für die Übermittlung von AES-Schlüsseln und DRM-Lizenzen an autorisierte Clients. Weitere Informationen finden Sie unter Dynamische Verschlüsselung.
Hinweis
Widevine ist ein von Google Inc. bereitgestellter Dienst, der den Vertragsbedingungen und der Datenschutzrichtlinie von Google, Inc. unterliegt.
Anfordern von Hilfe und Support
Sie können Media Services mit Fragen kontaktieren oder unsere Updates mit einer der folgenden Methoden verfolgen:
- Q & A
-
Stack Overflow. Markieren Sie Fragen mit
azure-media-services
. - @MSFTAzureMedia oder verwenden Sie @AzureSupport , um Support anzufordern.
- Öffnen Sie ein Supportticket über die Azure-Portal.