Preguntas frecuentes de Amazon Kinesis Video Streams

Aspectos generales

Amazon Kinesis Video Streams facilita la transmisión segura de medios desde dispositivos conectados a AWS para tareas de almacenamiento, análisis, aprendizaje automático (ML), reproducción y otros procesos. Kinesis Video Streams aprovisiona automáticamente y escala de manera elástica toda la infraestructura necesaria para incorporar datos de las transmisiones de medios de millones de dispositivos. También almacena, cifra e indexa de forma duradera datos de medios en transmisiones y permite obtener acceso a los medios mediante API fáciles de usar. Con Kinesis Video Streams, puede crear rápidamente aplicaciones de visión artificial y aprendizaje automático mediante la integración en Amazon Rekognition Video, Amazon SageMaker y bibliotecas de marcos de aprendizaje automático, como Apache MxNet, TensorFlow u OpenCV. Para las reproducciones en vivo y bajo demanda, Kinesis Video Streams suministra capacidades completamente administradas para HTTP Live Streaming (HLS) y Dynamic Adaptive Streaming a través de HTTP (DASH). Kinesis Video Streams también admite transmisión de medios de ultrabaja latencia y bidireccional con WebRTC, como una capacidad completamente administrada.

Los datos codificados por tiempo son aquellos en los cuales los registros se encuentran en una serie temporal y cada registro está relacionado con sus registros previos y posteriores. El video muestra un ejemplo de los datos codificados por tiempo, donde cada marco está relacionado con los marcos anteriores y posteriores mediante transformaciones espaciales. Otros ejemplos de datos codificados por tiempo incluyen audio, RADAR y señales LIDAR. Amazon Kinesis Video Streams está diseñado específicamente para la incorporación y el almacenamiento rentable y eficiente de todos los tipos de datos codificados en el tiempo para el análisis y los casos de uso de ML.

Kinesis Video Streams es perfecto para crear aplicaciones de transmisión de medios para dispositivos de IoT equipados con cámara y para crear aplicaciones de aprendizaje automático habilitadas para visión artificial y en tiempo real que se observan cada vez más en una amplia variedad de casos de uso como los siguientes:

Hogar inteligente

Con Kinesis Video Streams, puede transmitir videos y audios fácilmente desde dispositivos domésticos con cámara, como monitores de bebés, cámaras web y sistemas de vigilancia del hogar, a AWS. A continuación, puede utilizar las transmisiones para crear una serie de aplicaciones inteligentes para el hogar que van desde una sencilla reproducción de medios hasta iluminación artificial, sistemas de climatización y soluciones de seguridad.

Ciudad inteligente

Muchas ciudades han instalado un gran número de cámaras en semáforos, aparcamientos, centros comerciales y prácticamente en todos los espacios públicos, que graban a todas horas. Puede usar Kinesis Video Streams para incorporar, almacenar, reproducir y analizar de forma segura y rentable este enorme volumen de datos de medios para resolver problemas de tráfico, evitar delitos, enviar equipos de emergencia, etc.

Automatización industrial

Puede utilizar Kinesis Video Streams para recopilar una serie de datos codificados por tiempo, como señales de RADAR y LIDAR, perfiles de temperatura y datos de profundidad de equipos industriales. A continuación, puede analizar los datos con su marco de aprendizaje automático predilecto, como Apache MxNet, TensorFlow u OpenCV, para casos de uso de automatización industrial como el mantenimiento predictivo. Por ejemplo, puede predecir la vida útil de una junta o válvula y planificar la sustitución de piezas por adelantado, reduciendo así el tiempo de inactividad y los defectos en la línea de producción.

Amazon Kinesis Video Streams es un servicio completamente administrado para la incorporación, el almacenamiento y el procesamiento de medios. Le permite incorporar, procesar y almacenar videos de manera segura a cualquier escala para su posterior envío a las aplicaciones que respaldan el funcionamiento de robots, ciudades inteligentes, tareas de automatización industrial, monitoreo de seguridad, aprendizaje automático (ML) y más. Kinesis Video Streams también incorpora otros tipos de datos codificados por tiempo como audio, RADAR y señales LIDAR. Kinesis Video Streams proporciona SDK para instalar en sus dispositivos, lo que facilita la transmisión de medios de manera segura a AWS. Kinesis Video Streams aprovisiona automáticamente y escala de manera elástica toda la infraestructura necesaria para incorporar transmisiones por streaming de medios desde millones de dispositivos. También almacena, cifra e indexa de manera duradera las transmisiones de medios y proporciona API fáciles de utilizar para que las aplicaciones puedan recuperar y procesar fragmentos de medios indexados basados en etiquetas y marcas de tiempo. Kinesis Video Streams proporciona una biblioteca que permite integrar marcos de trabajo de aprendizaje automático, como Apache MxNet, TensorFlow y OpenCV con transmisiones de video para crear aplicaciones de aprendizaje automático. Kinesis Video Streams está integrado con Amazon Rekognition Video, lo que permite crear aplicaciones de visión artificial que detectan objetos, eventos y personas.

Conceptos clave

Una transmisión de video es un recurso que le permite incorporar videos en directo y otros datos codificados por tiempo, opcionalmente almacenarlos, y hacer que estén disponibles para el consumo tanto en tiempo real y por lotes o con un carácter específico. Cuando opte por almacenar datos en la transmisión de video, Kinesis Video Streams cifrará los datos y generará un índice cronológico de los datos almacenados. En una configuración típica, una transmisión de video de Kinesis solo tiene un productor que publica datos en él. La transmisión de vídeo de Kinesis puede tener varias aplicaciones consumidoras procesando el contenido de la transmisión de vídeo.

Un fragmento es una secuencia autocontenida de fotogramas de medios. Los fotogramas que pertenecen a un fragmento no deben depender de fotogramas de otros fragmentos. A medida que llegan los fragmentos, Kinesis Video Streams les asigna un número de fragmento único, en orden ascendente. También almacena marcas temporales del lado del productor y del servidor de cada fragmento, como metadatos específicos de Kinesis Video Streams.

Un productor es un término general empleado para referirse a un dispositivo u origen que coloca datos en una transmisión de video de Kinesis. Un productor puede ser cualquier dispositivo que genere videos, como una cámara de seguridad, una cámara que se utilice en prendas de vestir, la cámara de un teléfono o una cámara de tablero. Un productor también puede enviar datos codificados por tiempo que no sean de videos, como transmisiones de audio, imágenes o datos de RADAR. Un productor puede generar una o más transmisiones de video. Por ejemplo, una cámara de vídeo puede enviar datos de vídeo a una transmisión de vídeo de Kinesis y datos de audio a otra.

Los consumidores son aplicaciones personalizadas que consumen y procesan datos en transmisiones de video de Kinesis en tiempo real o después de que los datos se almacenen de forma duradera y se indexen por tiempo cuando no sea necesario un procesamiento de baja latencia. Puede crear estas aplicaciones consumidoras para ejecutar instancias de Amazon EC2. También puede utilizar otros servicios de Amazon AI, como Amazon Rekognition o proveedores de análisis de vídeo de terceros, para procesar las transmisiones de vídeo.

Tras recibir los datos de un productor, Kinesis Video Streams almacena los datos multimedia entrantes como segmentos. Cada segmento está formado por el propio fragmento multimedia, una copia de los metadatos multimedia enviados por el productor y los metadatos específicos de Kinesis Video Streams, como el número de fragmento y las marcas temporales del lado del servidor y del productor. Cuando un consumidor solicita datos multimedia por medio de la operación de la API GetMedia, Kinesis Video Streams devuelve una transmisión de segmentos, empezando por el número de fragmento que haya especificado en la solicitud.

Hay cuatro factores clave que influyen en la latencia en un flujo completo de datos multimedia.

  • El tiempo empleado en la canalización multimedia del hardware del dispositivo: esta canalización puede incluir el sensor de imagen y cualquier codificador de hardware si procede. En teoría, esto puede ser tan breve como la duración de un único fotograma. En la práctica, raramente lo es. Todos los codificadores, para poder funcionar de manera eficiente para la codificación multimedia (compresión) acumularán varios fotogramas para construir un fragmento. Este proceso y cualquier algoritmo de compensación del movimiento que corresponda añadirá desde un segundo hasta varios de latencia en el dispositivo antes de empaquetar los datos para la transmisión.
  • Latencia producida en la transmisión real de los datos en Internet: la calidad del rendimiento de la red y la latencia pueden variar notablemente en función de dónde se encuentre el dispositivo productor.
  • Latencia agregada por Kinesis Video Streams a medida que recibe datos del dispositivo productor: los datos entrantes están disponibles de forma inmediata en la operación de la API GetMedia para cualquier aplicación consumidora. Si opta por conservar los datos, Kinesis Video Streams garantizará que los datos se cifren con AWS Key Management Service (AWS KMS) y generen un índice cronológico de los fragmentos individuales de la transmisión de video. Cuando obtiene acceso a estos datos conservados con la API GetMediaforFragmentList, Kinesis Video Streams recupera los fragmentos del almacenamiento permanente, descifra los datos y los pone a disposición de la aplicación consumidora.
  • Tiempo de latencia de la transmisión de datos al consumidor: puede haber dispositivos consumidores en Internet u otras regiones de AWS que soliciten los datos multimedia. La calidad del rendimiento de la red y la latencia pueden variar notablemente en función de dónde se encuentre el dispositivo consumidor.

Publicación de datos en transmisiones

Puede publicar datos multimedia en una transmisión de video de Kinesis a través de la operación PutMedia o utilizar los SDK productores de Kinesis Video Streams en Java, C++ o Android. Si opta por la operación PutMedia directamente, se encargará de empaquetar la transmisión multimedia de acuerdo con la especificación de datos de Kinesis Video Streams, crear la transmisión, rotar los tokens y otras acciones necesarias para transmitir los datos multimedia de manera fiable a la nube de AWS. Recomendamos el uso de SDK productores para que las tareas resulten más sencillas y pueda empezar a trabajar más rápido.

Kinesis Video Streams proporciona una API PutMedia para escribir datos multimedia en una transmisión de vídeo de Kinesis. En una solicitud PutMedia, el productor envía una transmisión de fragmentos multimedia. A medida que llegan los fragmentos, Kinesis Video Streams les asigna un número de fragmento único, en orden ascendente. También almacena marcas temporales del lado del productor y del servidor de cada fragmento, como metadatos específicos de Kinesis Video Streams.

El SDK productor de Amazon Kinesis Video Streams es un conjunto de bibliotecas fáciles de usar y de configuración muy amplia que puede instalar y personalizar para sus productores específicos. El SDK facilita la creación de una aplicación en un dispositivo que se conecte de forma segura a una transmisión de video, y publica videos y otros datos multimedia de manera fiable en Kinesis Video Streams. Se ocupa de todas las tareas subyacentes que son necesarias para empaquetar los fotogramas y fragmentos generados por la canalización multimedia del dispositivo. Además, el SDK se encarga de la creación de transmisiones, la rotación de tokens para conseguir un streaming seguro e ininterrumpido, de procesar las confirmaciones que devuelve Kinesis Video Streams, entre otras tareas.

El nodo del SDK productor de Kinesis Video Streams está integrado en C, de modo que es eficiente y se puede trasladar a diferentes plataformas de hardware. La mayoría de los desarrolladores preferirán el uso de las versiones para C, C++ o Java del SDK productor de Kinesis Video Streams. También hay una versión para Android del SDK productor para los desarrolladores de aplicaciones móviles que deseen transmitir datos de vídeo desde dispositivos Android.

El SDK productor de Kinesis Video Streams realiza las tareas arduas del empaquetado de fotogramas y fragmentos, establece una conexión segura y transmite videos de manera fiable a AWS. Sin embargo, en ellos se ejecutan muchas variedades distintas de dispositivos de hardware y canalizaciones multimedia. Para facilitar el proceso de integración en la canalización multimedia, recomendamos tener algunos conocimientos de: 1) los límites de los frames, 2) el tipo de frame empleado para los límites, si es un frame incorporado o no, y 3) la marca temporal de codificación del frame.

Lectura de datos de las transmisiones

Puede utilizar la API GetMedia para recuperar contenido multimedia de una transmisión de vídeo de Kinesis. En la solicitud, identifique el nombre de la transmisión o el nombre de recurso de Amazon (ARN) y el segmento de inicio. A continuación, Kinesis Video Streams devolverá una transmisión de segmentos por orden por número de fragmento. Cuando coloca datos multimedia (fragmentos) en una transmisión, Kinesis Video Streams almacena cada fragmento entrante y los metadatos asociados en lo que se denomina "segmento". La API GetMedia devuelve una transmisión de esos segmentos empezando por el que haya especificado en la solicitud.

Puede utilizar la API GetMediaForFragmentList para recuperar datos multimedia de una lista de fragmentos (especificados por el número de fragmento) de los datos archivados en una transmisión de vídeo de Kinesis. Por lo general, una llamada a esta operación de la API va precedida de una llamada a la API ListFragments.

Puede utilizar la API ListFragments para ver una lista de fragmentos de la transmisión de vídeo especificada y la ubicación de inicio (con el número de fragmento o las marcas temporales) de los datos conservados.

Puede almacenar datos en las transmisiones durante todo el tiempo que desee. Kinesis Video Streams le permite configurar el periodo de conservación de los datos para adaptarse a sus requisitos de archivado y almacenamiento.

Con la biblioteca de analizadores de Kinesis Video Streams, los desarrolladores pueden consumir y procesar fácilmente los resultados de la operación GetMedia de Kinesis Video Streams. Los desarrolladores de aplicaciones incluirán la biblioteca en las aplicaciones de análisis y procesamiento de videos que funcionen en transmisiones de video. Las aplicaciones se ejecutarán en sus instancias EC2, aunque se pueden ejecutar en otro lugar. La biblioteca tiene características que facilitan la obtención de un objeto a nivel de fotograma y los metadatos asociados, la extracción y recopilación de metadatos específicos de Kinesis Video Streams vinculados a los fragmentos y fragmentos consecutivos. A continuación, puede crear aplicaciones personalizadas que pueden utilizar con más facilidad los datos de vídeo sin procesar en sus casos de uso.

 

En general, si desea consumir transmisiones de video y manipularlas para que se adapten a las necesidades de su aplicación personalizada, hay que tener en cuenta dos pasos fundamentales. Primero, debe obtener los bytes de un fotograma de la transmisión con formato distribuida por la API GetMedia. Para obtener los objetos del fotograma, puede utilizar la biblioteca de analizadores de transmisiones. Seguidamente, obtenga los metadatos necesarios para descodificar un fotograma, como la altura y el ancho en píxeles, el ID del códec y los datos privados del códec. Esos metadatos están incrustados en los elementos de seguimiento. La biblioteca de analizadores facilita la extracción de esta información proporcionando clases auxiliares para recoger la información de seguimiento de un fragmento.

Los pasos que siguen dependerán en gran medida de la aplicación. Es posible que desee descodificar fotogramas, darles formato para un motor de reproducción, transcodificarlos para la distribución del contenido o trasladarlos al formato de una aplicación personalizada de aprendizaje profundo. La biblioteca de analizadores de transmisiones de Kinesis Video Streams es de código abierto para que la pueda ampliar para sus casos de uso concretos.

Reproducir videos a partir de transmisiones

Puede usar Amazon Kinesis Video Streams’ HTTP Live Streams (HLS) y Dynamic Adaptive Streaming a través de las capacidades de HTTP (DASH) para reproducir el video incorporado en formato envasado de MPEG_TS o MP4 fragmentado. HLS y DASH son protocolos de streaming de contenido de medios basado en HTTP que es estándar en la industria. A medida que registra videos a partir de dispositivos que usen Amazon Kinesis Video Streams, puede usar las API de HLS o DASH para reproducir videos en directo o grabados. Esta capacidad está completamente administrada, por lo que no es necesario crear ninguna infraestructura basada en la nube para admitir la reproducción de videos. Para la transmisión de medios bidireccional y la reproducción de baja latencia, consulte las preguntas frecuentes sobre la transmisión basada en WebRTC.

Para poder ver una transmisión de video de Kinesis con HLS o DASH, primero debe crear una sesión de streaming mediante GetHLSStreamingSessionURL o GetDASHStreamingSessionURL. Esta acción devuelve una URL (con el token de una sesión) para obtener acceso a la sesión de HLS o DASH, que luego puede usar en un reproductor multimedia o en una aplicación independiente para reproducir la transmisión. Si desea usar un reproductor de terceros (como Video.js o Google Shaka Player) para mostrar la transmisión del video, debe suministrar la URL de la sesión de streaming de HLS o DASH, manualmente o mediante programación. También puede introducir la URL de la sesión de streaming de HLS o DASH en la barra de ubicaciones de los navegadores Apple Safari o Microsoft Edge para reproducir el video. Además, también puede usar los reproductores de video de Android (Exoplayer) e iOS (AVMediaPlayer) para dispositivos móviles.

Una transmisión de video de Amazon Kinesis tiene los siguientes requisitos para suministrar datos a través de HLS:

  • Los medios deben contener un video cifrado de h.264 o h.265 y, opcionalmente, audio cifrado AAC. Específicamente, el ID de códec de la pista 1 debe ser V_MPEG/ISO/AVC para h.264 o V_MPEG/ISO/HEVC para h.265. Opcionalmente, el ID del códec de la pista 2 debería ser A_AAC.
  • La pista de video de cada fragmento debe incluir datos privados de códec en la AVC (codificación avanzada de videos) para el formato h.264 o HEVC para el formato h.265 (especificación MPEG-4 de ISO/IEC 14496-15). Si desea obtener más información sobre cómo adaptar datos de transmisiones a un determinado formato, consulte Referencia de marcas de adaptación de capa de abstracción de red (NAL).
  • La retención de datos debe ser superior a 0.
  • La pista de audio (si hay una) de cada fragmento debe contener datos privados del códec en formato AAC (especificación AAC ISO/IEC 13818-7).

Una transmisión de video de Amazon Kinesis tiene los siguientes requisitos para suministrar datos a través de DASH:

  • Los medios deben contener un video cifrado de h.264 o h.265 y, opcionalmente, audio cifrado AAC o G.711. Específicamente, el ID de códec de la pista 1 debe ser V_MPEG/ISO/AVC para h.264 o V_MPEGH/ISO/HEVC (para H.265). Como opción, el ID del códec de la pista 2 debe ser A_AAC (para AAC) o A_MS/ACM (para G.711).
  • La pista de video de cada fragmento debe incluir datos privados de códec en la AVC (codificación avanzada de videos) para el formato H.264 y HEVC para el formato H.265. Para obtener más información, consulte la Especificación MPEG-4 ISO/IEC 14496-15. Si desea obtener más información sobre cómo adaptar datos de transmisiones a un determinado formato, consulte Referencia de marcas de adaptación de capa de abstracción de red (NAL).
  • La retención de datos debe ser superior a 0.
  • La pista de audio (si hay una) de cada fragmento debe contener datos privados del códec en formato AAC (especificación AAC ISO/IEC 13818-7) o el formato MS Wave.

Existen dos modos de reproducción diferentes compatibles con HLS y DASH en directo y bajo demanda.

EN DIRECTO: para sesiones en directo, la lista de reproducción de contenido multimedia HLS se actualiza continuamente con los fragmentos más recientes a medida que están disponibles. Cuando este tipo de sesión se reproduce en un reproductor multimedia, normalmente la interfaz del usuario muestra una notificación "en directo", sin control de limpieza para elegir la ubicación de visualización en la ventana de reproducción.

BAJO DEMANDA: en el modo bajo demanda, la lista de reproducción de contenido multimedia HLS incluye todos los fragmentos para la sesión, hasta el número que se especifica en MaxMediaPlaylistFragmentResults. La lista de reproducción solo se puede recuperar una vez por sesión.

Además, HLS también admite la reproducción en modo LIVE_REPLAY. En este modo, la lista de reproducción de medios de HLS se actualiza de manera similar a cómo se actualiza para el modo LIVE excepto que inicia incluyendo fragmentos desde un tiempo de inicio determinado. Este modo es útil para casos en que desea comenzar la reproducción desde un punto en el pasado de medios almacenados y continuar con la transmisión en vivo.

La latencia de la reproducción en directo normalmente varía entre 3 y 5 segundos, pero puede cambiar. Le recomendamos enfáticamente que ejecute sus propias pruebas y pruebas de concepto para determinar el valor de latencia meta. Existe una variedad de factores que afectan las latencias, incluido el caso de uso, la manera en la que el productor genera los fragmentos de videos, el tamaño del fragmento de video, el ajuste del reproductor y las condiciones de la red para el streaming hacia y desde AWS a los fines de reproducir contenido. Para la reproducción de baja latencia, consulte las preguntas frecuentes sobre la transmisión basada en WebRTC.

Una transmisión de video de Kinesis admite un máximo de diez sesiones de transmisión HLS o DASH activas. Si se crea una sesión nueva cuando ya se alcanzó el número máximo de sesiones, la sesión que se creó con mayor anterioridad se cierra. El número de conexiones GetMedia activas en una transmisión de video de Kinesis no se computa para este límite y el número de sesiones HLS activas no se aplica para el límite de conexión GetMedia activa. Para obtener más información, consulte límites de Kinesis Video Streams.

AWS Elemental MediaLive es un servicio de codificación de videos en directo para emisión. Le permite crear transmisiones de videos en alta calidad para entregar a emisiones televisivas y a dispositivos con varias pantallas conectados a Internet, como televisores conectados, tablets, teléfonos inteligentes y decodificadores. El servicio funciona de manera independiente o como parte de AWS Media Services.

Amazon Kinesis Video Streams facilita la transmisión segura de videos desde dispositivos conectados a AWS para tareas de análisis, aprendizaje automático (ML), reproducción de videos y otros procesos basados en lote y ejecutados en tiempo real. Permite a los clientes crear aplicaciones basadas en visión artificial que se utilicen en hogares inteligentes, ciudades inteligentes, automatización industrial, monitoreo de seguridad, entre otros.

Kinesis Video Streams aplica un modelo de precios sencillo de pago por uso. No hay costos iniciales y solo paga por los recursos que usa. Los precios de Kinesis Video Streams están basados en el volumen de datos (GB) incorporado, el volumen de datos consumidos (GB), incluidos aquellos mediante la API HLS o DASH, y los datos almacenados (GB/mes) de todas las transmisiones de video de su cuenta. Consulte la página de precios para obtener más detalles.
 

¿Qué es el Amazon Kinesis Video Streams Edge Agent?

El Kinesis Video Streams Edge Agenes un conjunto de bibliotecas fáciles de usar y altamente configurables que puede instalar y personalizar para el almacenamiento de vídeo local y la carga programada en la nube. Puede descargar el agente periférico e implementarlo en sus dispositivos informáticos periféricos locales. Como alternativa, puede implementarlo fácilmente en contenedores de Docker que se ejecuten en máquinas de Amazon EC2. Una vez implementado, podrá utilizar las API de Amazon Kinesis Video Streams para actualizar las configuraciones de grabación de video y carga en la nube. La función funciona con cualquier cámara IP que pueda transmitir a través del protocolo RTSP y no requiere el despliegue de firmware adicional en las cámaras. Ofrecemos las instalaciones del Amazon Kinesis Video Streams Edge Agent en dispositivos AWS Snowball Edge, como un componente de AWS Greengrass o en un despliegue nativo de IoT. Para acceder al Amazon Kinesis Video Streams Edge Agent, consulte aquí.

Transmisión de medios de baja latencia y bidireccional con WebRTC

WebRTC es una especificación de tecnología abierta para permitir la comunicación en tiempo real (RTC) entre navegadores y aplicaciones móviles a través de API simples. Aprovecha las técnicas de emparejamiento para el intercambio de datos en tiempo real entre pares conectados y proporciona la baja latencia de transmisión de medios que se requiere para interacciones entre humanos. La especificación de WebRTC incluye un conjunto de protocolos IETF que incluyen Interactive Connectivity Establishment (ICE RFC5245), Traversal Using Relay around NAT (TURN RFC5766) y Session Traversal Utilities for NAT (STUN RFC5389) para establecer la conectividad entre pares, además de las especificaciones del protocolo para los medios en tiempo real y la secuencia de datos. Kinesis Video Streams proporciona una implementación de WebRTC conforme con las normas, como capacidad completamente administrada. Puede usar esta capacidad para transmitir medios en vivo de manera segura o para realizar interacciones bidireccionales de audio o video entre cualquier dispositivo IoT con cámara y reproductores web o móviles conformes con WebRTC. Al ser una capacidad completamente administrada, no tiene que construir, operar o adaptar ninguna infraestructura en la nube relacionada con WebRTC como la señalización o los servidores retransmisores de medios para transmitir medios de manera segura por las aplicaciones y los dispositivos.

Kinesis Video Streams suministra puntos de enlace para la señalización de WebRTC que permite a las aplicaciones conectarse de manera segura entre sí a fin de transmitir medios en vivo entre pares. Luego, incluye puntos de enlace administrados para TURN que habilitan la retransmisión de medios a través de la nube cuando las aplicaciones no pueden transmitir medios entre pares. También incluye puntos de enlace administrados para STUN que habilitan a las aplicaciones para descubrir su dirección de IP pública cuando se encuentran detrás de NAT o de un firewall. Además, proporciona SDK fáciles de usar para habilitar los dispositivos IoT con cámara con capacidades WebRTC. Por último, brinda SDK de cliente para Android, iOS y para aplicaciones web a fin de que integren las capacidades de señalización de Kinesis Video Streams WebRTC, TURN y STUN con cualquier reproductor web o móvil conforme con WebRTC.

Con Kinesis Video Streams WebRTC, puede crear fácilmente aplicaciones para la interactividad de audio y video en tiempo real o en transmisión de medios entre dispositivos IoT con cámara, navegadores web y dispositivos móviles para casos de uso, tales como ayudar a los padres a cuidar al bebé que se encuentra en su habitación, permitir que los dueños de la casa usen un timbre con video para verificar quién está en la puerta, permitir que los dueños de las aspiradoras robóticas con cámara controlen de manera remota el robot mirando la transmisión de la cámara en vivo desde su teléfono y mucho más.

Puede comenzar creando y ejecutando las aplicaciones de muestra en los SKD de Kinesis Video Streams para WebRTC disponibles para los dispositivos móviles basados en navegadores web, Android o iOS, así como para dispositivos IoT basados en Linux, Raspbian y MacOS. También puede ejecutar una demostración rápida de esta capacidad en la consola de administración de Kinesis Video Streams creando un canal de señalización y ejecutando la aplicación de demostración para que transmita audio y video en vivo desde la cámara y el micrófono integrados en su computadora portátil.

Un canal de señalización es un recurso que permite que las aplicaciones descubran, configuren y terminen una conexión entre pares intercambiando mensajes de señalización. Los mensajes de señalización son metadatos que dos aplicaciones intercambian entre sí para establecer la conectividad entre pares. Estos metadatos incluyen información de medios locales tales como códecs de medios y parámetros de códec, y posibles rutas de candidatos de red para que las dos aplicaciones se conecten entre sí para transmitir en vivo.

Las aplicaciones de transmisión pueden mantener la conectividad persistente con un canal de señalización y esperar que otras aplicaciones se conecten a ellas o que se pueden conectar a un canal de señalización únicamente cuando requieren medios de transmisión en vivo. El canal de señalización permite que las aplicaciones se conecten entre sí de un modelo de uno a varios utilizando el concepto de un maestro que se conecta a varios espectadores. La aplicación que inicia la conexión supone la responsabilidad de un maestro a través de la API ConnectAsMaster y espera a los espectadores. Luego, se puede conectar hasta 10 aplicaciones a ese canal de señalización suponiendo la responsabilidad del espectador a través de la API ConnectAsViewer. Una vez conectado al canal de señalización, las aplicaciones de maestro y espectador pueden enviarse mensajes de señalización entre sí para establecer la conectividad entre pares para la transmisión de medios en vivo.

Las aplicaciones usan el punto de enlace Kinesis Video Streams STUN para descubrir su dirección de IP pública cuando se encuentran detrás de NAT o de un firewall. Una aplicación proporciona su dirección de IP pública como posible ubicación en la que puede recibir solicitudes de conexión de otras aplicaciones para la transmisión en vivo. La opción predeterminada para toda la comunicación WebRTC es la conectividad entre pares, pero si el NAT o el firewall no permiten la conectividad directa (por ejemplo, en caso de NAT simétricos), las aplicaciones pueden conectarse a los puntos de enlace Kinesis Video Streams TURN para los medios de transmisión a través de la nube. La API GetIceServerConfig proporciona la información necesaria sobre el punto de enlace TURN que la aplicación puede usar en su configuración WebRTC. Esta configuración permite que las aplicaciones usen la transmisión TURN como respaldo cuando no pueden establecer una conexión directa entre pares para la transmisión en vivo.

El cifrado integral es una característica obligatoria de WebRTC, y Kinesis Video Streams lo hace cumplir en todos los componentes, incluida la señalización y la transmisión de medios o datos. Independientemente de si la comunicación se establece entre pares o se transmite a través de los puntos de enlace Kinesis Video Streams TURN, todas las comunicaciones WebRTC están cifradas de manera segura a través de protocolos de cifrado estandarizados. Los mensajes de señalización se intercambia utilizando Websockets (WSS) seguros, las transmisiones de datos se cifran mediante Datagram Transport Layer Security (DTLS) y las transmisiones de medios se cifran mediante Secure Real-time Transport Protocol (SRTP).

Consola

La consola de administración de Kinesis Video Streams le permite crear, actualizar, administrar y monitorizar sus transmisiones de video. También puede reproducir sus transmisiones multimedia en directo o bajo demanda, siempre que el contenido de las transmisiones sea de un tipo de archivo multimedia admitido. Con los controladores del reproductor, puede ver la transmisión en directo, avanzar o retroceder 10 segundos, utilizar el selector de fecha y hora para retroceder hasta un punto del pasado en el que haya establecido el período de conservación correspondiente de la transmisión de video. Las funciones de reproducción de vídeo de la consola de administración de Kinesis Video Streams se presentan como una herramienta rápida de diagnóstico para situaciones de desarrollo y pruebas para los desarrolladores que creen soluciones con Kinesis Video Streams.

El único tipo de archivo multimedia de video que puede reproducir la consola de administración de Kinesis Video Streams es el conocido formato H.264. Este formato de archivo multimedia suele ser admitido en los dispositivos, los codificadores de hardware y software y los motores de reproducción. Mientras que usted puede incorporar cualquier variedad de vídeo, audio u otros tipos de datos personalizados codificados por tiempo en sus propias aplicaciones consumidoras y casos de uso, la consola de administración no reproducirá esos otros tipos de datos.

Con un productor que transmita datos de video a la transmisión de video, se generará un retraso de 2 a 10 segundos en la reproducción en directo en la consola de administración de Kinesis Video Streams. La mayoría de la latencia viene añadida por el dispositivo productor, ya que acumula fotogramas en fragmentos antes de transmitir los datos por Internet. Cuando los datos se introducen en el punto de enlace de Kinesis Video Streams y usted solicita la reproducción, la consola obtendrá los fragmentos del tipo de archivo multimedia H.264 del almacenamiento permanente, empaquetará los fragmentos en un formato de archivo multimedia adecuado para reproducirlo en distintos navegadores de Internet. A continuación, el contenido multimedia empaquetado se transferirá a la ubicación en la que solicitó la reproducción desde Internet.

Cifrado

El cifrado del lado del servidor es una característica de Kinesis Video Streams que cifra los datos automáticamente antes de que entren en reposo con la clave de AWS KMS que especifique. Los datos se cifran antes de escribirlos en la capa de almacenamiento de Kinesis Video Streams, y se descifran tras recuperarlos del almacén. En consecuencia, los datos siempre están cifrados cuando están en reposo en el servicio de Kinesis Video Streams.

El cifrado del lado del servidor siempre está habilitado en las transmisiones de video de Kinesis. Si no se especifica ninguna clave proporcionada por el usuario al crear la transmisión, se utilizará la clave predeterminada (proporcionada por Kinesis Video Streams).

Al crear una transmisión de Kinesis Video Streams, se le debe asignar una clave de AWS KMS proporcionada por el usuario. Posteriormente, no se puede asignar otra clave a una transmisión con la API UpdateStream.

Hay dos formas de asignar una clave de AWS KMS proporcionada por el usuario a una transmisión de video de Kinesis: al crear una transmisión de video de Kinesis en la consola, especifique la clave de AWS KMS en la sección Cifrado de la página Crear nueva transmisión de video de Kinesis. O bien, al crear una transmisión de Kinesis Video Streams con la API CreateStream, especifique el ID de clave en el parámetro KmsKeyId.

Al aplicar el cifrado del lado del servidor, está sujeto a los costos de uso y claves de las API de AWS KMS. A diferencia de las claves personalizadas de AWS KMS, la clave KMS (predeterminada) aws/kinesis-video se ofrece de forma gratuita. Sin embargo, tendrá que pagar los costos de uso de las API que Kinesis Video Streams genere en su nombre. Los costos de las API para cada clave KMS, incluidas las personalizadas. Kinesis Video Streams llama a AWS KMS aproximadamente cada 45 minutos cuando está rotando la clave de datos. En un mes de 30 días, el costo total de llamadas a la API de AWS KMS que inicia una transmisión de Kinesis Video Streams debería ser menos que un par de dólares. Este costo aumenta con la cantidad de credenciales de usuarios que use en sus productores y consumidores de datos porque cada credencial de usuario requiere una llamada a la API única a AWS KMS.

Precios y facturación

No. En la actualidad, Amazon Kinesis Video Streams no está disponible en la capa gratuita de AWS.

Kinesis Video Streams aplica un modelo de precios sencillo de pago por uso. No hay costos iniciales ni cuotas mínimas y solo tendrá que pagar por los recursos que consuma. Los precios de Kinesis Video Streams están basados en el volumen de datos (GB) consumido, el volumen de los datos consumidos (GB) y los datos almacenados (GB/mes) de todas las transmisiones de vídeo de su cuenta.

Además, Kinesis Video Streams solo cobrará los datos multimedia que reciba correctamente, con un tamaño de segmento mínimo de 4 KB. A título comparativo, una muestra de audio de 64 kbps tiene un tamaño de 8 KB, de modo que el tamaño de segmento mínimo está establecido lo suficientemente bajo para adaptarse a las transmisiones más pequeñas de audio o vídeo.

Kinesis Video Streams le cobrará el total de los datos almacenados de forma permanente en cualquier transmisión. El total de los datos almacenados por transmisión de vídeo se puede controlar mediante las horas de retención.

Por utilizar la capacidad Amazon Kinesis Video Streams WebRTC, paga la cantidad de canales de señalización que están activos en un determinado mes, la cantidad de mensajes de señalización que se envían y se reciben, y los minutos de transmisión TURN utilizados para transmitir medios. Se considera que un canal de señalización es activo en un mes, si en algún momento durante el mes un dispositivo o una aplicación se conecta a él. Los minutos de streaming TURN se miden en incrementos de 1 minuto. Consulte la página de precios para obtener más detalles.

Acuerdo de nivel de servicio

Mediante el acuerdo de nivel de servicio de Amazon Kinesis Video Streams se garantiza un porcentaje de tiempo de funcionamiento mensual de al menos 99,9 % para Amazon Kinesis Video Streams.

Será elegible para recibir crédito del acuerdo para Amazon Kinesis Video Streams bajo el acuerdo de Amazon Kinesis Video Streams si más de una zona de disponibilidad en las que ejecuta una tarea, dentro de la misma región, tiene un porcentaje de tiempo de funcionamiento mensual inferior al 99,9 % durante cualquier ciclo de facturación mensual.

Para obtener información completa sobre los términos y las condiciones del acuerdo, así como detalles sobre cómo enviar una reclamación, consulte la página con detalles del acuerdo de Amazon Kinesis Video Streams.