Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Guida di base su S3 Delivery
Attualmente, i clienti eseguono e gestiscono la propria pipeline di transcodifica delle immagini per creare immagini per vari scopi come lo scrubbing, l'anteprima delle immagini, l'esecuzione di modelli ML sulle immagini, ecc. KVS Images è un servizio gestito che offre al cliente la possibilità di transcodificare e distribuire le immagini. KVS estrae automaticamente le immagini dai dati video in tempo reale in base a un tag e consegnerà le immagini a un bucket S3 specificato dal cliente.
Aggiorna la configurazione della generazione di immagini
Procedura per configurare i flussi KVS per abilitare la generazione di immagini su S3:
1. Creazione di unBucket S3per la generazione di immagini in base ai tag aggiunti nell'SDK utilizzando la nuova API (istruzioni di esempio di seguito). Nota:S3 URI, che è richiesto nella fase successiva, quando si aggiornano le configurazioni di generazione di immagini per i flussi.
2. Crea un file JSON denominatoupdate-image-generation-input.jsoncon il contenuto riportato di seguito come input:
{ "StreamName": "TestStream", "ImageGenerationConfiguration": { "Status": "ENABLED", "DestinationConfig": { "DestinationRegion": "us-east-1", "Uri": "s3://bucket-name" }, "SamplingInterval": 3000, "ImageSelectorType": "PRODUCER_TIMESTAMP", "Format": "JPEG", "FormatConfig": { "JPEGQuality": "80" }, "WidthPixels": 320, "HeightPixels": 240 } }
È possibile utilizzare la AWS CLI per richiamareUpdateImageGenerationConfiguration
API per aggiungere l'ARN S3 creato sopra per lo stream e modificare lo stato inENABLED
.
aws kinesisvideo update-image-generation-configuration \ --cli-input-json file://./update-image-generation-input.json \
Richiesta:
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). } }
Risposta:
HTTP/1.1 200 Content-type: application/json Body: { }
1. Ci vorrà almeno un minuto per attivare il flusso di lavoro di generazione dell'immagine dopo l'aggiornamento della configurazione di generazione dell'immagine. Aspetta almeno un minuto prima di invocarePutMedia
dopo la chiamata di aggiornamento.
2. L'intervallo minimo di campionamento è 3 secondi. Se hai bisogno di un intervallo di campionamento più breve, aumenta una richiesta di aumento limite tramite il supporto.
Descrivi la configurazione della generazione di immagini
Richiesta:
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 }
Risposta:
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' } }
Per ulteriori informazioni suDescribeImageGenerationConfiguration
funzione, vedi ilDescribeImageGenerationConfiguration
pagina nella guida di riferimento dell'API di Amazon Kinesis Video Streams.
Producer MKV Tags
L'SDK KVS Producer consentirà al cliente di taggare specifici frammenti di interesse esponendo un'API nell'SDK.qui
Tutti i metadati di frammento forniti insieme ai tag di generazione di immagini S3 verranno salvati come metadati S3.
Sintassi
|+ 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
PutEventMetaData
(Interfaccia in Producer SDK per l'aggiunta di metadati tag):
È possibile inviare ulteriori metadati come chiave, valori tramite ilPStreamEventMetadata
Limiti
Limite | Valore massimo | Tipo di limite |
---|---|---|
Lunghezza prefisso immagine |
256 |
difficile |
Lunghezza chiave dei metadata opzionale |
128 |
difficile |
Lunghezza del valore dei metadata opzionale |
256 |
difficile |
Numero massimo di metadati opzionali |
10 |
morbido |
Metadata dell'oggetto S3
Per impostazione predefinita, KVS imposterà ilnumero di frammento,produttoreetimestamp del serverdell'immagine generata come metadati dell'oggetto S3. Se nei tag MKV vengono specificati dati di frammento aggiuntivi, tali tag verranno aggiunti anche ai metadati dell'oggetto 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
, }
Percorso oggetto S3 (immagine)
Format:
Prefisso immagine
_ID account
_StreamName
_Codice temporale immagine
_ID casuale
.estensione file
1.ImagePrefix
- Valore diAWS_KINESISVIDEO_IMAGE_PREFIX
.
2.AccountID
- ID account in base al quale viene creato lo stream.
3.StreamName
- Nome dello stream per il quale viene generata l'immagine.
4.ImageTimecode
- Codice temporale Epoch nel frammento in cui viene generata l'immagine.
5.RandomID
- GUID casuale.
6.file-extension
- JPG o PNG in base al formato immagine richiesto.
Raccomandazioni URI S3 per la protezione contro l'acceleratore
Per gli utenti che considerano di scrivere migliaia di immagini in S3, esiste una probabilità di limitazione indipendentemente dal fatto che siano presenti bucket uguali o diversi se le richieste PUT contano > 3,5 k/sec a causa della loroLimiti di richiesta di inserimento del prefisso S3
Un prefisso S3 inizia con un limite Put di 3500 Put al secondo e gradualmente aumenta nel tempo per prefissi unici. Evitare di utilizzare date e ore come prefissi S3. I dati temporali codificati influiscono su un prefisso alla volta e cambieranno regolarmente, invalidando i precedenti scalamenti del prefisso. Per abilitare il ridimensionamento S3 più veloce e coerente, prendi in considerazione l'aggiunta di un prefisso casuale, come un codice esadecimale o un UUID all'URI di destinazione S3. Ad esempio, i prefissi hexcode divideranno naturalmente le richieste in modo casuale tra 16 prefissi diversi (un prefisso per ogni carattere esadecimale univoco), il che consentirà 56.000 Puts al secondo dopo che S3 ha scalato automaticamente.