FAQ su Amazon Kinesis Video Streams

Domande generali

Amazon Kinesis Video Streams semplifica lo streaming in sicurezza di contenuti multimediali da dispositivi connessi ad AWS per lo storage, l'analisi, l'apprendimento automatico (ML, machine learning), la riproduzione e altre attività di elaborazione. Effettua automaticamente il provisioning e ricalibra in modo elastico tutta l'infrastruttura necessaria per acquisire contenuti multimediali in streaming da milioni di dispositivi. Inoltre, permette di memorizzare, crittografare e indicizzare in modo duraturo i contenuti multimediali nei flussi, consentendone l'accesso tramite API intuitive. Kinesis Video Streams ti consente di sviluppare rapidamente applicazioni ML e di visione computerizzata attraverso l'integrazione con Amazon Rekognition Video, Amazon SageMaker e le librerie per framework ML quali Apache MxNet, TensorFlow e OpenCV. Per la riproduzione in diretta e on demand, Kinesis Video Streams offre funzionalità completamente gestite per HTTP Live Streaming (HLS) e Dynamic Adaptive Streaming su HTTP (DASH). Kinesis Video Streams supporta inoltre lo streaming bidirezionale a latenza ultra bassa con WebRTC, come funzionalità completamente gestita.

I dati con codifica temporale sono dati registrati in ordine cronologico: ogni dato è collegato al precedente e al successivo. I video sono un esempio di dati con codifica temporale: ogni frame è legato al precedente e al successivo attraverso trasformazioni spaziali. Altri esempi di dati con codifica temporale includono i segnali audio, RADAR e LIDAR. Amazon Kinesis Video Streams è specificatamente concepito per assimilare e archiviare in modo efficiente e a costi contenuti dati con codifica temporale di tutti i tipi, per usarli a scopo di analisi e ML.

Kinesis Video Streams è ideale per realizzare applicazioni streaming multimediale per dispositivi IoT con videocamera e creare applicazioni ML abilitate alla visione computerizzata in tempo reale, che sono sempre più diffuse in casi come:

Casa intelligente

Con Kinesis Video Streams, è possibile trasmettere facilmente ad AWS video e audio da dispositivi domestici dotati di videocamera come monitor per bambini, webcam e sistemi di sorveglianza domestica. È inoltre possibile utilizzare i flussi per creare una varietà di utilizzi nella tua casa intelligente, dalla semplice riproduzione di contenuti multimediali, all'illuminazione intelligente, a sistemi di climatizzazione e soluzioni di sicurezza.

Città intelligente

Numerose città hanno installato un gran numero di telecamere ai semafori, nei parcheggi, nei centri commerciali e praticamente in ogni luogo pubblico, acquisendo video 24/7. Con Kinesis Video Streams è possibile acquisire, archiviare e riprodurre e analizzare in modo sicuro ed economico questo enorme volume di dati multimediali e aiutare così a risolvere i problemi legati al traffico, prevenire il crimine, inviare soccorsi in casi di emergenza e molto altro.

Automazione industriale

Kinesis Video Streams permette di raccogliere una varietà di dati con codifica temporale dalle apparecchiature industriali, come i segnali RADAR e LIDAR, i profili di temperatura e i dati di profondità. I dati si possono poi analizzare utilizzando il tuo framework di Machine Learning preferito, compresi Apache MxNet, TensorFlow e OpenCV, nei casi di automazione industriale come la manutenzione predittiva. Si può ad esempio prevedere la durata di una guarnizione o di una valvola e programmarne in anticipo la sostituzione, riducendo i tempi di inattività e i difetti in una linea di produzione.

Amazon Kinesis Video Streams è un servizio di acquisizione, archiviazione ed elaborazione di contenuti multimediali completamente gestito. Consente di assimilare, elaborare e archiviare in sicurezza video su qualsiasi scala per applicazioni che alimentano robot, città intelligenti, automazione industriale, monitoraggio di sicurezza, Machine Learning (ML) e molto altro. Kinesis Video Streams acquisisce inoltre altri tipi di dati con codifica temporale come i segnali audio, RADAR e LIDAR. Kinesis Video Streams fornisce gli SDK da installare nei dispositivi per semplificare in sicurezza lo streaming di contenuti multimediali ad AWS. Effettua automaticamente il provisioning e ricalibra in modo elastico tutta l'infrastruttura necessaria per acquisire i flussi multimediali da milioni di dispositivi. Inoltre, archivia in modo sicuro, crittografa e indicizza i flussi multimediali e fornisce delle API semplici da utilizzare, in modo che le applicazioni possano recuperare ed elaborare frammenti di contenuti multimediali indicizzati sulla base di tag e time stamp. Kinesis Video Streams offre una libreria per integrare i framework ML come Apache MxNet, TensorFlow e OpenCV con i flussi video per creare applicazioni di machine learning. Kinesis Video Streams è integrato con Amazon Rekognition Video, e permette di creare applicazioni di visione computerizzata che rilevano oggetti, eventi e persone.

Concetti chiave

Un flusso video è una risorsa che consente di acquisire video in diretta e altri dati con codifica temporale, di memorizzarli eventualmente e di renderli disponibili per il consumo sia in tempo reale che in batch o ad-hoc. Quando si sceglie di memorizzare i dati nel flusso video, Kinesis Video Streams li crittograferà e genererà nei dati memorizzati un indice cronologico. In una configurazione tipica, un flusso video Kinesis ha un solo producer che vi pubblica dati. Il flusso video Kinesis può contenere più applicazioni consumer che elaborano il contenuto del flusso video.

Un frammento è una sequenza autonoma di fotogrammi multimediali. I fotogrammi che appartengono a un frammento non dovrebbero avere alcuna dipendenza da nessun fotogramma di altri frammenti. Man mano che i frammenti arrivano, Kinesis Video Streams assegna loro un numero di frammento univoco, in ordine crescente. Inoltre memorizza i time stamp lato producer e lato server per ciascun frammento, come metadati specifici di Kinesis Video Streams.

Producer è un termine generico utilizzato per fare riferimento a un dispositivo o a una fonte che inserisce dati in un flusso video Kinesis. Un producer può essere qualsiasi dispositivo di generazione video, come le videocamere di sicurezza, quelle da indossare, quelle su smartphone o dashboard. Un producer può anche inviare dati non video con codifica temporale, come feed audio, immagini o dati RADAR. Un producer può generare uno o più flussi video. Ad esempio, una videocamera può inviare dati video in un flusso video Kinesis e dati audio a un altro.

I consumer sono le applicazioni personalizzate che utilizzano ed elaborano i dati nei flussi video Kinesis in tempo reale o dopo che i dati sono stati archiviati in modo duraturo e indicizzati cronologicamente, quando non è richiesta un'elaborazione a bassa latenza. É possibile creare questo tipo di applicazioni consumer da eseguire su istanze Amazon EC2. È inoltre possibile utilizzare altri servizi di Amazon AI come Amazon Rekognition, o fornitori di analisi video di terze parti per elaborare i tuoi flussi video.

Dopo aver ricevuto i dati da un producer, Kinesis Video Streams memorizza i dati multimediali in entrata come blocchi. Ogni blocco è costituito dal frammento multimediale effettivo, da una copia dei metadati multimediali inviati dal producer e dai metadati specifici di Kinesis Video Streams, come il numero del frammento e i time stamp lato server e lato producer. Quando un consumer richiede dati multimediali attraverso l'operazione API GetMedia, Kinesis Video Streams restituisce un flusso di blocchi, iniziando dal numero di frammento specificato nella richiesta.

Ci sono quattro fattori chiave che contribuiscono alla latenza in un flusso di dati multimediali end-to-end.

  • Tempo trascorso nella pipeline dei supporti hardware del dispositivo: questa pipeline può comprendere il sensore di immagine e qualsiasi encoder hardware a seconda dei casi. In teoria, potrebbe essere breve anche quanto la durata di un singolo fotogramma. In pratica raramente lo è. Per funzionare efficacemente per la codifica multimediale (compressione), tutti gli encoder accumulano diversi fotogrammi per costruire un frammento. Questo processo e tutti gli algoritmi corrispondenti di compensazione del movimento aggiungeranno da un secondo a diversi secondi di latenza sul dispositivo prima che i dati vengano impacchettati per la trasmissione.
  • Latenza sostenuta per la trasmissione effettiva dei dati su Internet: La qualità del throughput e della latenza della rete può variare in modo significativo in base a dove si trova il dispositivo producer.
  • Latenza aggiunta da Kinesis Video Streams quando riceve i dati dal dispositivo producer: i dati in arrivo sono resi immediatamente disponibili nell'operazione API GetMedia per qualsiasi applicazione consumer. Se scegli di conservare i dati, Kinesis Video Streams farà in modo che vengano crittografati utilizzando AWS Key Management Service (AWS KMS) e nei singoli frammenti nel flusso video genererà un indice basato sul tempo. Quando accedi a questi dati conservati, utilizzando API GetMediaforFragmentList, Kinesis Video Streams recupera i frammenti dall'archivio duraturo, decodifica i dati e li rende disponibili per l'applicazione consumer.
  • Latenza sulla trasmissione dei dati al consumer: su Internet o in altre regioni AWS possono essere presenti dispositivi consumer che richiedono i dati multimediali. La qualità del throughput e della latenza della rete può variare in modo significativo in base a dove si trova il dispositivo consumer.

Pubblicazione di dati su flussi

Puoi pubblicare dati multimediali su un flusso video Kinesis tramite l'operazione PutMedia, oppure usando gli SDK Producer di Kinesis Video Streams in Java, C++ o Android. Se scegli di usare direttamente l'operazione PutMedia, dovrai occuparti del packaging del flusso multimediale secondo la specifica dati di Kinesis Video Streams, della gestione della creazione del flusso, della rotazione dei token e di altre azioni necessarie per uno streaming affidabile dei dati multimediali al cloud AWS. Consigliamo di utilizzare SDK Producer per rendere queste attività più semplici e iniziare più rapidamente.

Kinesis Video Streams mette a disposizione un'API PutMedia per scrivere dati multimediali in un flusso video Kinesis. In una richiesta PutMedia, il producer invia un flusso di frammenti multimediali. Man mano che i frammenti arrivano, Kinesis Video Streams assegna loro un numero di frammento univoco, in ordine crescente. Inoltre memorizza i time stamp lato producer e lato server per ciascun frammento, come metadati specifici di Kinesis Video Streams.

SDK Producer di Amazon Kinesis Video Streams è un insieme di librerie, facili da usare e altamente configurabili, che puoi installare e personalizzare per i tuoi producer specifici. L'SDK semplifica la creazione di un'applicazione su dispositivo che si connette in modo sicuro a un flusso video e pubblica in modo affidabile video e altri dati multimediali su Kinesis Video Streams. Si occupa di tutte le attività di base richieste per il la creazione di pacchetti di fotogrammi e frammenti generati dalla pipeline dei media del dispositivo. SDK gestisce anche la creazione del flusso, la rotazione dei token per lo streaming sicuro e ininterrotto, i riconoscimenti di elaborazione restituiti da Kinesis Video Streams, e altre attività.

Il core di SDK Producer di Kinesis Video Streams è costruito in C, pertanto è efficiente e portabile su diverse piattaforme hardware. La maggior parte degli sviluppatori preferirà usare le versioni C, C++ o Java di SDK Producer di Kinesis Video Streams. Esiste anche una versione Android dell'SDK Producer per sviluppatori di app mobili che desiderano trasmettere in streaming dati video da dispositivi Android.

SDK Producer di Kinesis Video Streams si occupa di tutte le attività impegnative di packaging di fotogrammi e frammenti, di stabilire una connessione sicura e inviare in modo affidabile i video ad AWS. Tuttavia in essi sono in esecuzione numerosi e diversi dispositivi hardware e pipeline di media. Per semplificare il processo di integrazione con la pipeline dei media, consigliamo una certa conoscenza di: 1) limiti del fotogramma, 2) tipo di fotogramma usato per i limiti, fotogramma I o non I, e 3) time stamp di codifica fotogrammi.

Lettura di dati da flussi

È possibile utilizzare l'API GetMedia per recuperare il contenuto multimediale da un flusso video Kinesis. Nella richiesta è necessario identificare il nome del flusso o Amazon Resource Name (ARN) del flusso e il blocco iniziale. Kinesis Video Streams restituisce quindi un flusso di blocchi ordinati per numero di frammento. Quando si inseriscono dati multimediali (frammenti) in un flusso, Kinesis Video Streams memorizza ogni frammento in entrata e i relativi metadati in quello che viene chiamato un "blocco". API GetMedia restituisce un flusso di questi blocchi, a partire da quello specificato nella richiesta.

Puoi usare l'API GetMediaForFragmentList per recuperare i dati multimediali per un elenco di frammenti (specificato per numero di frammento) dai dati archiviati in un flusso video Kinesis. In genere una chiamata a questa operazione API è preceduta da una chiamata all'API ListFragments.

Puoi usare l'API ListFragments per restituire una lista di frammenti dal flusso video e dalla posizione iniziale specificati, utilizzando il numero di frammenti o di time stamp, all'interno dei dati conservati.

Puoi memorizzare i dati nei loro flussi per tutto il tempo che desideri. Kinesis Video Streams ti consente di configurare il periodo di conservazione dei dati in base alle tue esigenze di archiviazione e memorizzazione.

La libreria di parsing di Kinesis Video Streams facilita agli sviluppatori l'uso e l'elaborazione dell'output dell'operazione GetMedia di Kinesis Video Streams. Gli sviluppatori di applicazioni includeranno la libreria nelle loro applicazioni di analisi ed elaborazione video che operano su flussi video. Le applicazioni stesse verranno eseguite sulle tue istanze EC2, sebbene possano essere eseguite altrove. La libreria ha caratteristiche che rendono facile ottenere un oggetto a livello di fotogramma e i relativi metadati, oltre a estrarre e raccogliere metadati specifici di Kinesis Video Streams associati ai frammenti e frammenti consecutivi. Puoi così creare applicazioni personalizzate che possono utilizzare più facilmente i dati video non elaborati per i tuoi casi d'uso.

 

In generale, se desideri utilizzare flussi video e quindi manipolarli per adattarli alle esigenze della tua applicazione personalizzata, esistono due passaggi chiave da considerare. Innanzitutto, ottieni i byte in un fotogramma dal flusso formattato fornito da API GetMedia. Puoi utilizzare la libreria di parsing dei flussi per ottenere gli oggetti fotogramma. Successivamente, ottieni i metadati necessari per decodificare un fotogramma come l'altezza e la larghezza dei pixel, l'ID codec e i dati privati del codec. Tali metadati sono incorporati negli elementi di traccia. La libreria di parsing facilita l'estrazione di queste informazioni fornendo classi helper per raccogliere le informazioni di traccia per un frammento.

I passaggi successivi dipendono fortemente dall'applicazione. Potresti voler decodificare i fotogrammi, formattarli per un motore di riproduzione, transcodificarli per la distribuzione del contenuto o inviarli in un formato applicazione di apprendimento approfondito personalizzato. La libreria di parsing dei flussi di Kinesis Video Streams è open source, per cui puoi estenderla per i tuoi casi d'uso specifici.

Riproduzione di video da flussi

Puoi usare le funzionalità HTTP Live Streams (HLS) e Dynamic Adaptive Streaming over HTTP (DASH) di Amazon Kinesis Video Streams per riprodurre i video acquisiti in pacchetti MP4 o MPEG_TS frammentati. HLS e DASH sono protocolli di streaming multimediale standard del settore, basati su HTTP. Quando si acquisiscono video da dispositivi che utilizzano Amazon Kinesis Video Streams, puoi utilizzare le API HLS o DASH per riprodurre video in diretta o registrati. Questa funzionalità è completamente gestita, quindi non è necessario costruire alcuna infrastruttura basata su cloud per supportare la riproduzione video. Per la riproduzione a bassa latenza e lo streaming multimediale bidirezionale, consulta le Domande frequenti sullo streaming basato su WebRTC.

Per visualizzare un flusso video Kinesis utilizzando HLS o DASH, innanzitutto devi creare una sessione di streaming mediante le API GetHLSStreamingSessionURL o GetDASHStreamingSessionURL. Questa azione restituisce un URL (contenente un token di sessione) per accedere alla sessione HLS o DASH, che puoi quindi utilizzare in un lettore multimediale o in un'applicazione indipendente per riprodurre il flusso. Puoi utilizzare un lettore di terze parti (ad esempio Video.js o Google Shaka Player) per visualizzare il flusso video, fornendo l'URL della sessione di streaming HLS o DASH, programmaticamente o manualmente. Puoi anche riprodurre video inserendo l'URL della sessione di streaming HLS o DASH nella barra degli indirizzi dei browser Apple Safari o Microsoft Edge. Inoltre, è possibile utilizzare i lettori video per Android (Exoplayer) e iOS (AVMediaPlayer) per le applicazioni mobili.

Un flusso video Amazon Kinesis ha i seguenti requisiti per la fornitura di dati tramite HLS:

  • Il contenuto multimediale deve contenere un video codificato h.264 o h.265 e, facoltativamente, un audio codificato AAC. Nello specifico, l'ID codec per la traccia 1 deve essere V_MPEG/ISO/AVC per h.264 o V_MPEG/ISO/HEVC per h.265. Facoltativamente, l'ID codec ID della traccia 2 deve essere A_AAC.
  • La traccia video di ciascun frammento deve contenere dati privati codec in AVC (Advanced Video Coding) per il formato h.264 o HEVC per il formato h.265 (specifica MPEG-4 ISO/IEC 14496-15). Per informazioni sull'adattamento dei dati di flusso a un dato formato, vedi i contrassegni di adattamento NAL.
  • La conservazione dei dati deve essere superiore a 0.
  • La traccia audio (se presente) di ciascun frammento deve contenere dati privati codec nel formato AAC (specifica AAC ISO/IEC 13818-7).

I requisiti di un flusso video Amazon Kinesis per la fornitura di dati tramite DASH sono i seguenti:

  • Il contenuto multimediale deve contenere un video codificato h.264 o h.265 e, facoltativamente, un audio codificato AAC o G.711. Nello specifico, l'ID codec per la traccia 1 deve essere V_MPEG/ISO/AVC per h.264 o V_MPEGH/ISO/HEVC (per h.265). Facoltativamente, l'ID codec della traccia 2 deve essere A_AAC (per AAC) o A_MS/ACM (per G.711).
  • La traccia video di ciascun frammento deve contenere dati privati codec in AVC (Advanced Video Coding) per il formato h.264 ed HEVC per il formato h.265. Per ulteriori informazioni, consulta la specifica MPEG-4 ISO/IEC 14496-15. Per informazioni sull'adattamento dei dati di flusso a un dato formato, vedi i contrassegni di adattamento NAL.
  • La conservazione dei dati deve essere superiore a 0.
  • La traccia audio (se presente) di ciascun frammento deve contenere dati privati codec nel formato AAC (specifica AAC ISO/IEC 13818-7) o nel formato MS Wave.

Esistono due modalità di riproduzione diverse supportate da HLS e DASH: in diretta e on demand.

IN DIRETTA: per le sessioni live, la playlist dei contenuti multimediali HLS viene continuamente aggiornata con i frammenti più recenti non appena disponibili. Quando questo tipo di sessione viene riprodotta in un lettore multimediale, l'interfaccia utente di solito visualizza una notifica "dal vivo", senza alcun controllo scrubber per la scelta della posizione nella finestra di riproduzione da visualizzare.

ON DEMAND: Per le applicazioni on demand, la playlist dei contenuti multimediali HLS contiene tutti i frammenti per la sessione, fino al numero specificato in MaxMediaPlaylistFragmentResults. La playlist può essere richiamata una sola volta per ogni sessione.

Inoltre, HLS supporta anche la riproduzione in modalità LIVE_REPLAY. In questa modalità, la playlist dei contenuti multimediali HLS viene aggiornata in modo analogo alla modalità IN DIRETTA, tranne che all'avvio i frammenti vengono inclusi a partire da una data ora di inizio. Questa modalità è utile nei casi in cui vuoi iniziare la riproduzione da un punto precedente del contenuto multimediale archiviato per poi proseguire con il live streaming.

La latenza per la riproduzione dal vivo è generalmente compresa tra 3 e 5 secondi, ma può variare. Si consiglia vivamente di eseguire test e prove concettuali personalizzati per determinare le latenze target. Ci sono una varietà di fattori che influiscono sulle latenze, tra cui la tipologia di utilizzo il modo in cui il producer genera i frammenti video, la dimensione del frammento video, la sintonizzazione del lettore e le condizioni di rete sia in streaming in AWS e fuori AWS per la riproduzione. Per la riproduzione a bassa latenza, consulta le Domande frequenti sullo streaming basato su WebRTC.

Un flusso video Kinesis supporta al massimo dieci sessioni di streaming HLS o DASH attive. Se viene creata una nuova sessione quando il numero massimo di sessioni è già attivo, la sessione più vecchia (la prima creata) verrà chiusa. Il numero di connessioni GetMedia attive su uno stream video Kinesis non viene conteggiato in base a questo limite e il numero di sessioni HLS attive non viene conteggiato in base al limite di connessione GetMedia attivo. Per ulteriori informazioni, vedi Limiti di Kinesis Video Streams.

AWS Elemental MediaLive è un servizio di codifica video in diretta di qualità televisiva. Permette di creare flussi video di alta qualità per la distribuzione su piattaforme televisive o su dispositivi multischermo connessi a Internet, ad esempio smart TV, tablet, smartphone e set-top box. Il servizio funziona in modo indipendente o come parte di AWS Media Services.

Amazon Kinesis Video Streams semplifica lo streaming sicuro di video, dai dispositivi connessi ad AWS per il Machine Learning (ML), l'analisi, l'elaborazione e la riproduzione video in tempo reale o basati su batch. Consente ai clienti di realizzare applicazioni basate sulla visione artificiale che alimentano smart home, smart city, automazione industriale, monitoraggio di sicurezza e altro ancora.

I prezzi di Kinesis Video Streams sono calcolati in base al consumo effettivo. Non sono previsti pagamenti anticipati, paghi solo le risorse che usi. Il prezzo di Kinesis Video Streams si basa sul volume di dati acquisiti (GB), sul volume di dati consumati (GB), anche tramite le API HLS o DASH, e sui dati memorizzati (GB-mese) in tutti i flussi video nel tuo account. Per ulteriori informazioni, consulta la pagina dei prezzi.
 

Cos'è l'agente edge del flusso di video Amazon Kinesis

L'agente edge del flusso di video Amazon Kinesis è un insieme di librerie facili da usare e altamente configurabili che puoi installare e personalizzare per l'archiviazione di video locale e il caricamento pianificato sul cloud. Puoi scaricare l'agente edge e distribuirlo sui tuoi dispositivi di edge computing locali. In alternativa, puoi distribuirlo facilmente in container docker in esecuzione su macchine Amazon EC2. Una volta implementato, puoi utilizzare le API del flusso di video Amazon Kinesis per aggiornare le configurazioni di registrazione dei video e di caricamento su cloud. La funzionalità funziona con qualsiasi telecamera IP in grado di eseguire lo streaming tramite protocollo RTSP e non richiede l'implementazione di firmware aggiuntivo sulle telecamere. Offriamo le installazioni dell'agente edge del flusso di video Amazon Kinesis su dispositivi Edge AWS Snowball , come componente AWS Greengrass o su una implementazione IoT nativa. Per accedere all'agente edge di Amazon Kinesis Video Streams, vedi qui.

Streaming di contenuti multimediali bidirezionali a bassa latenza con WebRTC

WebRTC è una specifica tecnologica open per consentire la comunicazione in tempo reale (RTC) nei browser e nelle applicazioni per dispositivi mobili mediante API semplici. Sfrutta tecniche di peering per lo scambio di dati in tempo reale tra peer connessi e offre una bassa latenza di streaming multimediale, necessaria per l'interazione tra persone. La specifica WebRTC include un set di protocolli IETF, tra cui Interactive Connectivity Establishment (ICE RFC5245), Traversal Using Relay around NAT (TURN RFC5766) e Session Traversal Utilities for NAT (STUN RFC5389) per stabilire connettività peer-to-peer, oltre alle specifiche del protocollo per lo streaming multimediale e dei dati in tempo reale. Kinesis Video Streams fornisce un'implementazione WebRTC conforme agli standard, come funzionalità completamente gestita. Puoi utilizzare questa funzionalità per eseguire in modo sicuro il live streaming di contenuti multimediali o l'interazione audio o video bidirezionale tra qualsiasi dispositivo IoT dotato di videocamera e dispositivo mobile o riproduttore Web conforme a WebRTC. Dato che le funzionalità sono interamente gestite, non è necessario creare, operare o scalare alcuna infrastruttura cloud correlata a WebRTC, come le segnalazioni o i server di inoltro multimediale per eseguire in modo sicuro lo streaming multimediale in applicazioni e dispositivi.

Kinesis Video Streams fornisce endpoint gestiti per la segnalazione WebRTC che consente alle applicazioni di connettersi tra loro in modo sicuro per il live streaming multimediale peer-to-peer. Include endpoint gestiti per TURN che abilita l'inoltro multimediale tramite cloud quando le applicazioni non possono eseguire lo streaming multimediale peer-to-peer. Include anche endpoint gestiti per STUN che consente alle applicazioni di individuare il rispettivo indirizzo IP pubblico quando sono dietro a una NAT o a un firewall. Fornisce inoltre SDK intuitivi per abilitare i dispositivi IoT dotati di videocamera con funzionalità WebRTC. Infine, fornisce SDK per applicazioni Android, iOS e Web per integrare la segnalazione WebRTC di Kinesis Video Streams, le funzionalità TURN e STUN con qualsiasi dispositivo mobile o riproduttore Web conforme a WebRTC.

Con WebRTC di Kinesis Video Streams, puoi creare facilmente applicazioni per lo streaming multimediale o l'interazione audio o video tra dispositivi IoT dotati di videocamera, browser Web e dispositivi mobili per casi di utilizzo come monitorare un bebè nella cameretta, abilitare un campanello video nelle abitazioni per verificare chi è alla porta, consentire ai proprietari di aspirapolvere robot dotati di videocamera di controllare il robot in remoto visualizzando il flusso in diretta su un dispositivo mobile, e molto altro ancora.

Per iniziare, puoi costruire ed eseguire applicazioni di esempio negli SDK di Kinesis Video Streams per WebRTC disponibili per i browser Web, dispositivi mobili basati su Android o iOS e per i dispositivi IoT basati su Linux, Raspbian e MacOS. Puoi anche eseguire una rapida demo della funzionalità nella console di gestione di Kinesis Video Streams creando un canale di segnalazione ed eseguendo l'applicazione demo per effettuare il live streaming audio e video dalla videocamera e dal microfono incorporati nel laptop.

Un canale di segnalazione è una risorsa che abilita le applicazioni a individuare, configurare, controllare e interrompere una connessione peer-to-peer mediante lo scambio di messaggi di segnalazione. I messaggi di segnalazione sono metadati che due applicazioni si scambiano a vicenda per stabilire la connettività peer-to-peer. Tali metadati includono informazioni multimediali locali, quali i codec multimediali e i parametri codec, nonché possibili percorsi di rete in cui le due applicazioni possono connettersi l'una con l'altra per il live streaming.

Le applicazioni di streaming possono mantenere una connettività persistente con un canale di segnalazione e attendere che altre applicazioni si connettano a loro o possono connettersi a un canale di segnalazione solo quando devono eseguire il live streaming dei contenuti multimediali. Il canale di segnalazione abilita le applicazioni a connettersi tra loro secondo un modello da uno a pochi, utilizzando il concetto di un master che si connette a più visualizzatori. L'applicazione che avvia la connessione si assume la responsabilità del master tramite l'API ConnectAsMaster e attende visitatori. A tale canale di segnalazione possono quindi connettersi fino a 10 applicazioni, presupponendo la responsabilità del visualizzatore tramite l'API ConnectAsViewer. Una volta connessi al canale di segnalazione, le applicazioni master e visualizzatore possono inviarsi a vicenda messaggi di segnalazione per stabilire la connettività peer-to-peer per il live streaming multimediale.

Le applicazioni utilizzano l'endpont STUN di Kinesis Video Streams per individuare il rispettivo indirizzo IP pubblico quando sono dietro a una NAT o a un firewall. Un'applicazione fornisce il rispettivo indirizzo IP pubblico come ubicazione possibile in cui ricevere richieste di connessione da altre applicazioni per il live streaming. L'opzione predefinita per tutta la comunicazione WebRTC è la connettività peer-to-peer diretta, ma se la NAT o il firewall non la consente (ad esempio, nel caso di NAT simmetriche), l'applicazione può connettersi agli endpont TURN di Kinesis Video Streams per l'inoltro dei contenuti multimediali mediante cloud. L'API GetIceServerConfig fornisce le informazioni necessarie sull'endpoint TURN che le applicazioni possono utilizzare nella rispettiva configurazione WebRTC. Tale configurazione consente alle applicazioni di utilizzare l'inoltro TURN come fallback quando non sono in grado di stabilire una connessione peer-to-peer diretta per il live streaming.

La crittografia end-to-end è una funzione obbligatoria di WebRTC che viene applicata da Kinesis Video Streams su tutti i componenti, inclusi la segnalazione e lo streaming multimediale o di dati. Indipendentemente dal tipo di comunicazione, peer-to-peer o inoltrata, mediante gli endpoint TURN di Kinesis Video Streams, tutte le comunicazioni WebRTC sono crittografate in modo sicuro tramite protocolli di crittografia standardizzati. Lo scambio dei messaggi di segnalazione viene effettuato tramite Websocket sicuri (WSS), i flussi di dati vengono crittografati mediante Datagram Transport Layer Security (DTLS) e i flussi multimediali vengono crittografati con Secure Real-time Transport Protocol (SRTP).

Console

La console di gestione di Kinesis Video Streams permette di creare, aggiornare, gestire e monitorare i tuoi flussi video. La console può inoltre riprodurre i flussi multimediali in diretta o su richiesta, purché il loro contenuto sia del tipo di media supportato. Utilizzando i controlli del lettore, puoi visualizzare il flusso in tempo reale, saltare avanti o indietro di 10 secondi, usare il selettore di data e ora per tornare indietro a un punto nel passato, una volta impostato il periodo di conservazione corrispondente per il flusso video. Le funzionalità di riproduzione video della console di gestione di Kinesis Video Streams vengono offerte come strumento di diagnostica rapida per scenari di sviluppo e test per gli sviluppatori che realizzano soluzioni tramite Kinesis Video Streams.

L'unico tipo di media video supportato per la riproduzione nella console di gestione di Kinesis Video Streams è il diffuso formato H.264. Questo formato è ampiamente supportato su dispositivi, codificatori hardware e software e motori di riproduzione. Anche se puoi assimilare qualsiasi tipo di dati video, audio o altri tipi di dati personalizzati con codifica temporale per le tue applicazioni consumer e i tuoi casi d'uso, la console di gestione non eseguirà la riproduzione di questi altri tipi di dati.

Per un producer che sta trasmettendo dati video nel flusso video, si avrà un ritardo di 2-10 secondi nella riproduzione in diretta nella console di gestione di Kinesis Video Streams. La maggior parte della latenza è dovuta al dispositivo producer poiché accumula fotogrammi in frammenti, prima di trasmettere dati su Internet. Quando i dati entrano nell'endpoint Kinesis Video Streams ed è richiesta la riproduzione, la console riceve frammenti media del tipo H.264 dall'archivio duraturo e traspone i frammenti in un formato di media idoneo per la riproduzione su diversi browser Internet. Il contenuto del media trasposto verrà quindi trasferito alla posizione da cui hai richiesto la riproduzione via Internet.

Crittografia

La crittografia lato server è una funzionalità di Kinesis Video Streams che crittografa automaticamente i dati, prima che diventino inattivi, utilizzando la chiave AWS KMS specificata. I dati vengono crittografati prima di essere scritti nel livello di archiviazione di Kinesis Video Streams e decrittografati dopo essere stati recuperati dallo storage. Di conseguenza, i tuoi dati sono sempre crittografati quando sono inattivi nel servizio Kinesis Video Streams.

La crittografia lato server è sempre abilitata sui flussi video Kinesis. Se al momento di creare il flusso non si specifica una chiave fornita dall'utente, viene usata quella predefinita (fornita da Kinesis Video Streams).

Quando si crea un flusso Kinesis Video Streams, occorre assegnargli una chiave AWS KMS fornita dall'utente. Non è possibile assegnare a un flusso una chiave diversa in un secondo momento utilizzando l'API UpdateStream.

È possibile assegnare una chiave AWS KMS fornita dall'utente a un flusso video Kinesis in due modi: al momento della creazione di un flusso video Kinesis nella console, specificando la chiave AWS KMS nella sezione Crittografia nella pagina Crea un nuovo flusso Kinesis Video. Oppure quando crei un flusso Kinesis Video Streams tramite l'API CreateStream, specificando l'ID della chiave nel parametro KmsKeyId.

Quando applichi la crittografia lato server, sei soggetto ai costi della chiave e dell'utilizzo dell'API AWS KMS. Diversamente dalle chiavi AWS KMS personalizzate, la chiave KMS aws/kinesis-video (predefinita) è gratuita. Tuttavia, pagherai per i costi d'uso dell'API che Kinesis Video Streams sostiene per conto tuo. I costi di utilizzo dell'API si applicano per ogni chiave KMS, incluse quelle personalizzate. Kinesis Video Streams richiama AWS KMS ogni 45 minuti circa, quando è impostata la rotazione delle chiavi dati. Nell'arco di 30 giorni, il costo totale delle chiamate API AWS KMS, avviate da un flusso Kinesis Video Streams, è di appena qualche euro. Questi costi ovviamente aumentano di pari passo con il numero di credenziali utente utilizzate per producer e consumer di dati, perché ogni singola credenziale utente richiede una chiamata API univoca ad AWS KMS.

Prezzi e fatturazione

No, Amazon Kinesis Video Streams non è attualmente disponibile nel piano gratuito di AWS.

I prezzi di Kinesis Video Streams sono calcolati in base al consumo effettivo. Non sono previsti pagamenti anticipati né tariffe minime: paghi solo le risorse che usi. Il prezzo di Kinesis Video Streams si basa sul volume di dati acquisiti (GB), sul volume di dati consumati (GB) e sui dati memorizzati (GB-mese) in tutti i flussi video nel tuo account.

Inoltre, Kinesis Video Streams addebiterà un costo solo per i dati multimediali ricevuti correttamente, con una dimensione minima del blocco di 4 KB. Per un confronto, un campione audio di 64 kbps ha una dimensione di 8 KB, per cui la dimensione minima dei blocchi è impostata su un valore sufficientemente basso da accogliere il più piccolo dei flussi audio o video.

Kinesis Video Streams addebiterà la quantità totale di dati memorizzati in modo durevole in un determinato flusso. La quantità totale di dati memorizzati per flusso video può essere controllata utilizzando le ore di conservazione.

Per l'uso della funzionalità WebRTC di Amazon Kinesis Video Streams, l'addebito viene effettuato in base al numero di canali di segnalazione attivi in un dato mese, al numero di messaggi di segnalazione inviati e ricevuti e ai minuti di streaming TURN utilizzati per l'inoltro di contenuti multimediali. Un canale di segnalazione viene considerato attivo in un mese se durante tale periodo un dispositivo o un'applicazione si connette a esso. I minuti di streaming TURN vengono misurati con incrementi di 1 minuto. Per ulteriori informazioni, consulta la pagina dei prezzi.

Contratto sul livello di servizio (SLA)

Il contratto di livello di servizio (SLA) di Amazon Kinesis Video Streams garantisce una percentuale di tempo di attività mensile di almeno il 99,9% per Amazon Kinesis Video Streams.

Hai diritto a un credito di assistenza SLA per Amazon Kinesis Video Streams, secondo lo SLA di Amazon Kinesis Video Streams, se più di una zona di disponibilità in cui stai eseguendo un'attività, all'interno della stessa regione, ha una percentuale di tempo di attività mensile inferiore al 99,9%, durante un qualsiasi ciclo di fatturazione mensile.

Per dettagli completi sui termini e le condizioni del contratto sul livello di servizio e per le indicazioni sulla presentazione di una richiesta, consulta la pagina dei dettagli SLA di Amazon Kinesis Video Streams.