Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Modello di dati Kinesis Video Streams

Modalità Focus
Modello di dati Kinesis Video Streams - Amazon Kinesis Video Streams

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à.

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à.

Caricamento su Kinesis Video Streams e Guarda l'output delle telecamere utilizzando la libreria parser inviano e ricevono dati video in un formato che supporta l'incorporamento di informazioni insieme ai dati video. Questo formato si basa sulla specifica Matroska (MKV).

Il formato MKV è una specifica aperta per i dati multimediali. Tutte le librerie e gli esempi di codice contenuti nella Amazon Kinesis Video Streams Developer Guide inviano o ricevono dati in formato MKV.

Caricamento su Kinesis Video StreamsUtilizza i Frame tipi StreamDefinition e per produrre intestazioni di stream MKV, intestazioni di frame e dati di frame.

Per informazioni sulle specifiche complete di MKV, consulta l'articolo sulle specifiche Matroska.

Le seguenti sezioni descrivono i componenti di dati in formato MKV creati da C++.

Elementi di intestazione dello stream

I seguenti elementi di intestazione MKV vengono utilizzati da StreamDefinition (definiti in StreamDefinition.h).

Elemento Descrizione Valori tipici
stream_name Corrisponde al nome dello stream video Kinesis. my-stream
retention_period La durata, in ore, del flusso di dati viene mantenuta da Kinesis Video Streams. 0Specificalo per uno stream che non conserva dati. 24
tags Una raccolta chiave-valore di dati utente. Questi dati vengono visualizzati nella AWS Management Console e possono essere letti dalle applicazioni client per filtrare o ottenere informazioni su un flusso.
kms_key_id Se presente, la AWS KMS chiave definita dall'utente viene utilizzata per crittografare i dati sullo stream. Se assenti, i dati vengono crittografati dalla chiave fornita da Kinesis (). aws/kinesisvideo 01234567-89ab-cdef-0123-456789ab
streaming_type Attualmente, l'unico tipo di streaming valido è STREAMING_TYPE_REALTIME. STREAMING_TYPE_REALTIME
content_type Il tipo di contenuto definito dall'utente. Per lo streaming di dati video da riprodurre nella console, il tipo di contenuto deve essere video/h264. video/h264
max_latency Questo valore non è attualmente utilizzato e dovrebbe essere impostato su 0. 0
fragment_duration La stima della durata dei tuoi frammenti, utile per l'ottimizzazione. La durata effettiva è determinata dai dati di streaming. 2
timecode_scale

Indica la scala utilizzata dai timestamp dei frame. Il valore predefinito è 1 millisecondo. Se si specifica 0, si assegna anche il valore predefinito di 1 millisecondo. Questo valore può essere compreso tra 100 nanosecondi e 1 secondo.

Per ulteriori informazioni, consultate la documentazione TimecodeScaledi Matroska.

key_frame_fragmentation Se true, il flusso avvia un nuovo cluster quando riceve un keyframe. true
frame_timecodes Setrue, Kinesis Video Streams utilizza i valori del timestamp di presentazione (pts) e del timestamp di decodifica (dts) dei fotogrammi ricevuti. Sefalse, Kinesis Video Streams stampa i fotogrammi quando vengono ricevuti con valori temporali generati dal sistema. true
absolute_fragment_time Se true, i timecode del cluster vengono interpretati come se utilizzassero tempo assoluto (ad esempio, dall'orologio di sistema del producer). Se false, i timecode del cluster sono interpretati come relativi all'ora di inizio del flusso. true
fragment_acks Setrue, le conferme (ACKs) vengono inviate quando Kinesis Video Streams riceve i dati. ACKs Possono essere ricevuti utilizzando o i callback. KinesisVideoStreamFragmentAck KinesisVideoStreamParseFragmentAck true
restart_on_error Indica se il flusso deve riprendere la trasmissione dopo la segnalazione di un errore di flusso. true
nal_adaptation_flags Indica se i dati privati del codec o l'adattamento NAL (Network Abstraction Layer) sono presenti nel contenuto. I flag validi includono NAL_ADAPTATION_ANNEXB_NALS e NAL_ADAPTATION_ANNEXB_CPD_NALS. NAL_ADAPTATION_ANNEXB_NALS
frame_rate Una stima della frequenza di frame del contenuto. Tale valore viene utilizzato per l'ottimizzazione. La frequenza di frame effettiva è determinata dalla velocità dei dati in entrata. Se si specifica 0, si assegna il valore predefinito di 24. 24
avg_bandwidth_bps Una stima della larghezza di banda del contenuto, in Mbps. Tale valore viene utilizzato per l'ottimizzazione. La frequenza effettiva è determinata dalla larghezza di banda dei dati in entrata. Ad esempio, per un flusso video con risoluzione di 720 p in esecuzione a 25 FPS, puoi aspettarti una larghezza di banda media di 5 Mbps. 5
buffer_duration La durata del buffering del contenuto sul producer. Se la latenza di rete è bassa, questo valore può essere ridotto. Se la latenza di rete è elevata, aumentando questo valore si evita che i frame vengano eliminati prima che possano essere inviati, a causa dell'incapacità dell'allocazione di inserire i frame nel buffer più piccolo.
replay_duration La quantità di tempo in cui il flusso di dati video viene «riavvolto» in caso di interruzione della connessione. Questo valore può essere zero se la perdita di frame a causa della perdita di connessione non è un problema. Il valore può essere aumentato se l'applicazione che utilizza è in grado di rimuovere i frame ridondanti. Questo valore deve essere inferiore alla durata del buffer, altrimenti viene utilizzata la durata del buffer.
connection_staleness Il periodo durante il quale una connessione viene mantenuta quando non vengono ricevuti dati.
codec_id Il codec utilizzato per il contenuto. Per ulteriori informazioni, consulta CodecID nelle specifiche Matroska. V_ MPEG2
track_name Il nome definito dall'utente della traccia. my_track
codecPrivateData I dati forniti dall'encoder utilizzato per decodificare i dati dei frame, ad esempio la larghezza di banda e l'altezza in pixel degli stessi, un'informazione richiesta da numerosi consumer a valle. Nella libreria C++ Producer, l'gMkvTrackVideoBitsarray MkvStatics.cpp include la larghezza e l'altezza dei pixel per il frame.
codecPrivateDataDimensioni La dimensione dei dati nel parametro codecPrivateData.
track_type Il tipo di traccia per il flusso. MKV_TRACK_INFO_TYPE_AUDIO or MKV_TRACK_INFO_TYPE_VIDEO
segment_uuid uuid segmento definito dall'utente (16 byte).
default_track_id Numero univoco diverso da zero per la traccia. 1

Streaming dei dati delle tracce

I seguenti elementi della traccia MKV vengono utilizzati da StreamDefinition (definiti in StreamDefinition.h).

Elemento Descrizione Valori tipici
track_name Nome traccia definito dall'utente. Ad esempio, "audio" per la traccia audio. audio
codec_id Id codec della traccia. Ad esempio, "A_AAC" per la traccia audio. A_AAC
cpd I dati forniti dall'encoder utilizzato per decodificare i dati del frame. Queste informazioni possono includere larghezza e altezza del frame in pixel, necessarie per numerosi consumatori downstream. Nella libreria C++ Producer, l' gMkvTrackVideoBits array in MkvStatics .cpp include la larghezza e l'altezza dei pixel per il frame.
cpd_size La dimensione dei dati nel parametro. codecPrivateData
track_type Il tipo di traccia. Ad esempio, è possibile utilizzare il valore di enum MKV_TRACK_INFO_TYPE_AUDIO per l'audio. MKV_TRACK_INFO_TYPE_AUDIO

Elementi dell'intestazione del frame

I seguenti elementi di intestazione MKV vengono utilizzati da Frame (definiti nel pacchetto KinesisVideoPic, in mkvgen/Include.h):

  • Frame Index (Indice del frame): un valore a incremento monotono.

  • Flags (Flag): il tipo di frame. I valori validi includono i seguenti:

    • FRAME_FLAGS_NONE

    • FRAME_FLAG_KEY_FRAME: se key_frame_fragmentation è impostato su flusso, i key frame avviano un nuovo frammento.

    • FRAME_FLAG_DISCARDABLE_FRAME: indica al decoder che è possibile ignorare questo frame se la decodifica è lenta.

    • FRAME_FLAG_INVISIBLE_FRAME: la durata di questo blocco è 0.

  • Timestamp di decodifica: il timestamp di quando questo frame è stato decodificato. Se i frame precedenti dipendono da questo frame per la decodifica, questo timestamp potrebbe essere precedente a quello dei frame precedenti. Questo valore è relativo all'inizio del frammento.

  • Timestamp di presentazione: il timestamp di quando viene visualizzato questo fotogramma. Questo valore è relativo all'inizio del frammento.

  • Duration (Durata): la durata di riproduzione del frame.

  • Size (Dimensione): la dimensione dei dati del frame in byte

Dati del frame MKV

I dati in frame.frameData potrebbero contenere solo i dati multimediali per il frame o ulteriori informazioni di intestazione annidate, a seconda dello schema di codifica utilizzato. Per essere visualizzati in AWS Management Console, i dati devono essere codificati nel codec H.264, ma Kinesis Video Streams può ricevere flussi di dati con serializzazione temporale in qualsiasi formato.

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.