Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
GetDASHStreamingSessionURL
Ruft ein MPEG dynamisches adaptives Streaming-Over HTTP (DASH) URL für den Stream ab. Sie können das dann URL in einem Media Player öffnen, um den Inhalt des Streams anzusehen.
StreamName
Sowohl der als auch der StreamARN
Parameter sind optional, aber Sie müssen entweder den StreamName
oder den angeben, StreamARN
wenn Sie diesen API Vorgang aufrufen.
Für einen Amazon Kinesis Kinesis-Videostream gelten die folgenden Anforderungen für die Bereitstellung von Daten über MPEG -: DASH
-
Der Datenerhaltzeitraum muss größer als 0 sein.
-
Die Videospur jedes Fragments muss private Codec-Daten im Format Advanced Video Coding (AVC) für das H.264-Format und das HEVC H.265-Format enthalten. Weitere Informationen finden Sie in der MPEG-4-Spezifikation /14496-15 ISO
. IEC Informationen zur Anpassung von Stream-Daten an ein bestimmtes Format finden Sie unter NAL Adaptation Flags. -
Die Audiospur (falls vorhanden) jedes Fragments muss private Codec-Daten im AAC Format (AACSpezifikation ISO IEC /13818-7
) oder im MS Wave-Format enthalten.
Das folgende Verfahren zeigt die Verwendung MPEG — DASH mit Kinesis Video Streams:
-
Rufen Sie den an
GetDataEndpoint
API, um einen Endpunkt zu erhalten. Senden Sie dann dieGetDASHStreamingSessionURL
Anfragen mit dem Parameter --endpoint-url an diesen Endpunkt. -
Rufen Sie das MPEG - ab, indem Sie. DASH URL
GetDASHStreamingSessionURL
Kinesis Video Streams erstellt eine MPEG DASH -Streaming-Sitzung, die für den Zugriff auf Inhalte in einem Stream mithilfe des MPEG DASH -Protokolls verwendet wird.GetDASHStreamingSessionURL
gibt ein authentifiziertes URL (das ein verschlüsseltes Sitzungstoken enthält) für das DASH -Manifest der Sitzung zurück (die Root-Ressource, die für das Streaming mit MPEG - DASH benötigt wird). MPEGAnmerkung
Teilen oder speichern Sie dieses Token nicht dort, wo eine nicht autorisierte Entität darauf zugreifen kann. Das Token ermöglicht den Zugriff auf den Inhalt des Streams. Schützen Sie das Token mit denselben Maßnahmen, die Sie für Ihre AWS Anmeldeinformationen verwenden.
Die Medien, die über das Manifest zur Verfügung gestellt werden, bestehen nur aus dem angeforderten Stream, Zeitbereich und Format. Es werden keine anderen Mediendaten (wie Frames außerhalb des angeforderten Fensters oder alternative Bitraten) zur Verfügung gestellt.
-
Geben Sie das Manifest URL (das das verschlüsselte Sitzungstoken enthält) für das MPEG DASH -Manifest an einen Media Player weiter, der das DASH Protokoll MPEG - unterstützt. Kinesis Video Streams stellt das Initialisierungsfragment und die Medienfragmente über das Manifest zur Verfügung. URL Das Initialisierungsfragment enthält die privaten Codec-Daten für den Stream und andere Daten, die zur Einrichtung des Video- oder Audiodecoders und Renderers benötigt werden. Die Medienfragmente enthalten kodierte Videoframes oder kodierte Audiobeispiele.
-
Der Media Player empfängt die authentifizierten Daten URL und fordert Stream-Metadaten und Mediendaten normal an. Wenn der Media Player Daten anfordert, ruft er die folgenden Aktionen auf:
-
GetDASHManifest: Ruft ein MPEG DASH Manifest ab, das die Metadaten für die Medien enthält, die Sie abspielen möchten.
-
AbrufenMP4InitFragment: Ruft das MP4 Initialisierungsfragment ab. Der Media Player lädt normalerweise das Initialisierungsfragment, bevor er Medienfragmente lädt. Dieses Fragment enthält die Atome
fytp
"" und "moov
" sowie die untergeordneten MP4 Atome, die zur Initialisierung des Media Player-Decoders benötigt werden.Das Initialisierungsfragment entspricht keinem Fragment in einem Kinesis-Videostream. Es enthält nur die privaten Codec-Daten für den Stream und den jeweiligen Titel, die der Media Player benötigt, um die Medienframes zu dekodieren.
-
AbrufenMP4MediaFragment: Ruft MP4 Medienfragmente ab. Diese Fragmente enthalten die MP4 Atome
moof
"" und "mdat
" und ihre untergeordneten Atome, die die Medienframes und ihre Zeitstempel des codierten Fragments enthalten.Wichtig
Die privaten Codec-Daten (CPD), die in jedem Fragment enthalten sind, enthalten codecspezifische Initialisierungsinformationen wie Bildrate, Auflösung und Kodierungsprofil, die für die korrekte Dekodierung des Fragments erforderlich sind. CPDÄnderungen werden während einer Streaming-Sitzung nicht unterstützt. Sie CPD müssen in den abgefragten Medien konsistent bleiben.
Wichtig
Änderungen nachverfolgen wird nicht unterstützt. Die Titel müssen in den abgefragten Medien einheitlich sein. Das Streaming schlägt fehl, wenn die Fragmente im Stream nicht mehr nur Video enthalten, sondern sowohl Audio als auch Video enthalten, oder wenn eine AAC Audiospur in eine A-Law-Audiospur umgewandelt wird.
Mit dieser Aktion abgerufene Daten sind abrechnungsfähig. Einzelheiten finden Sie unter Preise
.
-
Anmerkung
Einschränkungen, die für MPEG — DASH Sitzungen gelten, finden Sie unter Kinesis Video Streams Streams-Kontingente.
Sie können die Datenmenge, die der Media Player verbraucht, überwachen, indem Sie die GetMP4MediaFragment.OutgoingBytes
CloudWatch Amazon-Metrik überwachen. Informationen CloudWatch zur Überwachung von Kinesis Video Streams finden Sie unter Kinesis Video Streams überwachen. Preisinformationen finden Sie unter Amazon Kinesis Video Streams — Preise
Weitere Informationen zu HLS finden Sie unter HTTPLive-Streaming
Wichtig
Wenn nach dem Aufrufen eines archivierten Kinesis Video Streams Streams-Mediums ein Fehler ausgegeben wirdAPI, enthält dieser zusätzlich zum HTTP Statuscode und dem Antworttext die folgenden Informationen:
-
x-amz-ErrorType
HTTPHeader — enthält zusätzlich zu den Angaben des HTTP Statuscodes einen spezifischeren Fehlertyp. -
x-amz-RequestId
HTTPHeader — Wenn Sie dem Support-Team ein Problem melden möchten, können Sie AWS das Problem besser diagnostizieren, wenn Sie die Anforderungs-ID angeben.
Sowohl der HTTP Statuscode als auch der ErrorType Header können verwendet werden, um programmatische Entscheidungen darüber zu treffen, ob und unter welchen Bedingungen Fehler wiederholt werden können. Außerdem können sie Informationen darüber liefern, welche Maßnahmen der Client-Programmierer möglicherweise ergreifen muss, um es erneut zu versuchen.
Anforderungssyntax
POST /getDASHStreamingSessionURL HTTP/1.1
Content-type: application/json
{
"DASHFragmentSelector": {
"FragmentSelectorType": "string
",
"TimestampRange": {
"EndTimestamp": number
,
"StartTimestamp": number
}
},
"DisplayFragmentNumber": "string
",
"DisplayFragmentTimestamp": "string
",
"Expires": number
,
"MaxManifestFragmentResults": number
,
"PlaybackMode": "string
",
"StreamARN": "string
",
"StreamName": "string
"
}
URIAnforderungsparameter
Die Anfrage verwendet keine URI Parameter.
Anforderungstext
Die Anfrage akzeptiert die folgenden Daten im JSON Format.
- DASHFragmentSelector
-
Der Zeitbereich des angeforderten Fragments und die Quelle der Zeitstempel.
Dieser Parameter ist erforderlich, wenn er
ON_DEMAND
oderPlaybackMode
LIVE_REPLAY
ist. Dieser Parameter ist optional, falls PlaybackMode jaLIVE
. WennPlaybackMode
jaLIVE
,FragmentSelectorType
kann er gesetzt werden,TimestampRange
sollte aber nicht gesetzt werden. WennPlaybackMode
istON_DEMAND
oderLIVE_REPLAY
,TimestampRange
müssen beideFragmentSelectorType
gesetzt werden.Typ: DASHFragmentSelector Objekt
Erforderlich: Nein
- DisplayFragmentNumber
-
Fragmente werden in der Manifestdatei anhand ihrer Sequenznummer in der Sitzung identifiziert. Wenn auf gesetzt DisplayFragmentNumber ist
ALWAYS
, wird die Kinesis Video Streams Streams-Fragmentnummer zu jedem S-Element in der Manifestdatei mit dem Attributnamen „kvs:fn“ hinzugefügt. Diese Fragmentnummern können für die Protokollierung oder für die Verwendung mit anderen Fragmenten APIs (z. B.GetMedia
und) verwendet werden.GetMediaForFragmentList
Um dieses MPEG benutzerdefinierte Attribut nutzen zu können, ist ein benutzerdefinierter DASH Media Player erforderlich.Der Standardwert ist
NEVER
.Typ: Zeichenfolge
Zulässige Werte:
ALWAYS | NEVER
Erforderlich: Nein
- DisplayFragmentTimestamp
-
Gemäß der DASH Spezifikation MPEG - kann die Uhrzeit der Wanduhr von Fragmenten in der Manifestdatei anhand von Attributen im Manifest selbst abgeleitet werden. In der Regel können MPEG - DASH kompatible Mediaplayer Lücken in der Medien-Timeline jedoch nicht richtig behandeln. Kinesis Video Streams passt die Medien-Timeline in der Manifestdatei an, um die Wiedergabe von Medien mit Unterbrechungen zu ermöglichen. Daher kann die aus der Manifestdatei abgeleitete Uhrzeit der Wanduhr ungenau sein. Wenn auf gesetzt DisplayFragmentTimestamp ist
ALWAYS
, wird jedem S-Element in der Manifestdatei mit dem Attributnamen „kvs:ts“ der genaue Fragment-Zeitstempel hinzugefügt. Um dieses benutzerdefinierte Attribut MPEG nutzen zu können, ist ein benutzerdefinierter DASH Media Player erforderlich.Der Standardwert ist
NEVER
. Wenn dies derSERVER_TIMESTAMP
Fall DASHFragmentSelector ist, sind die Zeitstempel die Startzeitstempel des Servers. In ähnlicher Weise werden bei denPRODUCER_TIMESTAMP
Zeitstempeln die Startzeitstempel des Produzenten verwendet, wenn dies der Fall DASHFragmentSelector ist.Typ: Zeichenfolge
Zulässige Werte:
ALWAYS | NEVER
Erforderlich: Nein
- Expires
-
Die Zeit in Sekunden, bis die angeforderte Sitzung abläuft. Dieser Wert kann zwischen 300 (5 Minuten) und 43200 (12 Stunden) liegen.
Wenn eine Sitzung abläuft,
GetMP4MediaFragment
können keine neuen Aufrufe für diese Sitzung getätigt werden.GetDashManifest
GetMP4InitFragment
Der Standardwert ist 300 (5 Minuten).
Typ: Ganzzahl
Gültiger Bereich: Mindestwert von 300. Maximalwert 43200.
Erforderlich: Nein
- MaxManifestFragmentResults
-
Die maximale Anzahl von Fragmenten, die im MPEG DASH -Manifest zurückgegeben werden.
Wenn ja
PlaybackMode
LIVE
, werden die neuesten Fragmente bis zu diesem Wert zurückgegeben. Wenn der WertPlaybackMode
istON_DEMAND
, werden die ältesten Fragmente zurückgegeben, und zwar bis zu dieser Höchstzahl.Wenn in einem MPEG DASH Live-Manifest eine höhere Anzahl von Fragmenten verfügbar ist, puffern Videoplayer häufig Inhalte, bevor sie mit der Wiedergabe beginnen. Eine Erhöhung der Puffergröße erhöht die Wiedergabe-Latenz, verringert aber auch die Wahrscheinlichkeit, dass es während der Wiedergabe zu einer Neupufferung kommt. Wir empfehlen, dass ein MPEG DASH Live-Manifest aus mindestens 3 Fragmenten und maximal 10 Fragmenten besteht.
Die Standardeinstellung ist 5 Fragmente, falls
PlaybackMode
esLIVE
oder istLIVE_REPLAY
, und 1.000, wennPlaybackMode
es istON_DEMAND
.Der Höchstwert von 1.000 Fragmenten entspricht mehr als 16 Minuten Video bei Streams mit 1-Sekunden-Fragmenten und mehr als 2 1/2 Stunden Video bei Streams mit 10-Sekunden-Fragmenten.
Type: Long
Gültiger Bereich: Mindestwert 1. Der Höchstwert ist 5000.
Erforderlich: Nein
- PlaybackMode
-
Ob Live-, Live-Wiedergabe- oder archivierte On-Demand-Daten abgerufen werden sollen.
Zu den Funktionen der drei Sitzungstypen gehören:
-
LIVE
: Bei Sitzungen dieses Typs wird das MPEG DASH -Manifest ständig mit den neuesten Fragmenten aktualisiert, sobald sie verfügbar sind. Wir empfehlen, dass der Media Player alle eine Sekunde ein neues Manifest abruft. Wenn diese Art von Sitzung in einem Media Player wiedergegeben wird, zeigt die Benutzeroberfläche in der Regel eine Live-Benachrichtigung an, ohne dass die gewünschte Position im Wiedergabefenster ausgewählt werden kann.Anmerkung
Im
LIVE
Modus sind die neuesten verfügbaren Fragmente in einem MPEG DASH -Manifest enthalten, auch wenn zwischen den Fragmenten eine Lücke besteht (d. h. wenn ein Fragment fehlt). Eine solche Lücke kann dazu führen, dass ein Media Player angehalten wird oder die Wiedergabe unterbrochen wird. In diesem Modus werden Fragmente nicht zum MPEG DASH -Manifest hinzugefügt, wenn sie älter sind als das neueste Fragment in der Playlist. Wenn das fehlende Fragment verfügbar wird, nachdem ein weiteres Fragment zum Manifest hinzugefügt wurde, wird das ältere Fragment nicht hinzugefügt und die Lücke wird nicht gefüllt. -
LIVE_REPLAY
: Bei Sitzungen dieses Typs wird das MPEG DASH -Manifest ähnlich wie die Aktualisierung für denLIVE
Modus aktualisiert, außer dass es zunächst Fragmente ab einer bestimmten Startzeit einbezieht. Fragmente werden nicht bei der Aufnahme hinzugefügt, sondern Fragmente werden hinzugefügt, wenn die Dauer des nächsten Fragments verstrichen ist. Wenn die Fragmente in der Sitzung beispielsweise zwei Sekunden lang sind, wird dem Manifest alle zwei Sekunden ein neues Fragment hinzugefügt. Dieser Modus ist nützlich, um die Wiedergabe ab dem Zeitpunkt starten zu können, an dem ein Ereignis erkannt wird, und das Live-Streaming von Medien fortsetzen zu können, die zum Zeitpunkt der Sitzungserstellung noch nicht aufgenommen wurden. Dieser Modus ist auch nützlich, um zuvor archivierte Medien zu streamen, ohne durch die Obergrenze von 1.000 Fragmenten in diesemON_DEMAND
Modus eingeschränkt zu sein. -
ON_DEMAND
: Bei Sitzungen dieses Typs enthält das MPEG DASH -Manifest alle Fragmente für die Sitzung, bis zu der Anzahl, die in angegeben istMaxManifestFragmentResults
. Das Manifest darf für jede Sitzung nur einmal abgerufen werden. Wenn diese Art von Sitzung in einem Media Player wiedergegeben wird, zeigt die Benutzeroberfläche in der Regel ein Steuerelement an, mit dem Sie die anzuzeigende Position im Wiedergabefenster auswählen können.
In allen Wiedergabemodi
FragmentSelectorType
ist dasPRODUCER_TIMESTAMP
Fragment mit der größeren Fragmentnummer (d. h. das neuere Fragment) im MPEG DASH -Manifest enthalten, wenn dies der Fall ist und mehrere Fragmente mit demselben Startzeitstempel vorhanden sind. Die anderen Fragmente sind nicht enthalten. Fragmente mit unterschiedlichen Zeitstempeln, deren Dauer sich jedoch überschneidet, sind weiterhin im MPEG -Manifest enthalten. DASH Dies kann zu unerwartetem Verhalten im Media Player führen.Der Standardwert ist
LIVE
.Typ: Zeichenfolge
Zulässige Werte:
LIVE | LIVE_REPLAY | ON_DEMAND
Erforderlich: Nein
-
- StreamARN
-
Der Amazon-Ressourcenname (ARN) des Streams, für den das MPEG DASH -Manifest abgerufen werden sollURL.
Sie müssen entweder den
StreamName
oder den angebenStreamARN
.Typ: Zeichenfolge
Längenbeschränkungen: Minimale Länge von 1. Maximale Länge beträgt 1024 Zeichen.
Pattern:
arn:[a-z\d-]+:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+
Erforderlich: Nein
- StreamName
-
Der Name des Streams, für den das MPEG DASH -Manifest abgerufen werden sollURL.
Sie müssen entweder den
StreamName
oder den angebenStreamARN
.Typ: Zeichenfolge
Längenbeschränkungen: Minimale Länge beträgt 1 Zeichen. Maximale Länge beträgt 256 Zeichen.
Pattern:
[a-zA-Z0-9_.-]+
Erforderlich: Nein
Antwortsyntax
HTTP/1.1 200
Content-type: application/json
{
"DASHStreamingSessionURL": "string"
}
Antwortelemente
Wenn die Aktion erfolgreich ist, sendet der Dienst eine HTTP 200-Antwort zurück.
Die folgenden Daten werden vom Dienst im JSON Format zurückgegeben.
- DASHStreamingSessionURL
-
Das URL (das das Sitzungstoken enthält), das ein Media Player verwenden kann, um das MPEG DASH -Manifest abzurufen.
Typ: Zeichenfolge
Fehler
Weitere Informationen zu den allgemeinen Fehlern, die bei allen Aktionen zurückgegeben werden, finden Sie unter Häufige Fehler.
- ClientLimitExceededException
-
Kinesis Video Streams hat die Anfrage gedrosselt, weil Sie ein Limit überschritten haben. Versuchen Sie später, den Anruf zu tätigen. Informationen zu Grenzwerten finden Sie unter Kinesis Video Streams Streams-Kontingente.
HTTPStatuscode: 400
- InvalidArgumentException
-
Ein angegebener Parameter überschreitet seine Beschränkungen, wird nicht unterstützt oder kann nicht verwendet werden.
HTTPStatuscode: 400
- InvalidCodecPrivateDataException
-
Die privaten Codec-Daten in mindestens einer der Spuren des Videostreams sind für diesen Vorgang nicht gültig.
HTTPStatuscode: 400
- MissingCodecPrivateDataException
-
In mindestens einem der Spuren des Videostreams wurden keine privaten Codec-Daten gefunden.
HTTPStatuscode: 400
- NoDataRetentionException
-
GetImages
wurde für einen Stream angefordert, der keine Daten speichert (d. h. den WertDataRetentionInHours
0 hat).HTTPStatuscode: 400
- NotAuthorizedException
-
Statuscode: 403, Der Aufrufer ist nicht berechtigt, einen Vorgang mit dem angegebenen Stream auszuführen, oder das Token ist abgelaufen.
HTTPStatuscode: 401
- ResourceNotFoundException
-
GetImages
löst diesen Fehler aus, wenn Kinesis Video Streams den von Ihnen angegebenen Stream nicht finden kann.GetHLSStreamingSessionURL
undGetDASHStreamingSessionURL
gibt diesen Fehler aus, wenn eine Sitzung mit einemPlaybackMode
ofON_DEMAND
oder für einen Stream angefordertLIVE_REPLAY
wird, der innerhalb des angeforderten Zeitraums keine Fragmente enthält, oder wenn eine Sitzung mit einemPlaybackMode
of für einen Stream angefordertLIVE
wird, der innerhalb der letzten 30 Sekunden keine Fragmente enthält.HTTPStatuscode: 404
- UnsupportedStreamMediaTypeException
-
Der Medientyp (z. B. h.264- oder h.265-Video AAC oder G.711-Audio) konnte anhand IDs des Codec der Titel im ersten Fragment für eine Wiedergabesitzung nicht bestimmt werden. Die Codec-ID für Track 1 sollte
V_MPEG/ISO/AVC
und optional die Codec-ID für Track 2 sein.A_AAC
HTTPStatuscode: 400
Weitere Informationen finden Sie unter:
Weitere Informationen zur Verwendung API in einer der sprachspezifischen Sprachen AWS SDKs finden Sie im Folgenden: