Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Cree un canal de procesamiento de vídeo con Amazon Kinesis Video Streams AWS y Fargate
Creado por Piotr Chotkowski () y Pushparaju Thangavel () AWS AWS
Entorno: PoC o piloto | Tecnologías: análisis; servicios multimedia | AWSservicios: AWS Fargate; Amazon Kinesis; Amazon S3 |
Resumen
Este patrón muestra cómo utilizar Amazon Kinesis Video
El patrón proporciona una aplicación de muestra en forma de proyecto Java Maven. Esta aplicación define la AWS infraestructura mediante el AWSCloud Development Kit
Requisitos previos y limitaciones
Requisitos previos
Una AWS cuenta activa
Kit de desarrollo Java SE (JDK) 11, instalado
Apache Maven
, instalado AWSKit Cloud Development Kit (AWSCDK), instalado
AWSInterfaz de línea de comandos (AWSCLI) versión 2, instalada
Docker
(necesario para crear imágenes de Docker para usarlas en las definiciones de tareas de AWS Fargate), instalado
Limitaciones
Este patrón está concebido como prueba de concepto o como base para un desarrollo futuro. No se debe utilizar en su forma actual para implementaciones de producción.
Versiones de producto
Arquitectura
Pila de tecnología de destino
Amazon Kinesis Video Streams
AWSTarea Fargate
cola de Amazon Simple Queue Service (AmazonSQS)
Bucket S3 de Amazon
Arquitectura de destino
El usuario crea una transmisión de vídeo de Kinesis, carga un vídeo y envía un JSON mensaje con detalles sobre la transmisión de vídeo de Kinesis de entrada y el bucket de S3 de salida a una cola. SQS AWSFargate, que ejecuta la aplicación principal en un contenedor, extrae el mensaje de la SQS cola y comienza a extraer fotogramas. Cada fotograma se guarda en un archivo de imagen y se almacena en el bucket de S3 de destino.
Automatizar y escalar
La aplicación de ejemplo puede escalarse horizontal y verticalmente dentro de una sola región. AWS El escalado horizontal se puede lograr aumentando el número de tareas de AWS Fargate desplegadas que se leen de la SQS cola. El escalado vertical se puede lograr aumentando el número de subprocesos de división de fotogramas y publicación de imágenes en la aplicación. Estos ajustes se transfieren como variables de entorno a la aplicación en la definición del QueueProcessingFargateServicerecurso en el. AWS CDK Debido a la naturaleza de la implementación en AWS CDK pilas, puede implementar esta aplicación en varias AWS regiones y cuentas sin ningún esfuerzo adicional.
Herramientas
Herramientas
AWSCDK
es un marco de desarrollo de software para definir la infraestructura y los recursos de la nube mediante lenguajes de programación como Python TypeScript JavaScript, Java y C#/.Net. Amazon Kinesis Video
Streams es un servicio totalmente AWS gestionado que puede utilizar para transmitir vídeo en directo desde los dispositivos a AWS la nube o crear aplicaciones para el procesamiento de vídeo en tiempo real o el análisis de vídeo orientado a lotes. AWSFargate
es un motor de cómputo sin servidor para contenedores. Fargate elimina la necesidad de aprovisionar y administrar servidores y le permite centrarse en el desarrollo de sus aplicaciones. Amazon S3
: es un servicio de almacenamiento de objetos de AWS que ofrece escalabilidad, disponibilidad de datos, seguridad y rendimiento. Amazon SQS
es un servicio de cola de mensajes totalmente gestionado que le permite desacoplar y escalar microservicios, sistemas distribuidos y aplicaciones sin servidor.
Código
Se adjunta un archivo .zip del proyecto de la aplicación de muestra (
frame-splitter-code.zip
).
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Iniciar el daemon de Docker. | Inicie el daemon de Docker en su sistema local. AWSCDKUtiliza Docker para crear la imagen que se utiliza en la tarea AWS Fargate. Debe ejecutar Docker antes de continuar con el siguiente paso. | Desarrollador, ingeniero DevOps |
Compilar el proyecto. | Descargue la aplicación de muestra
| Desarrollador, DevOps ingeniero |
Bootstrap el AWSCDK. | (Solo para AWS CDK usuarios primerizos) Si es la primera vez que usa el AWSCDK, puede que tenga que arrancar el entorno ejecutando el comando: AWS CLI
donde | Desarrollador, DevOps ingeniero |
Despliegue la AWS CDK pila. | En este paso, debe crear los recursos de infraestructura necesarios (SQScola, depósito de S3, definición de tareas de AWS Fargate) en AWS su cuenta, crear la imagen de Docker necesaria para la tarea de AWS Fargate e implementar la aplicación. En el símbolo del sistema, navegue hasta el directorio raíz del proyecto y ejecute el comando:
donde se encuentra | Desarrollador, DevOps ingeniero |
Cree una transmisión de video. | En este paso, creará una transmisión de video de Kinesis que servirá como transmisión de entrada para el procesamiento de video. Asegúrese de tener el AWS CLI instalado y configurado. En el AWSCLI, ejecute:
donde Como alternativa, puede crear una transmisión de video mediante la consola de Kinesis siguiendo los pasos indicados en la documentación de Kinesis Video Streams. Anote el nombre del AWS recurso (ARN) de la transmisión creada; lo necesitará más adelante. | Desarrollador, DevOps ingeniero |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Subir el video a la transmisión. | En la carpeta del proyecto de la aplicación de muestra
Como alternativa, puede cargar el video mediante uno de los métodos descritos en la documentación de Kinesis Video Streams. | Desarrollador, DevOps ingeniero |
Iniciar el procesamiento de video. | Ahora que ha cargado un video a la transmisión de video de Kinesis, puede empezar a procesarlo. Para iniciar la lógica de procesamiento, debe enviar un mensaje con detalles a la SQS cola que se AWS CDK creó durante el despliegue. Para enviar un mensaje mediante el AWSCLI, ejecute:
donde
donde Al enviar este mensaje, se inicia el procesamiento del video. Como alternativa, puedes enviar un mensaje a través de la SQS consola de Amazon, tal y como se describe en la SQSdocumentación de Amazon. | Desarrollador, DevOps ingeniero |
Ver imágenes de los fotogramas de video. | Puede ver las imágenes resultantes en el segmento de salida de S3, | Desarrollador, DevOps ingeniero |
Recursos relacionados
Información adicional
Elegir un IDE
Le recomendamos que utilice su Java favorito IDE para crear y explorar este proyecto.
Limpieza
Cuando termine de ejecutar este ejemplo, elimine todos los recursos desplegados para evitar incurrir en costes de AWS infraestructura adicionales.
Para eliminar la infraestructura y la transmisión de vídeo, utilice estos dos comandos en: AWS CLI
cdk destroy --profile "$AWS_PROFILE_NAME" --all
aws kinesisvideo --profile "$AWS_PROFILE_NAME" delete-stream --stream-arn "$STREAM_ARN"
Como alternativa, puede eliminar los recursos manualmente utilizando la AWS CloudFormation consola para eliminar la AWS CloudFormation pila y la consola Kinesis para eliminar la transmisión de vídeo de Kinesis. Tenga en cuenta que cdk destroy
esto no elimina el depósito S3 de salida ni las imágenes de los repositorios de Amazon Elastic Container Registry (AmazonECR) (aws-cdk/assets
). Debe eliminarlos manualmente.
Conexiones
Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip