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.
Extrae imágenes de transmisiones de vídeo
Puede utilizar Amazon Kinesis Video APIs Streams SDKs para ayudarle a extraer imágenes de sus transmisiones de vídeo. Puede utilizar estas imágenes para aplicaciones de reproducción mejoradas, como miniaturas o depuración mejorada, o para utilizarlas en procesos de aprendizaje automático. Kinesis Video Streams ofrece la extracción de imágenes bajo demanda mediante API una extracción automática de imágenes a partir de etiquetas de metadatos de un vídeo ingerido.
Para obtener información sobre el uso del soporte gestionado de Kinesis Video Streams para imágenes, consulte:
Generación de imágenes bajo demanda (GetImages): API permite a los clientes extraer una o varias imágenes del vídeo almacenado en Kinesis Video Streams.
Generación automática de imágenes (entrega en Amazon S3)- Configure Kinesis Video Streams para que extraiga automáticamente imágenes de los datos de vídeo en tiempo real en función de las etiquetas de un vídeo cargado y entregue las imágenes al depósito de S3 especificado por el cliente.
Generación automática de imágenes (entrega en Amazon S3)
En la actualidad, los clientes ejecutan y administran su propio proceso de transcodificación de imágenes para crear imágenes con diversos fines, como la limpieza, la vista previa de imágenes, la ejecución de modelos de aprendizaje automático en las imágenes, etc. Kinesis Video Streams ofrece la capacidad de transcodificar y entregar las imágenes. Kinesis Video Streams extraerá automáticamente imágenes de los datos de vídeo en tiempo real en función de una etiqueta y entregará las imágenes a un bucket de S3 especificado por el cliente.
Temas
- UpdateImageGenerationConfiguration
- DescribeImageGenerationConfiguration
- Etiquetas de productor MKV
- Agregue etiquetas de metadatos en Producer SDK usando PutEventMetaData
- Límites
- Metadatos de objetos S3
- Ruta de objetos de Amazon S3 (imagen)
- URIRecomendaciones de Amazon S3 para protegerse contra la limitación
UpdateImageGenerationConfiguration
Para configurar una transmisión de vídeo de Kinesis que permita la generación de imágenes en Amazon S3:
-
Cree un bucket de S3 para la generación de imágenes en función de las etiquetas añadidas al SDK utilizar el nuevoAPI. Tenga en cuenta el S3 URI, que es obligatorio en el siguiente paso, al actualizar las configuraciones de generación de imágenes para las transmisiones.
-
Cree un JSON archivo llamado update-image-generation-input.json con el siguiente contenido como entrada.
{ "StreamName": "TestStream", "ImageGenerationConfiguration": { "Status": "ENABLED", "DestinationConfig": { "DestinationRegion": "us-east-1", "Uri": "s3://bucket-name" }, "SamplingInterval": 200, "ImageSelectorType": "PRODUCER_TIMESTAMP", "Format": "JPEG", "FormatConfig": { "JPEGQuality": "80" }, "WidthPixels": 320, "HeightPixels": 240 } }
Puede utilizar el AWS CLI para invocar la UpdateImageGenerationConfigurationAPIoperación de añadir el Amazon S3 ARN creado anteriormente y cambiar el estado aENABLED
.
aws kinesisvideo update-image-generation-configuration \ --cli-input-json file://./update-image-generation-input.json \
Solicitud:
UpdateImageGenerationConfiguration HTTP/1.1 Method: 'POST' Path: '/updateImageGenerationConfiguration' Body: { StreamName: 'String', // Optional. Either stream name or arn should be passed StreamArn: 'String', // Optional. Either stream name or arn should be passed ImageGenerationConfiguration : { // required Status: 'Enum', // ENABLED | DISABLED, ImageSelectorType: 'Enum', // SERVER_TIMESTAMP | PRODUCER_TIMESTAMP.. DestinationConfig: { DestinationRegion: 'String', Uri: string, }, SamplingInterval: 'Number'// Format: 'Enum', // JPEG | PNG // Optional parameters FormatConfig: { 'String': 'String', }, WidthPixels: 'Number', // 1 - 3840 (4k). HeightPixels: 'Number' // 1 - 2160 (4k). } }
Respuesta:
HTTP/1.1 200 Content-type: application/json Body: { }
nota
Tras actualizar la configuración de generación de imágenes, se tarda al menos 1 minuto en iniciar el flujo de trabajo de generación de imágenes. Espere al menos 1 minuto antes de realizar la PutMedia
llamada de actualización.
DescribeImageGenerationConfiguration
Para ver las configuraciones de generación de imágenes que ya están configuradas para una transmisión, los clientes pueden realizar una DescribeImageGenerationConfiguration
solicitud de la siguiente manera.
Solicitud:
DescribeImageGenerationConfiguration HTTP/1.1 Method: 'POST' Path: '/describeImageGenerationConfiguration' Body: { StreamName: 'String', // Optional. Either stream name or arn should be passed StreamArn: 'String', // Optional. Either stream name or arn should be passed }
Respuesta:
HTTP/1.1 200 Content-type: application/json Body: { ImageGenerationConfiguration : { Status: 'Enum', ImageSelectorType: 'Enum', // SERVER_TIMESTAMP | PRODUCER_TIMESTAMP DestinationConfig: { DestinationRegion: 'String' Uri: 'string', }, SamplingInterval: 'Number', Format: 'Enum', FormatConfig: { 'String': 'String', }, WidthPixels: 'Number', HeightPixels: 'Number' } }
Para obtener más información sobre la DescribeImageGenerationConfiguration
función, consulte DescribeImageGenerationConfiguration la Guía para desarrolladores de Amazon Kinesis Video Streams.
Etiquetas de productor MKV
Puede utilizar el SDK productor de Kinesis Video Streams para etiquetar fragmentos específicos de interés exponiendo API una operación en elSDK. Para ver un ejemplo de etiqueta, consulte este código
Todos los metadatos de fragmentos proporcionados junto con las etiquetas de generación de imágenes de Amazon S3 se guardarán como metadatos de Amazon S3.
Sintaxis de las MKV etiquetas de productor
|+ Tags | + Tag | // MANDATORY: Predefined MKV tag to trigger image generation for the fragment | + Simple | + Name: AWS_KINESISVIDEO_IMAGE_GENERATION | // OPTIONAL: S3 prefix which will be set as prefix for generated image. | + Simple | + Name: AWS_KINESISVIDEO_IMAGE_PREFIX | + String:
image_prefix_in_s3
// 256 bytes max m | // OPTIONAL: Key value pairs that will be persisted as S3 Image object metadata. | + Simple | + Name:CUSTOM_KEY_1
// Max 128 bytes | + String:CUSTOM_VALUE_1
// Max 256 bytes | + Simple | + Name:CUSTOM_KEY_2
// Max 128 bytes | + String:CUSTOM_VALUE_2
// Max 256 bytes
Agregue etiquetas de metadatos en Producer SDK usando PutEventMetaData
La PutEventMetaData
función añade un MKV archivo asociado a un evento. PutEventMetaData
toma dos parámetros. El primer parámetro es un evento cuyo valor proviene de la STREAM_EVENT_TYPE
enumeración. El segundo parámetro, pStreamEventMetadata
Límites
En la siguiente tabla se enumeran las limitaciones asociadas a las etiquetas de metadatos. Si el límite de etiquetas de metadatos es ajustable, puedes solicitar un aumento a través de tu administrador de cuentas.
Límite | Valor máximo | Ajustable |
---|---|---|
Longitud del prefijo de la imagen |
256 |
no |
Longitud de la clave de metadatos opcional |
128 |
no |
Longitud del valor de los metadatos opcional |
256 |
no |
Número máximo de metadatos opcionales |
10 |
yes |
Metadatos de objetos S3
De forma predeterminada, Kinesis Video Streams establecerá el número de fragmento, el productor y la marca de tiempo del servidor de la imagen generada como metadatos de objetos de Amazon S3. Si se especifica algún fragmento de datos adicional en las MKV etiquetas, esas etiquetas también se añadirán a los metadatos del objeto de Amazon S3. El siguiente ejemplo muestra la sintaxis correcta de los metadatos del objeto Amazon S3.
{ // KVS S3 object metadata x-amz-meta-aws_kinesisvideo_fragment_number : 'string', x-amz-meta-aws_kinesisvideo_producer_timestamp: 'number', x-amz-meta-aws_kinesisvideo_server_timestamp: 'number', // Optional key value pair sent as part of the MKV tags
custom_key_1
:custom_value_1
,custom_key_2
:custom_value_2
, }
Ruta de objetos de Amazon S3 (imagen)
La siguiente lista muestra el formato correcto de la ruta del objeto y describe cada elemento de la ruta.
Formato:
ImagePrefix
_AccountID
_StreamName
_ImageTimecode
_RandomID
.file-extension
1. ImagePrefix
- Valor deAWS_KINESISVIDEO_IMAGE_PREFIX
.
2.AccountID
- ID de cuenta con el que se crea la transmisión.
3. StreamName
- Nombre del flujo para el que se genera la imagen.
4. ImageTimecode
- Código de tiempo de época en el fragmento en el que se genera la imagen.
5. RandomID
- AleatorioGUID.
6. file-extension
- JPG o PNG en función del formato de imagen solicitado.
URIRecomendaciones de Amazon S3 para protegerse contra la limitación
Si escribe miles de imágenes en Amazon S3, existe el riesgo de que se produzcan estrangulamientos. Para obtener más información, consulte Límites de solicitudes de venta de prefijos en S3
Un prefijo de Amazon S3 comienza con un PUT límite de 3500 PUT solicitudes por segundo y se irá incrementando gradualmente con el tiempo para prefijos únicos. Evite usar fechas y horas como prefijos de Amazon S3. Los datos codificados con el tiempo afectarán a los prefijos de uno en uno y también cambiarán con regularidad, lo que invalidará las ampliaciones de prefijos anteriores. Para permitir un escalado de Amazon S3 más rápido y uniforme, recomendamos añadir un prefijo aleatorio, como un código hexadecimal, o UUID al destino URI de Amazon S3. Por ejemplo, los prefijos de código hexadecimal dividirán las solicitudes de forma aleatoria de forma natural entre 16 prefijos diferentes (un prefijo para cada carácter hexadecimal único), lo que permitirá recibir 56 000 PUT solicitudes por segundo después de que Amazon S3 haya escalado automáticamente.