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à.
Estrarre immagini dai flussi video
Puoi usare Amazon Kinesis APIs Video SDKs Streams e aiutarti a estrarre immagini dai tuoi flussi video. Puoi utilizzare queste immagini per applicazioni di riproduzione avanzate come miniature o scorrimento avanzato, o per l'uso in pipeline di apprendimento automatico. Kinesis Video Streams offre l'estrazione di immagini su richiesta API tramite un'estrazione automatica delle immagini dai tag di metadati in un video incorporato.
Per informazioni sull'utilizzo del supporto gestito di Kinesis Video Streams per le immagini, consulta:
Generazione di immagini su richiesta (GetImages): API consente ai clienti di estrarre una o più immagini dai video archiviati in Kinesis Video Streams.
Generazione automatica di immagini (Amazon S3 delivery)- Configura Kinesis Video Streams per estrarre automaticamente le immagini dai dati video in tempo reale in base ai tag in un video caricato e invia le immagini al bucket S3 specificato dal cliente.
Generazione automatica di immagini (Amazon S3 delivery)
Attualmente, i clienti eseguono e gestiscono la propria pipeline di transcodifica delle immagini per creare immagini per vari scopi, come lo scorrimento, l'anteprima delle immagini, l'esecuzione di modelli ML sulle immagini e altro ancora. Kinesis Video Streams offre la capacità di transcodificare e distribuire le immagini. Kinesis Video Streams estrarrà automaticamente le immagini dai dati video in tempo reale sulla base di un tag e le consegnerà a un bucket S3 specificato dal cliente.
Argomenti
UpdateImageGenerationConfiguration
Per configurare uno stream video Kinesis per abilitare la generazione di immagini su Amazon S3:
-
Crea un bucket S3 per la generazione di immagini in base ai tag aggiunti utilizzando il SDK nuovo. API Nota S3 URI, che è richiesto nel passaggio successivo, quando aggiorni le configurazioni di generazione delle immagini per gli stream.
-
Crea un JSON file chiamato update-image-generation-input.json con il seguente contenuto come input.
{ "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 } }
Puoi usare AWS CLI per richiamare l'UpdateImageGenerationConfigurationAPIoperazione per aggiungere Amazon ARN S3 creato in precedenza e modificare lo stato in. ENABLED
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: { }
Nota
È necessario almeno 1 minuto per avviare il flusso di lavoro di generazione delle immagini dopo l'aggiornamento della configurazione di generazione delle immagini. Attendi almeno 1 minuto prima di richiamare PutMedia
dopo la chiamata di aggiornamento.
DescribeImageGenerationConfiguration
Per visualizzare le configurazioni di generazione di immagini già impostate per uno stream, i clienti possono effettuare una DescribeImageGenerationConfiguration
richiesta, come segue.
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 sulla DescribeImageGenerationConfiguration
funzionalità, consulta DescribeImageGenerationConfiguration la Amazon Kinesis Video Streams Developer Guide.
Tag Producer MKV
Puoi utilizzare il produttore di Kinesis Video SDK Streams per etichettare frammenti specifici di interesse API esponendo un'operazione in. SDK Per un esempio di tag, consulta questo codice.
Tutti i metadati di frammento forniti insieme ai tag di generazione di immagini Amazon S3 verranno salvati come metadati Amazon S3.
MKVSintassi per i tag producer
|+ 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
Aggiungi tag di metadati in producer usando SDK PutEventMetaData
La PutEventMetaData
funzione aggiunge un MKV file associato a un evento. PutEventMetaData
richiede due parametri. Il primo parametro è un evento il cui valore proviene dall'STREAM_EVENT_TYPE
enum. Il secondo parametro, pStreamEventMetadata
Limiti
La tabella seguente elenca le limitazioni associate ai tag dei metadati. Se il limite dei tag di metadati è regolabile, puoi richiederne un aumento tramite il tuo account manager.
Limite | Valore massimo | Regolabile |
---|---|---|
Lunghezza del prefisso dell'immagine |
256 |
no |
Lunghezza della chiave dei metadati opzionale |
128 |
no |
Lunghezza del valore dei metadati opzionale |
256 |
no |
Numero massimo di metadati opzionali |
10 |
sì |
Metadati degli oggetti S3
Per impostazione predefinita, Kinesis Video Streams imposta il numero di frammento, il produttore e il timestamp del server dell'immagine generata come metadati degli oggetti Amazon S3. Se nei MKV tag vengono specificati dati di frammento aggiuntivi, tali tag verranno aggiunti anche ai metadati degli oggetti Amazon S3. L'esempio seguente mostra la sintassi corretta per i metadati degli oggetti 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
, }
Percorso dell'oggetto Amazon S3 (immagine)
L'elenco seguente mostra il formato corretto del percorso dell'oggetto e descrive ogni elemento all'interno del percorso.
Formato:
ImagePrefix
_AccountID
_StreamName
_ImageTimecode
_RandomID
.file-extension
1. ImagePrefix
- Valore diAWS_KINESISVIDEO_IMAGE_PREFIX
.
2.AccountID
- ID dell'account con cui 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
- CasualeGUID.
6. file-extension
- JPG o PNG in base al formato di immagine richiesto.
URIRaccomandazioni di Amazon S3 per proteggersi dal throttling
Se scrivi migliaia di immagini su Amazon S3, c'è il rischio di limitazione. Per ulteriori informazioni, consulta S3 Prefix
Un prefisso Amazon S3 inizia con un PUT limite di 3.500 PUT richieste al secondo e aumenterà gradualmente nel tempo per creare prefissi unici. Evita di utilizzare date e orari come prefissi Amazon S3. I dati con codifica temporale influiranno su un prefisso alla volta e verranno inoltre modificati regolarmente, invalidando le scalabilità dei prefissi precedenti. Per consentire una scalabilità Amazon S3 più rapida e coerente, consigliamo di aggiungere un prefisso casuale, ad esempio un codice esadecimale, o alla destinazione UUID Amazon S3. URI Ad esempio, i prefissi di codice esadecimale suddivideranno naturalmente le richieste in modo casuale tra 16 prefissi diversi (un prefisso per ogni carattere esadecimale univoco), il che consentirà 56.000 richieste PUT al secondo dopo la scalabilità automatica di Amazon S3.