

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

Le seguenti azioni sono supportate da Amazon Kinesis Video Streams Media:
+  [GetMedia](API_dataplane_GetMedia.md) 
+  [PutMedia](API_dataplane_PutMedia.md) 

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

 Usa questa API per recuperare contenuti multimediali da un flusso video Kinesis. Nella richiesta, identifichi il nome dello stream o Amazon Resource Name (ARN) dello stream e il blocco iniziale. Kinesis Video Streams restituisce quindi un flusso di blocchi ordinati per numero di frammento.

**Nota**  
Devi prima chiamare l'`GetDataEndpoint`API per ottenere un endpoint. Quindi invia le `GetMedia` richieste a questo endpoint utilizzando il parametro [--endpoint-url](https://docs.aws.amazon.com/cli/latest/reference/). 

Quando si inseriscono dati multimediali (frammenti) in uno stream, Kinesis Video Streams archivia ogni frammento in entrata e i relativi metadati in quello che viene chiamato «blocco». Per ulteriori informazioni, consulta [PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html). L'`GetMedia`API restituisce un flusso di questi blocchi a partire dal blocco specificato nella richiesta. 

L'`GetMedia`API è progettata per funzionare come API di streaming su una connessione di lunga durata. Non è destinata all'uso in RESTful modo tradizionale, in cui viene stabilita e chiusa una nuova connessione HTTP per ogni frammento. Quando richiami l'`GetMedia`API, Kinesis Video Streams fornisce frammenti in modo continuo attraverso una connessione persistente a lunga durata che utilizza la codifica di trasferimento in blocchi HTTP.

I seguenti limiti si applicano all'utilizzo dell'API: `GetMedia`
+ Un client può effettuare chiamate `GetMedia` fino a cinque volte al secondo per stream. 
+ Kinesis Video Streams invia dati multimediali a una velocità massima di 25 megabyte al secondo (o 200 megabit al secondo) durante una sessione. `GetMedia` 
**Nota**  
Utilizzala `GetMedia` come connessione di streaming a lunga durata per recuperare più frammenti in un'unica connessione persistente. Non utilizzate l'`GetMedia`API in RESTful modo tradizionale in cui stabilite e chiudete una nuova connessione HTTP per ogni frammento. Se si tentano più di tre `GetMedia` connessioni simultanee, Kinesis Video Streams limita le connessioni più recenti con un errore. `ConnectionLimitExceededException`

**Nota**  
Il codice di stato della risposta `GetMedia` HTTP verrà restituito immediatamente, ma la lettura del payload della risposta HTTP scadrà dopo 3 secondi se non ci sono frammenti ingeriti disponibili per la riproduzione.

**Nota**  
Se viene generato un errore dopo aver richiamato un'API multimediale Kinesis Video Streams, oltre al codice di stato HTTP e al corpo della risposta, include le seguenti informazioni:   
 `x-amz-ErrorType`Intestazione HTTP: contiene un tipo di errore più specifico oltre a quello fornito dal codice di stato HTTP. 
 `x-amz-RequestId`Intestazione HTTP: se desideri segnalare un problema AWS, il team di supporto può diagnosticare meglio il problema se gli viene fornito il Request Id.
Sia il codice di stato HTTP che l' ErrorType intestazione possono essere utilizzati per prendere decisioni programmatiche sulla possibilità di correggere gli errori e in quali condizioni, oltre a fornire informazioni sulle azioni che il programmatore client potrebbe dover intraprendere per riprovare con successo.  
[Per ulteriori informazioni, consulta la sezione **Errori** nella parte inferiore di questo argomento, nonché Errori comuni.](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html) 

## Sintassi della richiesta
<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"
}
```

## Parametri della richiesta URI:
<a name="API_dataplane_GetMedia_RequestParameters"></a>

La richiesta non utilizza parametri URI.

## Corpo della richiesta
<a name="API_dataplane_GetMedia_RequestBody"></a>

La richiesta accetta i seguenti dati in formato JSON.

 ** [StartSelector](#API_dataplane_GetMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-request-StartSelector"></a>
Identifica il blocco iniziale da ottenere dallo stream specificato.   
Tipo: oggetto [StartSelector](API_dataplane_StartSelector.md)  
Obbligatorio: sì

 ** [StreamARN](#API_dataplane_GetMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-request-StreamARN"></a>
L'ARN dello stream da cui desideri ricevere i contenuti multimediali. Se non si specifica il`streamARN`, è necessario specificare il`streamName`.  
Tipo: String  
Limitazioni di lunghezza: lunghezza minima pari a 1. La lunghezza massima è 1024 caratteri.  
Modello: `arn:[a-z\d-]+:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+`   
Obbligatorio: no

 ** [StreamName](#API_dataplane_GetMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-request-StreamName"></a>
Il nome dello stream video Kinesis da cui desideri ottenere i contenuti multimediali. Se non si specifica il`streamName`, è necessario specificare il`streamARN`.  
Tipo: String  
Limitazioni di lunghezza: lunghezza minima pari a 1. La lunghezza massima è 256 caratteri.  
Modello: `[a-zA-Z0-9_.-]+`   
Obbligatorio: no

## Sintassi della risposta
<a name="API_dataplane_GetMedia_ResponseSyntax"></a>

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

Payload
```

## Elementi di risposta
<a name="API_dataplane_GetMedia_ResponseElements"></a>

Se l'operazione riesce, il servizio restituisce una risposta HTTP 200.

La risposta restituisce le seguenti intestazioni HTTP.

 ** [ContentType](#API_dataplane_GetMedia_ResponseSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-response-ContentType"></a>
Il tipo di contenuto del supporto richiesto.  
Limitazioni di lunghezza: lunghezza minima pari a 1. La lunghezza massima è 128 caratteri.  
Modello: `^[a-zA-Z0-9_\.\-]+$` 

La risposta restituisce quanto segue come corpo HTTP.

 ** [Payload](#API_dataplane_GetMedia_ResponseSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-response-Payload"></a>
 Il payload restituito da Kinesis Video Streams è una sequenza di blocchi del flusso specificato. Per ulteriori informazioni sui blocchi, consulta. [PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html) I blocchi che Kinesis Video Streams restituisce nella chiamata includono anche i seguenti tag `GetMedia` Matroska (MKV) aggiuntivi:   
+ AWS\$1KINESISVIDEO\$1CONTINUATION\$1TOKEN (stringa UTF-8) - Nel caso in cui la `GetMedia` chiamata termini, puoi utilizzare questo token di continuazione nella tua richiesta successiva per ottenere il blocco successivo in cui è terminata l'ultima richiesta.
+ AWS\$1KINESISVIDEO\$1MILLIS\$1BEHIND\$1NOW (stringa UTF-8) - Le applicazioni client possono utilizzare questo valore di tag per determinare lo scarto tra il blocco restituito nella risposta e l'ultimo blocco dello stream. 
+ AWS\$1KINESISVIDEO\$1FRAGMENT\$1NUMBER - Numero di frammento restituito nel blocco.
+ AWS\$1KINESISVIDEO\$1SERVER\$1TIMESTAMP - Timestamp del frammento sul server.
+ AWS\$1KINESISVIDEO\$1PRODUCER\$1TIMESTAMP - Timestamp del produttore del frammento.
Se si verifica un errore, saranno presenti i seguenti tag:  
+ AWS\$1KINESISVIDEO\$1ERROR\$1CODE - Descrizione in formato stringa di un errore che ha causato GetMedia l'interruzione.
+ AWS\$1KINESISVIDEO\$1ERROR\$1ID: codice intero dell'errore.
I codici di errore sono i seguenti:  
+ 3002 - Errore durante la scrittura sullo stream
+ 4000 - Il frammento richiesto non è stato trovato
+ 4500 - Accesso negato per la chiave KMS dello stream
+ 4501 - La chiave KMS di Stream è disabilitata
+ 4502 - Errore di convalida sulla chiave KMS dello stream
+ 4503 - La chiave KMS specificata nello stream non è disponibile
+ 4504 - Utilizzo non valido della chiave KMS specificata nello stream
+ 4505 - Stato non valido della chiave KMS specificata nello stream
+ 4506 - Impossibile trovare la chiave KMS specificata nello stream
+ 5000 - Errore interno

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

Per informazioni sugli errori comuni a tutte le operazioni, consultare [Tipi di errore comuni](CommonErrors.md).

 ** ClientLimitExceededException **   
Kinesis Video Streams ha limitato la richiesta perché è stato superato il limite di chiamate client consentite. Prova a effettuare la chiamata più tardi.  
Codice di stato HTTP: 400

 ** ConnectionLimitExceededException **   
Kinesis Video Streams ha limitato la richiesta perché è stato superato il limite di connessioni client consentite.  
Codice di stato HTTP: 400

 ** InvalidArgumentException **   
Il valore di questo parametro di input non è valido.  
Codice di stato HTTP: 400

 ** InvalidEndpointException **   
Il chiamante ha utilizzato un endpoint errato per scrivere dati in uno stream. Quando riceve tale eccezione, l'utente deve chiamare `GetDataEndpoint` con `APIName` set to `PUT_MEDIA` e utilizzare l'endpoint from response per richiamare la chiamata successiva. `PutMedia`   
Codice di stato HTTP: 400

 ** NotAuthorizedException **   
Il chiamante non è autorizzato a eseguire un'operazione sullo stream specificato o il token è scaduto.  
Codice di stato HTTP: 401

 ** ResourceNotFoundException **   
Codice di stato: 404, Lo stream con il nome specificato non esiste.  
Codice di stato HTTP: 404

## Vedi anche
<a name="API_dataplane_GetMedia_SeeAlso"></a>

Per ulteriori informazioni sull'utilizzo di questa API in una delle lingue specifiche AWS SDKs, consulta quanto segue:
+  [AWS Interfaccia a riga di comando V2](https://docs.aws.amazon.com/goto/cli2/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK per.NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK per C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK per Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK per Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK per V3 JavaScript ](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK per Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK per PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK per Python](https://docs.aws.amazon.com/goto/boto3/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK per Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/kinesis-video-data-2017-09-30/GetMedia) 

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

 Usa questa API per inviare dati multimediali a un flusso video Kinesis. 

**Nota**  
Devi prima chiamare l'`GetDataEndpoint`API per ottenere un endpoint. Quindi invia le `PutMedia` richieste a questo endpoint utilizzando il parametro [--endpoint-url](https://docs.aws.amazon.com/cli/latest/reference/). 

Nella richiesta, si utilizzano le intestazioni HTTP per fornire informazioni sui parametri, ad esempio il nome dello stream, il timestamp e se il valore del timestamp è assoluto o relativo a quando il produttore ha iniziato la registrazione. Utilizzate il corpo della richiesta per inviare i dati multimediali. Kinesis Video Streams supporta solo il formato contenitore Matroska (MKV) per l'invio di dati multimediali utilizzando questa API. 

Sono disponibili le seguenti opzioni per inviare dati utilizzando questa API:
+ Invia dati multimediali in tempo reale: ad esempio, una telecamera di sicurezza può inviare fotogrammi in tempo reale mentre li genera. Questo approccio riduce al minimo la latenza tra la registrazione video e i dati inviati via cavo. Questo viene definito produttore continuo. In questo caso, un'applicazione consumer può leggere lo stream in tempo reale o quando necessario. 
+ Invia dati multimediali offline (in batch): ad esempio, una body camera potrebbe registrare video per ore e archiviarli sul dispositivo. Successivamente, quando colleghi la videocamera alla porta docking, la videocamera può avviare una `PutMedia` sessione per inviare dati a un flusso video Kinesis. In questo scenario, la latenza non è un problema. 

Quando utilizzi questa API, tieni presente le seguenti considerazioni:
+ È necessario specificare `streamName` o `streamARN`, ma non entrambi.
+ Per poter riprodurre i file multimediali sulla console o tramite HLS, la traccia 1 di ogni frammento deve contenere video con codifica h.264, il CodeCid nei metadati del frammento deve essere «V\$1MPEG/ISO/AVC» e i metadati del frammento devono includere dati privati del codec h.264 in formato AVCC. Facoltativamente, la traccia 2 di ogni frammento deve contenere audio codificato AAC, il CodeCid nei metadati del frammento deve essere «A\$1AAC» e i metadati del frammento devono includere dati privati del codec AAC.
+ L'`PutMedia`API è progettata per funzionare come API di streaming su una connessione di lunga durata. Non è destinata all'uso in RESTful modo tradizionale, in cui viene stabilita e chiusa una nuova connessione HTTP per ogni frammento. Quando utilizzi l'`PutMedia`API, utilizza la codifica di trasferimento in blocchi HTTP per inviare frammenti in modo continuo tramite una connessione persistente.
+ Per ogni frammento ricevuto in una `PutMedia` sessione, Kinesis Video Streams invia uno o più riconoscimenti. Potenziali considerazioni sulla rete lato client potrebbero impedirti di ricevere tutti questi riconoscimenti man mano che vengono generati.
**Nota**  
Utilizzala `PutMedia` come connessione di streaming a lunga durata per inviare più frammenti in un'unica connessione persistente. Se tenti più di una `PutMedia` connessione simultanea, Kinesis Video Streams limita le connessioni più recenti con un errore. `ConnectionLimitExceededException`

Quando si utilizza l'API, si applicano i seguenti limiti: `PutMedia`
+ Un client può effettuare chiamate `PutMedia` fino a cinque volte al secondo per stream.
+ Un client può inviare fino a cinque frammenti al secondo per stream.
+ Kinesis Video Streams legge i dati multimediali a una velocità massima di 12,5 MB/secondo o 100 Mbps durante una sessione. `PutMedia` 

Nota i seguenti vincoli. In questi casi, Kinesis Video Streams invia la conferma dell'errore nella risposta. 
+ I frammenti con codici temporali superiori al limite massimo consentito e che contengono più di 50 MB di dati non sono consentiti. 
+ I frammenti contenenti più di tre tracce non sono consentiti. Ogni fotogramma di ogni frammento deve avere lo stesso numero di traccia di una delle tracce definite nell'intestazione del frammento. Inoltre, ogni frammento deve contenere almeno un fotogramma per ogni traccia definita nell'intestazione del frammento.
+ Ogni frammento deve contenere almeno un fotogramma per ogni traccia definita nei metadati del frammento.
+ Il timestamp del primo fotogramma in un frammento deve essere successivo all'ultimo timestamp del frammento precedente.
+ Anche uno stream MKV contenente più di un segmento MKV o contenente elementi MKV non consentiti (come) genera la conferma dell'errore. `track*` 

Kinesis Video Streams archivia ogni frammento in entrata e i relativi metadati in un cosiddetto «blocco». I metadati del frammento includono quanto segue: 
+ Le intestazioni MKV fornite all'inizio della richiesta `PutMedia`
+ I seguenti metadati specifici di Kinesis Video Streams per il frammento:
  +  `server_timestamp`- Data e ora in cui Kinesis Video Streams ha iniziato a ricevere il frammento. 
  +  `producer_timestamp`- Timestamp, quando il produttore ha iniziato a registrare il frammento. Kinesis Video Streams utilizza tre informazioni ricevute nella richiesta per calcolare questo valore. 
    + Il valore del codice di tempo del frammento ricevuto nel corpo della richiesta insieme al frammento.
    + Due intestazioni di richiesta: `producerStartTimestamp` (quando il produttore ha iniziato la registrazione) e `fragmentTimeCodeType` (se il codice di tempo del frammento nel payload è assoluto o relativo).

    Kinesis Video Streams `producer_timestamp` calcola quindi il frammento nel modo seguente:

     Se è relativo`fragmentTimeCodeType`, allora 

     `producer_timestamp`= `producerStartTimeStamp` \$1 codice temporale del frammento 

    Se `fragmentTimeCodeType` è assoluto, allora 

     `producer_timestamp`= codice di tempo del frammento (convertito in millisecondi)
  + Numero di frammento univoco assegnato da Kinesis Video Streams.

  

**Nota**  
 Quando effettui la `GetMedia` richiesta, Kinesis Video Streams restituisce un flusso di questi blocchi. Il client può elaborare i metadati secondo necessità. 

**Nota**  
Questa operazione è disponibile solo per l' AWS SDK for Java. Non è supportata in AWS SDKs altre lingue.

**Nota**  
Kinesis Video Streams non analizza e convalida i dati privati del codec durante l'ingestione e l'archiviazione tramite l'API. PutMedia KVS estrae e convalida le informazioni necessarie dai dati privati del codec per MPEG-TS e dal packaging dei frammenti quando utilizza lo streaming tramite HLS. MP4 APIs

**Nota**  
Se viene generato un errore dopo aver richiamato un'API multimediale Kinesis Video Streams, oltre al codice di stato HTTP e al corpo della risposta, include le seguenti informazioni:   
 `x-amz-ErrorType`Intestazione HTTP: contiene un tipo di errore più specifico oltre a quello fornito dal codice di stato HTTP. 
 `x-amz-RequestId`Intestazione HTTP: se desideri segnalare un problema AWS, il team di supporto può diagnosticare meglio il problema se gli viene fornito il Request Id.
Sia il codice di stato HTTP che l' ErrorType intestazione possono essere utilizzati per prendere decisioni programmatiche sulla possibilità di correggere gli errori e in quali condizioni, oltre a fornire informazioni sulle azioni che il programmatore client potrebbe dover intraprendere per riprovare con successo.  
[Per ulteriori informazioni, consulta la sezione **Errori** nella parte inferiore di questo argomento, oltre a Errori comuni.](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html) 

## Sintassi della richiesta
<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
```

## Parametri della richiesta URI
<a name="API_dataplane_PutMedia_RequestParameters"></a>

La richiesta utilizza i seguenti parametri URI.

 ** [FragmentTimecodeType](#API_dataplane_PutMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_PutMedia-request-FragmentTimecodeType"></a>
Questo valore viene passato come intestazione `x-amzn-fragment-timecode-type` HTTP.  
Indica se i codici temporali nei frammenti (payload, corpo della richiesta HTTP) sono assoluti o relativi a. `producerStartTimestamp` Kinesis Video Streams utilizza queste informazioni per `producer_timestamp` calcolare il frammento ricevuto nella richiesta, come descritto nella panoramica dell'API.  
Valori validi: `ABSOLUTE | RELATIVE`   
Obbligatorio: sì

 ** [ProducerStartTimestamp](#API_dataplane_PutMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_PutMedia-request-ProducerStartTimestamp"></a>
Si passa questo valore come intestazione HTTP. `x-amzn-producer-start-timestamp`  
Questo è il timestamp del produttore in cui il produttore ha iniziato a registrare il file multimediale (non il timestamp dei frammenti specifici nella richiesta).

 ** [StreamARN](#API_dataplane_PutMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_PutMedia-request-StreamARN"></a>
Si passa questo valore come intestazione HTTP. `x-amzn-stream-arn`  
Amazon Resource Name (ARN) dello stream video Kinesis in cui desideri scrivere i contenuti multimediali. Se non specifichi il`streamARN`, devi specificare il. `streamName`  
Limitazioni di lunghezza: lunghezza minima pari a 1. La lunghezza massima è 1024 caratteri.  
Modello: `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>
Questo valore viene passato come intestazione `x-amzn-stream-name` HTTP.  
Nome dello stream video Kinesis in cui desideri scrivere i contenuti multimediali. Se non si specifica il`streamName`, è necessario specificare il`streamARN`.  
Limitazioni di lunghezza: lunghezza minima pari a 1. La lunghezza massima è 256 caratteri.  
Modello: `[a-zA-Z0-9_.-]+` 

## Corpo della richiesta
<a name="API_dataplane_PutMedia_RequestBody"></a>

La richiesta accetta i seguenti dati binari.

 ** [Payload](#API_dataplane_PutMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_PutMedia-request-Payload"></a>
 I contenuti multimediali da scrivere nello stream video di Kinesis. Nell'implementazione attuale, Kinesis Video Streams supporta solo il formato contenitore Matroska (MKV) con un singolo segmento MKV. Un segmento può contenere uno o più cluster.   
Ogni cluster MKV viene mappato su un frammento di flusso video Kinesis. Qualunque sia la durata del cluster scelta, diventa la durata del frammento. 

## Sintassi della risposta
<a name="API_dataplane_PutMedia_ResponseSyntax"></a>

```
HTTP/1.1 200

Payload
```

## Elementi di risposta
<a name="API_dataplane_PutMedia_ResponseElements"></a>

Se l'operazione riesce, il servizio restituisce una risposta HTTP 200.

La risposta restituisce quanto segue come corpo HTTP.

 ** [Payload](#API_dataplane_PutMedia_ResponseSyntax) **   <a name="KinesisVideo-dataplane_PutMedia-response-Payload"></a>
 Dopo che Kinesis Video Streams `PutMedia` riceve correttamente una richiesta, il servizio convalida le intestazioni della richiesta. Il servizio inizia quindi a leggere il payload e invia prima una risposta HTTP 200.   
Il servizio restituisce quindi uno stream contenente una serie di oggetti (`Acknowledgement`oggetti) JSON separati da nuove righe. I riconoscimenti vengono ricevuti sulla stessa connessione su cui vengono inviati i dati multimediali. Possono esserci molti riconoscimenti per una richiesta. `PutMedia` Ciascuno `Acknowledgement` è composto dalle seguenti coppie chiave-valore:  
+  `AckEventType`- Tipo di evento rappresentato dal riconoscimento. 
  +  **Buffering:** Kinesis Video Streams ha iniziato a ricevere il frammento. Kinesis Video Streams invia la prima conferma di buffering quando viene ricevuto il primo byte di dati frammentari. 
  +  **Ricevuto:** Kinesis Video Streams ha ricevuto l'intero frammento. Se non hai configurato lo stream per rendere persistenti i dati, il produttore può interrompere il buffering del frammento dopo aver ricevuto questa conferma.
  +  **Persistente:** Kinesis Video Streams ha reso persistente il frammento (ad esempio, su Amazon S3). Ottieni questo riconoscimento se hai configurato lo stream per rendere persistenti i dati. Dopo aver ricevuto questo riconoscimento, il produttore può interrompere il buffering del frammento.
  +  **Errore:** Kinesis Video Streams ha riscontrato un errore durante l'elaborazione del frammento. Puoi rivedere il codice di errore e determinare la prossima linea d'azione. 
  +  **Inattiva:** la `PutMedia` sessione è in corso. Tuttavia, Kinesis Video Streams al momento non riceve dati. Kinesis Video Streams invia questa conferma periodicamente per un massimo di 30 secondi dopo l'ultima ricezione dei dati. Se non viene ricevuto alcun dato entro 30 secondi, Kinesis Video Streams chiude la richiesta. 
**Nota**  
 Questo riconoscimento può aiutare un produttore a determinare se la `PutMedia` connessione è attiva, anche se non invia alcun dato. 
+  `FragmentTimecode`- Codice temporale del frammento per il quale viene inviata la conferma. 

  **L'elemento può mancare se è inattivo. `AckEventType`** 
+  `FragmentNumber`- Numero del frammento generato da Kinesis Video Streams per il quale viene inviata la conferma.
+  `ErrorId`e `ErrorCode` - Se `AckEventType` è`Error`, questo campo fornisce il codice di errore corrispondente. Di seguito è riportato l'elenco degli errori IDs con i codici di errore e i messaggi di errore corrispondenti:
  + 4000 - STREAM\$1READ\$1ERROR - Errore durante la lettura del flusso di dati.
  + 4001 - MAX\$1FRAGMENT\$1SIZE\$1REACHED - La dimensione del frammento è superiore al limite massimo consentito, 50 MB.
  + 4002 - MAX\$1FRAGMENT\$1DURATION\$1REACHED - La durata del frammento è superiore al limite massimo consentito.
  + 4003 - MAX\$1CONNECTION\$1DURATION\$1REACHED - La durata della connessione è superiore alla soglia massima consentita.
  + 4004 - FRAGMENT\$1TIMECODE\$1LESSER\$1THAN\$1PREVIOUS - Il codice di tempo del frammento è inferiore al codice temporale precedente (all'interno di una chiamata, non è possibile inviare frammenti fuori ordine). `PutMedia`
  + 4005 - MORE\$1THAN\$1ALLOWED\$1TRACKS\$1FOUND - In MKV è stata trovata più di una traccia. (deprecato)
  + 4006 - INVALID\$1MKV\$1DATA - Impossibile analizzare il flusso di input come formato MKV valido.
  + 4007 - INVALID\$1PRODUCER\$1TIMESTAMP - Timestamp del produttore non valido.
  + 4008 - STREAM\$1NOT\$1ACTIVE - Lo stream non esiste più (eliminato).
  + 4009 - FRAGMENT\$1METADATA\$1LIMIT\$1REACHED - Limite di metadati del frammento raggiunto. [Consulta la sezione Limiti della](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/limits.html) guida per sviluppatori.
  + 4010 - TRACK\$1NUMBER\$1MISMATCH - Il numero della traccia in un frame MKV non corrisponde alle tracce nell'intestazione MKV.
  + 4011 - FRAMES\$1MISSING\$1FOR\$1TRACK - Il frammento non conteneva alcun frame per almeno una delle tracce nell'intestazione MKV.
  + 4012 - INVALID\$1FRAGMENT\$1METADATA - Il nome dei metadati del frammento non può iniziare con la stringa. ` AWS_`
  + 4500 - KMS\$1KEY\$1ACCESS\$1DENIED - L'accesso alla chiave KMS specificata dallo stream è negato.
  + 4501 - KMS\$1KEY\$1DISABLED - La chiave KMS specificata dallo stream è disabilitata.
  + 4502 - KMS\$1KEY\$1VALIDATION\$1ERROR - La chiave KMS specificata nello stream non è riuscita.
  + 4503 - KMS\$1KEY\$1UNAVAILABLE - La chiave KMS specificata dallo stream non è disponibile.
  + 4504 - KMS\$1KEY\$1INVALID\$1USAGE - Utilizzo non valido della chiave KMS specificata dallo stream.
  + 4505 - KMS\$1KEY\$1INVALID\$1STATE - La chiave KMS specificata dallo stream è in uno stato non valido.
  + 4506 - KMS\$1KEY\$1NOT\$1FOUND - La chiave KMS specificata dallo stream non è stata trovata.
  + 5000 - INTERNAL\$1ERROR - Errore interno del servizio.
  + 5001 - ARCHIVAL\$1ERROR - Kinesis Video Streams non è riuscito a rendere persistenti i frammenti nell'archivio dati.
Il produttore, mentre invia il payload per una richiesta di lunga `PutMedia` durata, dovrebbe leggere la risposta per i riconoscimenti. Un produttore potrebbe ricevere blocchi di riconoscimenti contemporaneamente, a causa del buffering su un server proxy intermedio. Un produttore che desidera ricevere riconoscimenti tempestivi può inviare meno frammenti per ogni richiesta. `PutMedia` 

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

Per informazioni sugli errori comuni a tutte le operazioni, consultare [Tipi di errore comuni](CommonErrors.md).

 ** ClientLimitExceededException **   
Kinesis Video Streams ha limitato la richiesta perché è stato superato il limite di chiamate client consentite. Prova a effettuare la chiamata più tardi.  
Codice di stato HTTP: 400

 ** ConnectionLimitExceededException **   
Kinesis Video Streams ha limitato la richiesta perché è stato superato il limite di connessioni client consentite.  
Codice di stato HTTP: 400

 ** InvalidArgumentException **   
Il valore di questo parametro di input non è valido.  
Codice di stato HTTP: 400

 ** InvalidEndpointException **   
Il chiamante ha utilizzato un endpoint errato per scrivere dati in uno stream. Quando riceve tale eccezione, l'utente deve chiamare `GetDataEndpoint` con `APIName` set to `PUT_MEDIA` e utilizzare l'endpoint from response per richiamare la chiamata successiva. `PutMedia`   
Codice di stato HTTP: 400

 ** NotAuthorizedException **   
Il chiamante non è autorizzato a eseguire un'operazione sullo stream specificato o il token è scaduto.  
Codice di stato HTTP: 401

 ** ResourceNotFoundException **   
Codice di stato: 404, Lo stream con il nome specificato non esiste.  
Codice di stato HTTP: 404

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

### Formato di riconoscimento
<a name="API_dataplane_PutMedia_Example_1"></a>

Il formato del riconoscimento è il seguente:

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

## Vedi anche
<a name="API_dataplane_PutMedia_SeeAlso"></a>

Per ulteriori informazioni sull'utilizzo di questa API in una delle lingue specifiche, consulta quanto segue AWS SDKs:
+  [AWS Interfaccia a riga di comando V2](https://docs.aws.amazon.com/goto/cli2/kinesis-video-data-2017-09-30/PutMedia) 
+  [AWS SDK per.NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/kinesis-video-data-2017-09-30/PutMedia) 
+  [AWS SDK per C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/kinesis-video-data-2017-09-30/PutMedia) 
+  [AWS SDK per Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/kinesis-video-data-2017-09-30/PutMedia) 
+  [AWS SDK per Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/kinesis-video-data-2017-09-30/PutMedia) 
+  [AWS SDK per V3 JavaScript ](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/kinesis-video-data-2017-09-30/PutMedia) 
+  [AWS SDK per Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/kinesis-video-data-2017-09-30/PutMedia) 
+  [AWS SDK per PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/kinesis-video-data-2017-09-30/PutMedia) 
+  [AWS SDK per Python](https://docs.aws.amazon.com/goto/boto3/kinesis-video-data-2017-09-30/PutMedia) 
+  [AWS SDK per Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/kinesis-video-data-2017-09-30/PutMedia) 