Aspectos generales

P: ¿Qué es Amazon Kinesis Video Streams?

Amazon Kinesis Video Streams facilita la transmisión segura de vídeo desde dispositivos conectados a AWS para análisis, aprendizaje automático 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 vídeo de millones de dispositivos. También almacena, cifra e indexa de forma duradera datos de vídeo en sus transmisiones, y le permite acceder a sus datos mediante sencillas API. 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 y bibliotecas de marcos de aprendizaje automático, como Apache MxNet, TensorFlow u OpenCV.

P: ¿Qué son los datos codificados por tiempo?

Los datos codificados por tiempo son los datos cuyos registros siguen un orden cronológico; y cada registro está relacionado con los registros anteriores y posteriores. El vídeo es un ejemplo de dato codificado por tiempo, en el que cada frame está relacionado con los frames anteriores y posteriores mediante transformaciones espaciales. Otros ejemplos de datos codificados por tiempo son el audio y las señales de RADAR y LIDAR. Amazon Kinesis Video Streams está específicamente diseñado para incorporar y almacenar de forma rentable y eficaz todo tipo de datos codificados por tiempo para análisis y casos de uso de aprendizaje automático.

P: ¿Cuáles son los casos de uso común de Kinesis Video Streams?

Kinesis Video Streams es perfecto para crear aplicaciones de aprendizaje automático habilitadas para visión artificial que predominan en una amplia variedad de casos de uso como los siguientes:

Hogar inteligente

Con Kinesis Video Streams, puede transmitir vídeo y audio fácilmente desde dispositivos domésticos con cámara, como monitores de bebé, 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 vídeo 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 y analizar de forma segura y rentable este enorme volumen de datos de vídeo para ayudarle a resolver problemas de tráfico, evitar delitos, enviar equipos de emergencia, etc.

Automatización industrial

Puede utilizar Kinesis Video Streams para recoger 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 o 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.

P: ¿Qué administra Amazon Kinesis Video Streams por mí?

Amazon Kinesis Video Streams es un servicio de incorporación y almacenamiento de vídeo completamente administrado. Le permite incorporar, procesar y almacenar vídeo de forma segura a cualquier escala para aplicaciones que alimentan robots, ciudades inteligentes, automatización industrial, monitorización de seguridad, aprendizaje automático, etc. Kinesis Video Streams también incorpora otros tipos de datos codificados por tiempo, como audio o señales de RADAR y LIDAR. Kinesis Video Streams proporciona SDK que instalar en sus dispositivos para que sea más fácil transmitir vídeo a AWS de forma segura. Kinesis Video Streams aprovisiona automáticamente y escala de manera elástica toda la infraestructura necesaria para incorporar transmisiones de vídeo de millones de dispositivos. También almacena, cifra e indexa de manera duradera las transmisiones de vídeo y proporciona API fáciles de utilizar para que las aplicaciones puedan tener acceso y recuperen fragmentos de vídeo 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 vídeo 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

P: ¿Qué es una transmisión de vídeo?

Una transmisión de vídeo es un recurso que le permite obtener vídeo 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 elija almacenar datos en la transmisión de vídeo, 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 vídeo 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.

P: ¿Qué es un fragmento?

Un fragmento es una secuencia autocontenida de frames. Los frames que pertenecen a un fragmento no deben depender de frames de otros fragmentos. Según 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.

P: ¿Qué es un productor?

Un productor es un término general empleado para referirse a un dispositivo u origen que coloca datos en una transmisión de vídeo de Kinesis. Un productor puede ser cualquier dispositivo que genere vídeo, como una cámara de seguridad, una cámara corporal, la cámara de un teléfono o una cámara de salpicadero. Un productor también puede enviar datos codificados por tiempo que no sean de vídeo, como transmisiones de audio, imágenes o datos de RADAR. Un productor puede generar una o más transmisiones de vídeo. 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.

P: ¿Qué es un consumidor?

Los consumidores son sus aplicaciones personalizadas que consumen y procesan datos en transmisiones de vídeo de Kinesis en tiempo real o después de que los datos se almacenen de forma duradera y se indicen 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.

P: ¿Qué es un segmento?

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.

P: ¿Cómo tengo en cuenta la latencia en Amazon Kinesis Video Streams?

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 frame. En la práctica, raramente lo es. Todos los codificadores, para poder trabajar de manera eficiente para la codificación multimedia (compresión) acumularán varios frames 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 añadida 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 elige 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 vídeo. Cuando accede 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.

Finalmente, la consola de administración de Kinesis Video Streams recupera el tipo de archivo multimedia compatible H.264, lo empaqueta para distintos navegadores y le permite reproducir transmisiones con fines de desarrollo o pruebas.

Publicación de datos en transmisiones

P: ¿Cómo publico datos en mi transmisión de vídeo de Kinesis?

Puede publicar datos multimedia en una transmisión de vídeo de Kinesis a través de la operación de PutMedia o utilizar los SDK productores de Kinesis Video Streams en Java, C++ o Android. Si opta por la operación de 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.

P: ¿Qué es la operación de PutMedia de Kinesis Video Streams?

Kinesis Video Streams proporciona una API PutMedia para escribir datos multimedia en una transmisión de vídeo de Kinesis. En una solicitud de PutMedia, el productor envía una transmisión de fragmentos multimedia. Según 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.

P: ¿Qué es el SDK productor de Kinesis Video Streams?

El SDK productor de Amazon Kinesis Video Streams es un conjunto de bibliotecas fáciles de usar y muy configurables 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 vídeo, y publica vídeo y otros datos multimedia de manera fiable en Kinesis Video Streams. Se ocupa de todas las tareas asociadas que son necesarias para empaquetar los frames 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.

P: ¿En qué plataformas de programación está disponible el SDK productor de Kinesis Video Streams?

El nodo del SDK productor de Kinesis Video Streams está integrado en C, de modo que es eficiente y se puede trasladar a una variedad de plataformas de hardware. La mayoría de desarrolladores preferirán el uso de las versiones 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.

P: ¿Qué debo tener presente antes de empezar a trabajar con el SDK productor de Kinesis Video Streams?

El SDK productor de Kinesis Video Streams realiza todo el trabajo pesado del empaquetado de frames y fragmentos, establece una conexión segura y transmite vídeo 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

P: ¿Qué es la API GetMedia?

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

P: ¿Qué es la API GetMediaForFragmentList?

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.

P: ¿Qué es 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.

P: ¿Durante cuánto tiempo puedo almacenar datos en Kinesis Video Streams?

Puede almacenar datos en las transmisiones 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.

P: ¿Qué es la biblioteca de analizadores de Kinesis Video Streams?

Con la biblioteca de analizadores de Kinesis Video Streams, los desarrolladores pueden consumir y procesar fácilmente los resultados de la operación de GetMedia de Kinesis Video Streams. Los desarrolladores de aplicaciones incluirán la biblioteca en las aplicaciones de análisis y procesamiento de vídeo que funcionan en transmisiones de vídeo. Las propias 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 frame y los metadatos asociados, la extracción y recogida 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.

P: Si tengo una aplicación de procesamiento personalizada que tiene que utilizar los frames (y fragmentos) de la transmisión de vídeo de Kinesis, ¿cómo lo hago?

En general, si desea consumir transmisiones de vídeo 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 frame de la transmisión con formato distribuida por la API GetMedia. Para obtener los objetos del frame, puede utilizar la biblioteca de analizadores de transmisiones. Seguidamente, obtenga los metadatos necesarios para descodificar un frame, como la altura y anchura 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. Puede que desee descodificar frames, 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.

Consola

P: ¿Qué es la consola de administración de Kinesis Video Streams?

La consola de administración de Kinesis Video Streams le permite crear, actualizar, administrar y monitorizar sus transmisiones de vídeo. 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 periodo de conservación correspondiente de la transmisión de vídeo. 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.

P: ¿Qué tipo de archivo multimedia admite la consola?

El único tipo de archivo multimedia de vídeo 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.

P: ¿Qué retraso lleva la reproducción de vídeo en la consola de administración de Kinesis Video Streams?

Con un productor que transmita datos de vídeo a la transmisión de vídeo, sufrirá 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 frames 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

P: ¿Qué es el cifrado del lado del servidor de Kinesis Video Streams?

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 maestra de cliente de AWS KMS (CMK) 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.

P: ¿Cómo puedo comenzar a utilizar el cifrado del lado del servidor?

El cifrado del lado del servidor siempre está habilitado en las transmisiones de vídeo 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 maestra 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 maestra de AWS KMS proporcionada por el usuario a una transmisión de vídeo de Kinesis: al crear una transmisión de vídeo de Kinesis en la consola, especifique la clave maestra de AWS KMS en la sección Cifrado de la página Crear nueva transmisión de vídeo 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.

P: ¿Cuánto cuesta el uso del cifrado del lado del servidor?

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 maestras personalizadas de AWS KMS, la clave maestra de cliente (predeterminada) aws/kinesis-video (CMK) se ofrece de forma gratuita. Sin embargo, tendrá que pagar los costos de uso de las API en los que incurra Kinesis Video Streams en su nombre. Los costos de las API para cada CMK, 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 de 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

P: ¿Está disponible Amazon Kinesis Video Streams en la capa gratuita de AWS?

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

P: ¿Cuánto cuesta Kinesis Video Streams?

Kinesis Video Streams aplica un modelo sencillo de precios por uso. No precisa 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.

P: ¿Cómo factura Kinesis Video Streams los datos almacenados en las transmisiones?

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.

Más información sobre los precios de Amazon Kinesis Video Streams

Visite la página de precios
¿Listo para comenzar?
Inscribirse
¿Tiene más preguntas?
Contacte con nosotros