

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.

# Amazon Kinesis Video Streams Streams-Medien
<a name="API_Operations_Amazon_Kinesis_Video_Streams_Media"></a>

Die folgenden Aktionen werden von Amazon Kinesis Video Streams Media unterstützt:
+  [GetMedia](API_dataplane_GetMedia.md) 
+  [PutMedia](API_dataplane_PutMedia.md) 

# GetMedia
<a name="API_dataplane_GetMedia"></a>

 Verwenden Sie diese API, um Medieninhalte aus einem Kinesis-Videostream abzurufen. In der Anfrage identifizieren Sie den Streamnamen oder den Stream-Amazon-Ressourcennamen (ARN) und den Startblock. Kinesis Video Streams gibt dann einen Stream von Chunks zurück, der nach Fragmentnummer sortiert ist.

**Anmerkung**  
Sie müssen zuerst die `GetDataEndpoint` API aufrufen, um einen Endpunkt zu erhalten. Senden Sie dann die `GetMedia` Anfragen mit dem Parameter [--endpoint-url an diesen Endpunkt](https://docs.aws.amazon.com/cli/latest/reference/). 

Wenn Sie Mediendaten (Fragmente) in einen Stream einfügen, speichert Kinesis Video Streams jedes eingehende Fragment und die zugehörigen Metadaten in einem sogenannten „Chunk“. Weitere Informationen finden Sie unter [PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html). Die `GetMedia` API gibt einen Stream dieser Chunks zurück, der mit dem Chunk beginnt, den Sie in der Anfrage angeben. 

Die `GetMedia` API ist so konzipiert, dass sie als Streaming-API über eine lang andauernde Verbindung funktioniert. Sie ist nicht für die herkömmliche Verwendung vorgesehen, RESTful bei der für jedes Fragment eine neue HTTP-Verbindung hergestellt und geschlossen wird. Wenn Sie die `GetMedia` API aufrufen, überträgt Kinesis Video Streams Fragmente kontinuierlich über eine persistente Verbindung mit langer Laufzeit unter Verwendung der HTTP-Chunked-Transfercodierung.

Bei der Verwendung der API gelten die folgenden Beschränkungen: `GetMedia`
+ Ein Client kann `GetMedia` bis zu fünf Mal pro Sekunde pro Stream aufrufen. 
+ Kinesis Video Streams sendet während einer Sitzung Mediendaten mit einer Geschwindigkeit von bis zu 25 Megabyte pro Sekunde (oder 200 Megabit pro Sekunde). `GetMedia` 
**Anmerkung**  
Wird `GetMedia` als Streaming-Verbindung mit langer Laufzeit verwendet, um mehrere Fragmente in einer einzigen persistenten Verbindung abzurufen. Verwenden Sie die `GetMedia` API nicht RESTful auf herkömmliche Weise, bei der Sie für jedes Fragment eine neue HTTP-Verbindung einrichten und schließen. Wenn Sie versuchen, mehr als drei `GetMedia` Verbindungen gleichzeitig herzustellen, drosselt Kinesis Video Streams die letzten Verbindungen mit einem Fehler. `ConnectionLimitExceededException`

**Anmerkung**  
Der Statuscode der `GetMedia` HTTP-Antwort wird sofort zurückgegeben, aber das Lesen der Nutzdaten der HTTP-Antwort wird nach 3 Sekunden beendet, wenn keine aufgenommenen Fragmente für die Wiedergabe verfügbar sind.

**Anmerkung**  
Wenn nach dem Aufrufen einer Kinesis Video Streams Streams-Medien-API ein Fehler ausgelöst wird, enthält dieser zusätzlich zum HTTP-Statuscode und dem Antworttext die folgenden Informationen:   
 `x-amz-ErrorType`HTTP-Header — enthält zusätzlich zu dem, was der HTTP-Statuscode bietet, einen spezifischeren Fehlertyp. 
 `x-amz-RequestId`HTTP-Header — Wenn Sie ein Problem melden möchten AWS, kann das Support-Team das Problem anhand der Anforderungs-ID besser diagnostizieren.
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 Informationen darüber bereitgestellt werden, welche Maßnahmen der Client-Programmierer möglicherweise ergreifen muss, um es erneut erfolgreich zu versuchen.  
[Weitere Informationen finden Sie im Abschnitt **Fehler** am Ende dieses Themas sowie unter Häufige Fehler.](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html) 

## Anforderungssyntax
<a name="API_dataplane_GetMedia_RequestSyntax"></a>

```
POST /getMedia HTTP/1.1
Content-type: application/json

{
   "StartSelector": { 
      "AfterFragmentNumber": "string",
      "ContinuationToken": "string",
      "StartSelectorType": "string",
      "StartTimestamp": number
   },
   "StreamARN": "string",
   "StreamName": "string"
}
```

## URI-Anfrageparameter
<a name="API_dataplane_GetMedia_RequestParameters"></a>

Die Anforderung verwendet keine URI-Parameter.

## Anforderungstext
<a name="API_dataplane_GetMedia_RequestBody"></a>

Die Anforderung akzeptiert die folgenden Daten im JSON-Format.

 ** [StartSelector](#API_dataplane_GetMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-request-StartSelector"></a>
Identifiziert den Startblock, der aus dem angegebenen Stream abgerufen werden soll.   
Typ: [StartSelector](API_dataplane_StartSelector.md) Objekt  
Erforderlich: Ja

 ** [StreamARN](#API_dataplane_GetMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-request-StreamARN"></a>
Der ARN des Streams, von dem Sie den Medieninhalt abrufen möchten. Wenn Sie den nicht angeben`streamARN`, müssen Sie den angeben`streamName`.  
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](#API_dataplane_GetMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-request-StreamName"></a>
Der Name des Kinesis-Videostreams, von dem Sie den Medieninhalt abrufen möchten. Wenn Sie den nicht angeben`streamName`, müssen Sie den `streamARN` angeben.  
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
<a name="API_dataplane_GetMedia_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-Type: ContentType

Payload
```

## Antwortelemente
<a name="API_dataplane_GetMedia_ResponseElements"></a>

Wenn die Aktion erfolgreich ist, sendet der Service eine HTTP 200-Antwort zurück.

Die Antwort gibt die folgenden HTTP-Header zurück.

 ** [ContentType](#API_dataplane_GetMedia_ResponseSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-response-ContentType"></a>
Der Inhaltstyp des angeforderten Mediums.  
Längenbeschränkungen: Minimale Länge beträgt 1 Zeichen. Maximale Länge beträgt 128 Zeichen.  
Pattern: `^[a-zA-Z0-9_\.\-]+$` 

Die Antwort gibt folgendes als HTTP-Hauptteil zurück.

 ** [Payload](#API_dataplane_GetMedia_ResponseSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-response-Payload"></a>
 Die Payload, die Kinesis Video Streams zurückgibt, ist eine Sequenz von Chunks aus dem angegebenen Stream. Weitere Informationen zu den Chunks finden Sie unter. [PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html) Die Chunks, die Kinesis Video Streams im `GetMedia` Aufruf zurückgibt, enthalten auch die folgenden zusätzlichen Matroska-Tags (MKV):   
+ AWS\$1KINESISVIDEO\$1CONTINUATION\$1TOKEN (UTF-8-Zeichenfolge) — Falls Ihr `GetMedia` Anruf beendet wird, können Sie dieses Fortsetzungstoken in Ihrer nächsten Anfrage verwenden, um den nächsten Abschnitt abzurufen, in dem die letzte Anfrage beendet wurde.
+ AWS\$1KINESISVIDEO\$1MILLIS\$1BEHIND\$1NOW (UTF-8-Zeichenfolge) — Client-Anwendungen können diesen Tag-Wert verwenden, um zu ermitteln, wie weit der in der Antwort zurückgegebene Chunk vom letzten Chunk im Stream zurückliegt. 
+ AWS\$1KINESISVIDEO\$1FRAGMENT\$1NUMBER - Die im Chunk zurückgegebene Fragmentnummer.
+ AWS\$1KINESISVIDEO\$1SERVER\$1TIMESTAMP - Serverzeitstempel des Fragments.
+ AWS\$1KINESISVIDEO\$1PRODUCER\$1TIMESTAMP - Zeitstempel des Produzenten des Fragments.
Die folgenden Tags sind vorhanden, falls ein Fehler auftritt:  
+ AWS\$1KINESISVIDEO\$1ERROR\$1CODE - Zeichenkettenbeschreibung eines Fehlers, der GetMedia zum Abbruch geführt hat.
+ AWS\$1KINESISVIDEO\$1ERROR\$1ID: Ganzzahlcode des Fehlers.
Die Fehlercodes lauten wie folgt:  
+ 3002 — Fehler beim Schreiben in den Stream
+ 4000 — Das angeforderte Fragment wurde nicht gefunden
+ 4500 — Zugriff für den KMS-Schlüssel des Streams verweigert
+ 4501 — Der KMS-Schlüssel des Streams ist deaktiviert
+ 4502 — Validierungsfehler beim KMS-Schlüssel des Streams
+ 4503 — Der im Stream angegebene KMS-Schlüssel ist nicht verfügbar
+ 4504 — Ungültige Verwendung des im Stream angegebenen KMS-Schlüssels
+ 4505 — Ungültiger Status des im Stream angegebenen KMS-Schlüssels
+ 4506 — Der im Stream angegebene KMS-Schlüssel konnte nicht gefunden werden
+ 5000 — Interner Fehler

## Fehler
<a name="API_dataplane_GetMedia_Errors"></a>

Weitere Informationen zu den allgemeinen Fehlern, die bei allen Aktionen zurückgegeben werden, finden Sie unter [Häufige Fehlertypen](CommonErrors.md).

 ** ClientLimitExceededException **   
Kinesis Video Streams hat die Anfrage gedrosselt, weil Sie das Limit der erlaubten Client-Aufrufe überschritten haben. Versuchen Sie später, den Anruf zu tätigen.  
HTTP-Statuscode: 400

 ** ConnectionLimitExceededException **   
Kinesis Video Streams hat die Anfrage gedrosselt, weil Sie das Limit der zulässigen Client-Verbindungen überschritten haben.  
HTTP-Statuscode: 400

 ** InvalidArgumentException **   
Der Wert für diesen Eingabeparameter ist ungültig.  
HTTP-Statuscode: 400

 ** InvalidEndpointException **   
Der Aufrufer hat einen falschen Endpunkt verwendet, um Daten in einen Stream zu schreiben. Bei Empfang einer solchen Ausnahme muss der Benutzer `GetDataEndpoint` mit `APIName` set to aufrufen `PUT_MEDIA` und den Endpunkt aus der Antwort verwenden, um den nächsten `PutMedia` Aufruf aufzurufen.   
HTTP-Statuscode: 400

 ** NotAuthorizedException **   
Der Aufrufer ist nicht autorisiert, eine Operation mit dem angegebenen Stream auszuführen, oder das Token ist abgelaufen.  
HTTP-Statuscode: 401

 ** ResourceNotFoundException **   
Statuscode: 404, Der Stream mit dem angegebenen Namen existiert nicht.  
HTTP-Statuscode: 404

## Weitere Informationen finden Sie unter:
<a name="API_dataplane_GetMedia_SeeAlso"></a>

Weitere Informationen zur Verwendung dieser API in einer der sprachspezifischen Sprachen AWS SDKs finden Sie im Folgenden:
+  [AWS Befehlszeilenschnittstelle V2](https://docs.aws.amazon.com/goto/cli2/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK für JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK für Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK für Python](https://docs.aws.amazon.com/goto/boto3/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/kinesis-video-data-2017-09-30/GetMedia) 

# PutMedia
<a name="API_dataplane_PutMedia"></a>

 Verwenden Sie diese API, um Mediendaten an einen Kinesis-Videostream zu senden. 

**Anmerkung**  
Sie müssen zuerst die `GetDataEndpoint` API aufrufen, um einen Endpunkt zu erhalten. Senden Sie dann die `PutMedia` Anfragen mit dem Parameter [--endpoint-url an diesen Endpunkt](https://docs.aws.amazon.com/cli/latest/reference/). 

In der Anfrage verwenden Sie die HTTP-Header, um Parameterinformationen bereitzustellen, z. B. Streamname, Zeitstempel und ob der Zeitstempelwert absolut oder relativ zu dem Zeitpunkt ist, zu dem der Producer mit der Aufnahme begonnen hat. Sie verwenden den Anfragetext, um die Mediendaten zu senden. Kinesis Video Streams unterstützt nur das Matroska-Containerformat (MKV) für das Senden von Mediendaten über diese API. 

Sie haben die folgenden Optionen für das Senden von Daten mit dieser API:
+ Mediendaten in Echtzeit senden: Eine Sicherheitskamera kann beispielsweise Bilder in Echtzeit senden, während sie sie generiert. Dieser Ansatz minimiert die Latenz zwischen der Videoaufnahme und den über das Kabel gesendeten Daten. Dies wird als kontinuierlicher Produzent bezeichnet. In diesem Fall kann eine Verbraucheranwendung den Stream in Echtzeit oder bei Bedarf lesen. 
+ Mediendaten offline (stapelweise) senden: Eine Körperkamera kann beispielsweise stundenlang Videos aufnehmen und auf dem Gerät speichern. Später, wenn Sie die Kamera an den Docking-Anschluss anschließen, kann die Kamera eine `PutMedia` Sitzung starten, um Daten an einen Kinesis-Videostream zu senden. In diesem Szenario ist Latenz kein Problem. 

Beachten Sie bei der Verwendung dieser API die folgenden Überlegungen:
+ Sie müssen entweder `streamName` oder `streamARN` angeben, aber nicht beides.
+ Um die Medien auf der Konsole oder über HLS abspielen zu können, sollte Track 1 jedes Fragments H.264-kodiertes Video enthalten, die CodeCid in den Fragment-Metadaten sollte „V\$1MPEG/ISO/AVC“ lauten und die Fragment-Metadaten sollten private H.264-Codec-Daten im AVCC-Format enthalten. Optional sollte Track 2 jedes Fragments AAC-codiertes Audio enthalten, die CodeCid in den Fragment-Metadaten sollte „A\$1AAC“ lauten und die Fragment-Metadaten sollten private AAC-Codec-Daten enthalten.
+ Die `PutMedia` API ist so konzipiert, dass sie als Streaming-API über eine lang andauernde Verbindung funktioniert. Sie ist nicht für die herkömmliche Verwendung vorgesehen, RESTful bei der für jedes Fragment eine neue HTTP-Verbindung hergestellt und geschlossen wird. Verwenden Sie bei Verwendung der `PutMedia` API die HTTP-Chunked-Transfercodierung, um Fragmente kontinuierlich über eine persistente Verbindung zu senden.
+ Für jedes in einer `PutMedia` Sitzung empfangene Fragment sendet Kinesis Video Streams eine oder mehrere Bestätigungen. Mögliche Überlegungen zum clientseitigen Netzwerk können dazu führen, dass Sie nicht alle diese Bestätigungen erhalten, sobald sie generiert werden.
**Anmerkung**  
Wird `PutMedia` als Streaming-Verbindung mit langer Laufzeit verwendet, um mehrere Fragmente in einer einzigen persistenten Verbindung zu senden. Wenn Sie versuchen, mehrere Verbindungen gleichzeitig `PutMedia` herzustellen, drosselt Kinesis Video Streams die letzten Verbindungen mit einem Fehler. `ConnectionLimitExceededException`

Bei der Verwendung der API gelten die folgenden Beschränkungen: `PutMedia`
+ Ein Client kann `PutMedia` bis zu fünf Mal pro Sekunde pro Stream aufrufen.
+ Ein Client kann bis zu fünf Fragmente pro Sekunde pro Stream senden.
+ Kinesis Video Streams liest Mediendaten mit einer Geschwindigkeit von bis zu 12,5 MB/Sekunde oder 100 Mbit/s während einer Sitzung. `PutMedia` 

Beachten Sie die folgenden Einschränkungen. In diesen Fällen sendet Kinesis Video Streams die Fehlerbestätigung in der Antwort. 
+ Fragmente mit Zeitcodes, die den maximal zulässigen Grenzwert überschreiten, und die mehr als 50 MB an Daten enthalten, sind nicht zulässig. 
+ Fragmente, die mehr als drei Spuren enthalten, sind nicht zulässig. Jeder Frame in jedem Fragment muss dieselbe Spurnummer haben wie eine der im Fragment-Header definierten Spuren. Darüber hinaus muss jedes Fragment mindestens einen Frame für jede im Fragment-Header definierte Spur enthalten.
+ Jedes Fragment muss mindestens einen Frame für jede in den Fragment-Metadaten definierte Spur enthalten.
+ Der früheste Frame-Zeitstempel in einem Fragment muss nach dem letzten Frame-Zeitstempel im vorherigen Fragment liegen.
+ Ein MKV-Stream, der mehr als ein MKV-Segment enthält oder unzulässige MKV-Elemente (wie`track*`) enthält, führt ebenfalls zur Fehlerbestätigung. 

Kinesis Video Streams speichert jedes eingehende Fragment und die zugehörigen Metadaten in einem sogenannten „Chunk“. Die Fragment-Metadaten umfassen Folgendes: 
+ Die MKV-Header, die zu Beginn der Anfrage bereitgestellt wurden `PutMedia`
+ Die folgenden Kinesis Video Streams-spezifischen Metadaten für das Fragment:
  +  `server_timestamp`- Zeitstempel, zu dem Kinesis Video Streams mit dem Empfang des Fragments begonnen hat. 
  +  `producer_timestamp`- Zeitstempel, wann der Produzent mit der Aufnahme des Fragments begonnen hat. Kinesis Video Streams verwendet drei in der Anfrage empfangene Informationen, um diesen Wert zu berechnen. 
    + Der Timecode-Wert des Fragments, der zusammen mit dem Fragment im Hauptteil der Anfrage empfangen wurde.
    + Zwei Anforderungsheader: `producerStartTimestamp` (als der Produzent mit der Aufnahme begonnen hat) und `fragmentTimeCodeType` (ob der Fragment-Timecode in der Payload absolut oder relativ ist).

    Kinesis Video Streams berechnet dann den `producer_timestamp` für das Fragment wie folgt:

     Wenn es relativ `fragmentTimeCodeType` ist, dann 

     `producer_timestamp`= `producerStartTimeStamp` \$1 Fragment-Timecode 

    Wenn `fragmentTimeCodeType` es absolut ist, dann 

     `producer_timestamp`= Fragment-Timecode (in Millisekunden umgewandelt)
  + Von Kinesis Video Streams zugewiesene eindeutige Fragmentnummer.

  

**Anmerkung**  
 Wenn Sie die `GetMedia` Anfrage stellen, gibt Kinesis Video Streams einen Stream dieser Chunks zurück. Der Client kann die Metadaten nach Bedarf verarbeiten. 

**Anmerkung**  
Dieser Vorgang ist nur für das AWS SDK for Java verfügbar. In AWS SDKs anderen Sprachen wird er nicht unterstützt.

**Anmerkung**  
Kinesis Video Streams analysiert und validiert die privaten Codec-Daten während der Aufnahme und Archivierung über die API nicht. PutMedia KVS extrahiert und validiert die erforderlichen Informationen aus den privaten Codec-Daten für MPEG-TS und Fragment-Paketierung, wenn der Stream über die HLS abgerufen wird. MP4 APIs

**Anmerkung**  
Wenn nach dem Aufrufen einer Kinesis Video Streams Streams-Medien-API ein Fehler ausgelöst wird, enthält dieser zusätzlich zum HTTP-Statuscode und dem Antworttext die folgenden Informationen:   
 `x-amz-ErrorType`HTTP-Header — enthält zusätzlich zu dem, was der HTTP-Statuscode bietet, einen spezifischeren Fehlertyp. 
 `x-amz-RequestId`HTTP-Header — Wenn Sie ein Problem melden möchten AWS, kann das Support-Team das Problem anhand der Anforderungs-ID besser diagnostizieren.
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 Informationen darüber bereitgestellt werden, welche Maßnahmen der Client-Programmierer möglicherweise ergreifen muss, um es erneut erfolgreich zu versuchen.  
[Weitere Informationen finden Sie im Abschnitt **Fehler** am Ende dieses Themas sowie unter Häufige Fehler.](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html) 

## Anforderungssyntax
<a name="API_dataplane_PutMedia_RequestSyntax"></a>

```
POST /putMedia HTTP/1.1
x-amzn-stream-name: StreamName
x-amzn-stream-arn: StreamARN
x-amzn-fragment-timecode-type: FragmentTimecodeType
x-amzn-producer-start-timestamp: ProducerStartTimestamp

Payload
```

## URI-Anfrageparameter
<a name="API_dataplane_PutMedia_RequestParameters"></a>

Die Anforderung verwendet die folgenden URI-Parameter.

 ** [FragmentTimecodeType](#API_dataplane_PutMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_PutMedia-request-FragmentTimecodeType"></a>
Sie übergeben diesen Wert als `x-amzn-fragment-timecode-type` HTTP-Header.  
Gibt an, ob die Timecodes in den Fragmenten (Payload, HTTP-Anforderungstext) absolut oder relativ zu sind. `producerStartTimestamp` Kinesis Video Streams verwendet diese Informationen, um die `producer_timestamp` für das in der Anfrage empfangene Fragment zu berechnen, wie in der API-Übersicht beschrieben.  
Zulässige Werte: `ABSOLUTE | RELATIVE`   
Erforderlich: Ja

 ** [ProducerStartTimestamp](#API_dataplane_PutMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_PutMedia-request-ProducerStartTimestamp"></a>
Sie übergeben diesen Wert als `x-amzn-producer-start-timestamp` HTTP-Header.  
Dies ist der Producer-Zeitstempel, zu dem der Producer mit der Aufnahme der Medien begonnen hat (nicht der Zeitstempel der spezifischen Fragmente in der Anfrage).

 ** [StreamARN](#API_dataplane_PutMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_PutMedia-request-StreamARN"></a>
Sie übergeben diesen Wert als `x-amzn-stream-arn` HTTP-Header.  
Amazon-Ressourcenname (ARN) des Kinesis-Videostreams, in den Sie den Medieninhalt schreiben möchten. Wenn Sie den nicht angeben`streamARN`, müssen Sie den `streamName` angeben.  
Längenbeschränkungen: Minimale Länge beträgt 1 Zeichen. 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]+` 

 ** [StreamName](#API_dataplane_PutMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_PutMedia-request-StreamName"></a>
Sie übergeben diesen Wert als `x-amzn-stream-name` HTTP-Header.  
Name des Kinesis-Videostreams, in den Sie den Medieninhalt schreiben möchten. Wenn Sie den nicht angeben`streamName`, müssen Sie den `streamARN` angeben.  
Längenbeschränkungen: Minimale Länge beträgt 1 Zeichen. Maximale Länge beträgt 256 Zeichen.  
Pattern: `[a-zA-Z0-9_.-]+` 

## Anforderungstext
<a name="API_dataplane_PutMedia_RequestBody"></a>

Die Anfrage akzeptiert die folgenden Binärdaten.

 ** [Payload](#API_dataplane_PutMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_PutMedia-request-Payload"></a>
 Der Medieninhalt, der in den Kinesis-Videostream geschrieben werden soll. In der aktuellen Implementierung unterstützt Kinesis Video Streams nur das Matroska (MKV) -Containerformat mit einem einzigen MKV-Segment. Ein Segment kann einen oder mehrere Cluster enthalten.   
Jeder MKV-Cluster ist einem Kinesis-Videostream-Fragment zugeordnet. Die von Ihnen gewählte Clusterdauer wird zur Fragmentdauer. 

## Antwortsyntax
<a name="API_dataplane_PutMedia_ResponseSyntax"></a>

```
HTTP/1.1 200

Payload
```

## Antwortelemente
<a name="API_dataplane_PutMedia_ResponseElements"></a>

Wenn die Aktion erfolgreich ist, sendet der Service eine HTTP 200-Antwort zurück.

Die Antwort gibt folgendes als HTTP-Hauptteil zurück.

 ** [Payload](#API_dataplane_PutMedia_ResponseSyntax) **   <a name="KinesisVideo-dataplane_PutMedia-response-Payload"></a>
 Nachdem Kinesis Video Streams erfolgreich eine `PutMedia` Anfrage empfangen hat, validiert der Dienst die Anforderungsheader. Der Dienst beginnt dann mit dem Lesen der Payload und sendet zunächst eine HTTP 200-Antwort.   
Der Dienst gibt dann einen Stream zurück, der eine Reihe von JSON-Objekten (`Acknowledgement`Objekten) enthält, die durch Zeilenumbrüche getrennt sind. Die Bestätigungen werden auf derselben Verbindung empfangen, über die die Mediendaten gesendet werden. Für eine Anfrage kann es viele Bestätigungen geben. `PutMedia` Jedes `Acknowledgement` besteht aus den folgenden Schlüssel-Wert-Paaren:  
+  `AckEventType`- Ereignistyp, für den die Bestätigung steht. 
  +  **Pufferung:** Kinesis Video Streams hat begonnen, das Fragment zu empfangen. Kinesis Video Streams sendet die erste Buffering-Bestätigung, wenn das erste Byte von Fragmentdaten empfangen wird. 
  +  **Empfangen:** Kinesis Video Streams hat das gesamte Fragment empfangen. Wenn Sie den Stream nicht so konfiguriert haben, dass die Daten dauerhaft gespeichert werden, kann der Producer die Pufferung des Fragments beenden, sobald er diese Bestätigung erhält.
  +  **Persistent:** Kinesis Video Streams hat das Fragment beibehalten (z. B. in Amazon S3). Sie erhalten diese Bestätigung, wenn Sie den Stream so konfiguriert haben, dass die Daten dauerhaft gespeichert werden. Nachdem Sie diese Bestätigung erhalten haben, kann der Producer die Pufferung des Fragments beenden.
  +  **Fehler: Bei** Kinesis Video Streams ist bei der Verarbeitung des Fragments ein Fehler aufgetreten. Sie können den Fehlercode überprüfen und die nächste Vorgehensweise festlegen. 
  +  **Inaktiv:** Die `PutMedia` Sitzung ist im Gange. Kinesis Video Streams empfängt derzeit jedoch keine Daten. Kinesis Video Streams sendet diese Bestätigung in regelmäßigen Abständen für bis zu 30 Sekunden nach den letzten empfangenen Daten. Wenn innerhalb der 30 Sekunden keine Daten empfangen werden, schließt Kinesis Video Streams die Anfrage. 
**Anmerkung**  
 Anhand dieser Bestätigung kann ein Produzent feststellen, ob die `PutMedia` Verbindung aktiv ist, auch wenn keine Daten gesendet werden. 
+  `FragmentTimecode`— Fragment-Timecode, für den die Bestätigung gesendet wird. 

  **Das Element kann fehlen, wenn es im Leerlauf ist`AckEventType`.** 
+  `FragmentNumber`- Von Kinesis Video Streams generierte Fragmentnummer, für die die Bestätigung gesendet wird.
+  `ErrorId`und `ErrorCode` — Falls ja`Error`, enthält dieses Feld den `AckEventType` entsprechenden Fehlercode. Im Folgenden finden Sie eine Liste der Fehler IDs und der entsprechenden Fehlercodes und Fehlermeldungen:
  + 4000 - STREAM\$1READ\$1ERROR - Fehler beim Lesen des Datenstroms.
  + 4001 - MAX\$1FRAGMENT\$1SIZE\$1REACHED — Die Fragmentgröße liegt über dem zulässigen Höchstwert von 50 MB.
  + 4002 - MAX\$1FRAGMENT\$1DURATION\$1REACHED — Die Fragmentdauer liegt über dem maximal zulässigen Grenzwert.
  + 4003 - MAX\$1CONNECTION\$1DURATION\$1REACHED — Die Verbindungsdauer ist größer als der maximal zulässige Schwellenwert.
  + 4004 - FRAGMENT\$1TIMECODE\$1LESSER\$1THAN\$1PREVIOUS — Der Fragment-Timecode ist kleiner als der Timecode des vorherigen Timecodes (innerhalb eines Anrufs können Sie Fragmente nicht in der falschen Reihenfolge senden). `PutMedia`
  + 4005 - MORE\$1THAN\$1ALLOWED\$1TRACKS\$1FOUND - In MKV wurde mehr als ein Titel gefunden. (veraltet)
  + 4006 - INVALID\$1MKV\$1DATA - Der Eingabestream konnte nicht als gültiges MKV-Format analysiert werden.
  + 4007 - INVALID\$1PRODUCER\$1TIMESTAMP — Ungültiger Producer-Zeitstempel.
  + 4008 - STREAM\$1NOT\$1ACTIVE - Stream existiert nicht mehr (gelöscht).
  + 4009 - FRAGMENT\$1METADATA\$1LIMIT\$1REACHED — Das Limit für Fragment-Metadaten wurde erreicht. [Weitere Informationen finden Sie im Abschnitt Grenzwerte im Entwicklerhandbuch.](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/limits.html)
  + 4010 - TRACK\$1NUMBER\$1MISMATCH - Die Titelnummer in einem MKV-Frame stimmte nicht mit den Titeln im MKV-Header überein.
  + 4011 - FRAMES\$1MISSING\$1FOR\$1TRACK - Das Fragment enthielt keine Frames für mindestens einen der Tracks im MKV-Header.
  + 4012 - INVALID\$1FRAGMENT\$1METADATA - Der Name der Fragment-Metadaten darf nicht mit der Zeichenfolge beginnen. ` AWS_`
  + 4500 - KMS\$1KEY\$1ACCESS\$1DENIED — Der Zugriff auf den angegebenen KMS-Schlüssel des Streams wurde verweigert.
  + 4501 - KMS\$1KEY\$1DISABLED — Der für den Stream angegebene KMS-Schlüssel ist deaktiviert.
  + 4502 - KMS\$1KEY\$1VALIDATION\$1ERROR — Der angegebene KMS-Schlüssel des Streams konnte nicht überprüft werden.
  + 4503 - KMS\$1KEY\$1UNAVAILABLE — Der angegebene KMS-Schlüssel des Streams ist nicht verfügbar.
  + 4504 - KMS\$1KEY\$1INVALID\$1USAGE — Ungültige Verwendung des angegebenen KMS-Schlüssels für den Stream.
  + 4505 - KMS\$1KEY\$1INVALID\$1STATE — Der angegebene KMS-Schlüssel des Streams befindet sich in einem ungültigen Zustand.
  + 4506 - KMS\$1KEY\$1NOT\$1FOUND — Der angegebene KMS-Schlüssel des Streams wurde nicht gefunden.
  + 5000 - INTERNAL\$1ERROR - Interner Dienstfehler.
  + 5001 - ARCHIVAL\$1ERROR - Kinesis Video Streams konnte keine Fragmente im Datenspeicher speichern.
Der Producer sollte beim Senden der Nutzdaten für eine lang andauernde `PutMedia` Anfrage die Antwort zur Bestätigung lesen. Ein Producer kann aufgrund der Pufferung auf einem zwischengeschalteten Proxyserver mehrere Bestätigungen gleichzeitig erhalten. Ein Produzent, der zeitnahe Bestätigungen erhalten möchte, kann in jeder Anfrage weniger Fragmente senden. `PutMedia` 

## Fehler
<a name="API_dataplane_PutMedia_Errors"></a>

Weitere Informationen zu den allgemeinen Fehlern, die bei allen Aktionen zurückgegeben werden, finden Sie unter [Häufige Fehlertypen](CommonErrors.md).

 ** ClientLimitExceededException **   
Kinesis Video Streams hat die Anfrage gedrosselt, weil Sie das Limit der erlaubten Client-Aufrufe überschritten haben. Versuchen Sie später, den Anruf zu tätigen.  
HTTP-Statuscode: 400

 ** ConnectionLimitExceededException **   
Kinesis Video Streams hat die Anfrage gedrosselt, weil Sie das Limit der zulässigen Client-Verbindungen überschritten haben.  
HTTP-Statuscode: 400

 ** InvalidArgumentException **   
Der Wert für diesen Eingabeparameter ist ungültig.  
HTTP-Statuscode: 400

 ** InvalidEndpointException **   
Der Aufrufer hat einen falschen Endpunkt verwendet, um Daten in einen Stream zu schreiben. Bei Empfang einer solchen Ausnahme muss der Benutzer `GetDataEndpoint` mit `APIName` set to aufrufen `PUT_MEDIA` und den Endpunkt aus der Antwort verwenden, um den nächsten `PutMedia` Aufruf aufzurufen.   
HTTP-Statuscode: 400

 ** NotAuthorizedException **   
Der Aufrufer ist nicht autorisiert, eine Operation mit dem angegebenen Stream auszuführen, oder das Token ist abgelaufen.  
HTTP-Statuscode: 401

 ** ResourceNotFoundException **   
Statuscode: 404, Der Stream mit dem angegebenen Namen existiert nicht.  
HTTP-Statuscode: 404

## Beispiele
<a name="API_dataplane_PutMedia_Examples"></a>

### Format der Bestätigung
<a name="API_dataplane_PutMedia_Example_1"></a>

Das Format der Bestätigung lautet wie folgt:

```
{
       Acknowledgement : {
          "EventType": enum
          "FragmentTimecode": Long,
          "FragmentNumber": Long,
          "ErrorId" : String       
      }
}
```

## Weitere Informationen finden Sie unter:
<a name="API_dataplane_PutMedia_SeeAlso"></a>

Weitere Informationen zur Verwendung dieser API in einer der sprachspezifischen Sprachen finden Sie im Folgenden AWS SDKs:
+  [AWS Befehlszeilenschnittstelle V2](https://docs.aws.amazon.com/goto/cli2/kinesis-video-data-2017-09-30/PutMedia) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/kinesis-video-data-2017-09-30/PutMedia) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/kinesis-video-data-2017-09-30/PutMedia) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/kinesis-video-data-2017-09-30/PutMedia) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/kinesis-video-data-2017-09-30/PutMedia) 
+  [AWS SDK für JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/kinesis-video-data-2017-09-30/PutMedia) 
+  [AWS SDK für Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/kinesis-video-data-2017-09-30/PutMedia) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/kinesis-video-data-2017-09-30/PutMedia) 
+  [AWS SDK für Python](https://docs.aws.amazon.com/goto/boto3/kinesis-video-data-2017-09-30/PutMedia) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/kinesis-video-data-2017-09-30/PutMedia) 