Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Extrahieren Sie Bilder aus Videostreams
Sie können Amazon Kinesis Video Streams APIs verwenden, SDKs um Ihnen beim Extrahieren von Bildern aus Ihren Videostreams zu helfen. Sie können diese Bilder für erweiterte Wiedergabeanwendungen wie Miniaturansichten oder erweitertes Scrubbing oder für die Verwendung in Pipelines für maschinelles Lernen verwenden. Kinesis Video Streams bietet eine On-Demand-Bildextraktion durch eine API oder eine automatisierte Bildextraktion aus Metadaten-Tags in einem aufgenommenen Video.
Informationen zur Verwendung der verwalteten Unterstützung von Kinesis Video Streams für Bilder finden Sie unter:
On-Demand-Bildgenerierung (GetImages) — API Auf diese Weise können Kunden ein einzelnes Bild oder mehrere Bilder aus Videos extrahieren, die in Kinesis Video Streams gespeichert sind.
Automatisierte Bildgenerierung (Amazon S3 S3-Lieferung)- Konfigurieren Sie Kinesis Video Streams so, dass Bilder anhand von Tags in einem hochgeladenen Video automatisch in Echtzeit aus Videodaten extrahiert und an den vom Kunden angegebenen S3-Bucket gesendet werden.
Automatisierte Bildgenerierung (Amazon S3 S3-Lieferung)
Derzeit betreiben und verwalten Kunden ihre eigene Pipeline zur Bildtranskodierung, um Bilder für verschiedene Zwecke wie Scrubbing, Bildvorschau, Ausführung von ML-Modellen auf Bildern und mehr zu erstellen. Kinesis Video Streams bietet die Möglichkeit, die Bilder zu transkodieren und bereitzustellen. Kinesis Video Streams extrahiert basierend auf einem Tag automatisch Bilder aus Videodaten in Echtzeit und liefert die Bilder an einen vom Kunden angegebenen S3-Bucket.
Themen
UpdateImageGenerationConfiguration
So richten Sie einen Kinesis-Videostream ein, um die Bildgenerierung für Amazon S3 zu ermöglichen:
-
Erstellen Sie einen S3-Bucket für die Image-Generierung auf der Grundlage der Tags, die in SDK Using the new API hinzugefügt wurden. Beachten Sie den S3 URI, der im nächsten Schritt erforderlich ist, wenn Sie die Konfigurationen zur Image-Generierung für die Streams aktualisieren.
-
Erstellen Sie eine JSON Datei namens update-image-generation-input.json mit dem folgenden Inhalt als Eingabe.
{ "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 } }
Mit dem können Sie den AWS CLI UpdateImageGenerationConfigurationAPIVorgang aufrufen, um das zuvor ARN erstellte Amazon S3 hinzuzufügen und den Status in zu ENABLED
ändern.
aws kinesisvideo update-image-generation-configuration \ --cli-input-json file://./update-image-generation-input.json \
Anfrage:
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). } }
Antwort:
HTTP/1.1 200 Content-type: application/json Body: { }
Anmerkung
Nach der Aktualisierung der Konfiguration für die Imagegenerierung dauert es mindestens 1 Minute, bis der Workflow zur Image-Generierung gestartet wird. Warten Sie PutMedia
nach dem Aktualisierungsaufruf mindestens 1 Minute, bevor Sie den Vorgang aufrufen.
DescribeImageGenerationConfiguration
Um Konfigurationen zur Image-Generierung anzuzeigen, die bereits für einen Stream festgelegt wurden, können Kunden wie folgt eine DescribeImageGenerationConfiguration
Anfrage stellen.
Anfrage:
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 }
Antwort:
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' } }
Weitere Informationen zu dieser DescribeImageGenerationConfiguration
Funktion finden Sie DescribeImageGenerationConfiguration im Amazon Kinesis Video Streams Developer Guide.
Hersteller-Tags MKV
Sie können den Kinesis Video Streams Streams-Producer verwendenSDK, um bestimmte Fragmente von Interesse zu taggen, indem Sie einen API Vorgang in der anzeigen. SDK Ein Beispiel für ein Tag finden Sie in diesem
Alle Fragment-Metadaten, die zusammen mit den Amazon S3 S3-Bildgenerierungs-Tags bereitgestellt werden, werden als Amazon S3 S3-Metadaten gespeichert.
Syntax für MKV Producer-Tags
|+ 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
Fügen Sie im Producer Metadaten-Tags hinzu SDK mit PutEventMetaData
Die PutEventMetaData
Funktion hängt eine MKV Datei an, die einem Ereignis zugeordnet ist. PutEventMetaData
benötigt zwei Parameter. Der erste Parameter ist ein Ereignis, dessen Wert aus der STREAM_EVENT_TYPE
Enumeration stammt. Der zweite Parameter, pStreamEventMetadata
Einschränkungen
In der folgenden Tabelle sind die Einschränkungen aufgeführt, die mit den Metadaten-Tags verbunden sind. Wenn das Limit für Metadaten-Tags anpassbar ist, können Sie über Ihren Account Manager eine Erhöhung beantragen.
Limit | Maximaler Wert | Einstellbar |
---|---|---|
Länge des Bildpräfixes |
256 |
Nein |
Optionale Länge des Metadatenschlüssels |
128 |
Nein |
Optionale Länge des Metadatenwerts |
256 |
Nein |
Maximale Anzahl optionaler Metadaten |
10 |
Ja |
S3-Objekt-Metadaten
Standardmäßig legt Kinesis Video Streams die Fragmentnummer, den Produzenten und den Serverzeitstempel des als Amazon S3 S3-Objektmetadaten generierten Bildes fest. Wenn zusätzliche Fragmentdaten in den MKV Tags angegeben sind, werden diese Tags auch zu den Amazon S3 S3-Objektmetadaten hinzugefügt. Das folgende Beispiel zeigt die korrekte Syntax für die Amazon S3 S3-Objektmetadaten.
{ // 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
, }
Amazon S3 S3-Objektpfad (Bild)
Die folgende Liste zeigt das richtige Format des Objektpfads und beschreibt jedes Element innerhalb des Pfads.
Format:
ImagePrefix
_AccountID
_StreamName
_ImageTimecode
_RandomID
.file-extension
1. ImagePrefix
- Wert vonAWS_KINESISVIDEO_IMAGE_PREFIX
.
2.AccountID
- Konto-ID, unter der der Stream erstellt wird.
3. StreamName
- Name des Streams, für den das Bild generiert wird.
4. ImageTimecode
- Epochen-Timecode in dem Fragment, in dem das Bild generiert wird.
5. RandomID
- ZufälligGUID.
6. file-extension
- JPG oder PNG basierend auf dem angeforderten Bildformat.
Amazon S3 URI S3-Empfehlungen zum Schutz vor Drosselung
Wenn Sie Tausende von Bildern auf Amazon S3 schreiben, besteht die Gefahr einer Drosselung. Weitere Informationen finden Sie unter Grenzwerte für S3-Präfix-Put-Anfragen
Ein Amazon S3 S3-Präfix beginnt mit einem PUT Limit von 3.500 PUT Anfragen pro Sekunde und wird im Laufe der Zeit für eindeutige Präfixe schrittweise erhöht. Vermeiden Sie die Verwendung von Datum und Uhrzeit als Amazon S3 S3-Präfixe. Zeitkodierte Daten wirken sich jeweils auf ein Präfix aus und ändern sich zudem regelmäßig, wodurch frühere Präfix-Skalierungen ungültig werden. Um eine schnellere, konsistente Amazon S3 S3-Skalierung zu ermöglichen, empfehlen wir, dem Amazon S3 S3-Ziel ein zufälliges Präfix wie einen Hex-Code hinzuzufügenURI. UUID Hex-Code-Präfixe teilen Ihre Anfragen beispielsweise nach dem Zufallsprinzip auf 16 verschiedene Präfixe auf (ein Präfix für jedes eindeutige Hex-Zeichen), was 56.000 PUT Anfragen pro Sekunde ermöglicht, nachdem Amazon S3 automatisch skaliert hat.