Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Ekstrak gambar dari aliran video
Anda dapat menggunakan Amazon Kinesis APIs Video SDKs Streams dan untuk membantu Anda mengekstrak gambar dari aliran video Anda. Anda dapat menggunakan gambar-gambar ini untuk aplikasi pemutaran yang disempurnakan seperti thumbnail atau scrubbing yang disempurnakan, atau untuk digunakan dalam pipeline pembelajaran mesin. Kinesis Video Streams menawarkan ekstraksi gambar sesuai permintaan API melalui, atau ekstraksi gambar otomatis dari tag metadata dalam video yang dicerna.
Untuk informasi tentang penggunaan dukungan terkelola Kinesis Video Streams untuk gambar, lihat:
On-Demand Image Generation (GetImages) - Ini API memungkinkan pelanggan untuk mengekstrak satu gambar atau beberapa gambar dari video yang disimpan di Kinesis Video Streams.
Pembuatan gambar otomatis (pengiriman Amazon S3)- Konfigurasikan Kinesis Video Streams untuk secara otomatis mengekstrak gambar dari data video secara real time berdasarkan tag dalam video yang diunggah, dan mengirimkan gambar ke bucket S3 yang ditentukan pelanggan.
Pembuatan gambar otomatis (pengiriman Amazon S3)
Saat ini, pelanggan menjalankan dan mengelola pipeline transcoding gambar mereka sendiri untuk membuat gambar untuk berbagai tujuan seperti menggosok, pratinjau gambar, menjalankan model ML pada gambar, dan banyak lagi. Kinesis Video Streams menawarkan kemampuan untuk mentranskode dan mengirimkan gambar. Kinesis Video Streams akan secara otomatis mengekstrak gambar dari data video secara real-time berdasarkan tag, dan mengirimkan gambar ke bucket S3 yang ditentukan pelanggan.
Topik
UpdateImageGenerationConfiguration
Untuk menyiapkan aliran video Kinesis untuk mengaktifkan pembuatan gambar ke Amazon S3:
-
Buat Bucket S3 untuk pembuatan gambar berdasarkan tag yang ditambahkan dalam SDK menggunakan yang baruAPI. Perhatikan S3 URI, yang diperlukan pada langkah berikutnya, saat memperbarui konfigurasi pembuatan gambar untuk aliran.
-
Buat JSON file bernama update-image-generation-input.json dengan konten berikut sebagai 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 } }
Anda dapat menggunakan AWS CLI untuk menjalankan UpdateImageGenerationConfigurationAPIoperasi untuk menambahkan Amazon ARN S3 yang dibuat sebelumnya dan mengubah statusnya menjadi. ENABLED
aws kinesisvideo update-image-generation-configuration \ --cli-input-json file://./update-image-generation-input.json \
Permintaan:
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). } }
Tanggapan:
HTTP/1.1 200 Content-type: application/json Body: { }
catatan
Dibutuhkan setidaknya 1 menit untuk memulai alur kerja pembuatan gambar setelah memperbarui konfigurasi pembuatan gambar. Tunggu setidaknya 1 menit sebelum memanggil PutMedia
setelah panggilan pembaruan.
DescribeImageGenerationConfiguration
Untuk melihat konfigurasi pembuatan gambar yang sudah diatur untuk streaming, pelanggan dapat membuat DescribeImageGenerationConfiguration
permintaan, sebagai berikut.
Permintaan:
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 }
Tanggapan:
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' } }
Untuk mempelajari lebih lanjut tentang DescribeImageGenerationConfiguration
fitur ini, lihat DescribeImageGenerationConfiguration di Panduan Pengembang Amazon Kinesis Video Streams.
MKVTag produser
Anda dapat menggunakan produser Kinesis Video SDK Streams untuk menandai fragmen tertentu yang menarik dengan API mengekspos operasi di file. SDK Untuk contoh tag, lihat kode ini
Setiap metadata fragmen yang disediakan bersama dengan tag pembuatan gambar Amazon S3 akan disimpan sebagai metadata Amazon S3.
Sintaks untuk tag produser MKV
|+ 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
Tambahkan tag metadata di produsen menggunakan SDK PutEventMetaData
PutEventMetaData
Fungsi ini menambahkan MKV file yang terkait dengan suatu peristiwa. PutEventMetaData
mengambil dua parameter. Parameter pertama adalah peristiwa yang nilainya berasal dari STREAM_EVENT_TYPE
enum. Parameter kedua, pStreamEventMetadata
Batas
Tabel berikut mencantumkan batasan yang terkait dengan tag metadata. Jika batas tag metadata dapat disesuaikan, Anda dapat meminta peningkatan melalui manajer akun Anda.
Kuota | Nilai maks | Dapat Disesuaikan |
---|---|---|
Panjang awalan gambar |
256 |
tidak |
Panjang tombol metadata opsional |
128 |
tidak |
Panjang nilai metadata opsional |
256 |
tidak |
Jumlah maksimum metadata opsional |
10 |
Ya |
Metadata objek S3
Secara default, Kinesis Video Streams akan mengatur nomor fragmen, produser, dan stempel waktu server dari gambar yang dihasilkan sebagai metadata objek Amazon S3. Jika ada data fragmen tambahan yang ditentukan dalam MKV tag, tag tersebut juga akan ditambahkan ke metadata objek Amazon S3. Contoh berikut menunjukkan sintaks yang benar untuk metadata objek 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
, }
Jalur objek Amazon S3 (gambar)
Daftar berikut menunjukkan format yang benar dari jalur objek dan menjelaskan setiap elemen dalam jalur.
Format:
ImagePrefix
_AccountID
_StreamName
_ImageTimecode
_RandomID
.file-extension
1. ImagePrefix
- NilaiAWS_KINESISVIDEO_IMAGE_PREFIX
.
2. AccountID
- ID Akun tempat aliran dibuat.
3. StreamName
- Nama aliran tempat gambar dihasilkan.
4. ImageTimecode
- Kode waktu Epoch dalam fragmen tempat gambar dihasilkan.
5. RandomID
- AcakGUID.
6. file-extension
- JPG atau PNG berdasarkan format gambar yang diminta.
URIRekomendasi Amazon S3 untuk melindungi dari pelambatan
Jika Anda menulis ribuan gambar ke Amazon S3, ada risiko pelambatan. Untuk informasi selengkapnya, lihat Awalan S3 Menempatkan Batas Permintaan
Awalan Amazon S3 dimulai dengan PUT batas 3.500 PUT permintaan per detik, dan secara bertahap akan meningkat seiring waktu untuk awalan unik. Hindari menggunakan tanggal dan waktu sebagai awalan Amazon S3. Data kode waktu akan berdampak pada satu awalan pada satu waktu, dan juga akan berubah secara teratur, membatalkan peningkatan skala awalan sebelumnya. Untuk mengaktifkan penskalaan Amazon S3 yang lebih cepat dan konsisten, sebaiknya tambahkan awalan acak, seperti kode hex atau ke Tujuan UUID Amazon S3. URI Misalnya, awalan kode hex secara alami akan membagi permintaan Anda secara acak di antara 16 awalan yang berbeda (awalan untuk setiap karakter hex unik), yang akan memungkinkan 56.000 permintaan PUT per detik setelah Amazon S3 diskalakan secara otomatis.