Amazon S3 전송 시작하기 - Amazon Kinesis Video Streams

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon S3 전송 시작하기

현재 고객은 자체 이미지 트랜스코딩 파이프라인을 실행 및 관리하여 스크러빙, 이미지 미리 보기, 이미지에서 ML 모델 실행 등과 같은 다양한 목적으로 이미지를 생성합니다. Kinesis Video Streams는 이미지를 트랜스코딩하여 전송하는 기능을 제공합니다. Kinesis Video Streams는 태그를 기반으로 실시간으로 비디오 데이터에서 이미지를 자동으로 추출하여 고객이 지정한 S3 버킷으로 이미지를 전송합니다.

UpdateImageGenerationConfiguration

Amazon S3에 이미지를 생성할 수 있도록 Kinesis 비디오 스트림을 설정하려면:
  1. 생성하기S3 버킷새 API를 사용하여 SDK에 추가된 태그를 기반으로 이미지를 생성할 수 있습니다. 참고 사항S3 URI이는 다음 단계에서 스트림의 이미지 생성 구성을 업데이트할 때 필요합니다.

  2. 라는 JSON 파일을 생성합니다.update-image-generation-input.json다음 내용을 입력합니다.

{ "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 } }

사용할 수 있습니다AWS CLI호출하려면UpdateImageGenerationConfiguration이전에 생성한 Amazon S3 ARN을 추가하고 상태를 다음과 같이 변경하는 API 작업ENABLED.

aws kinesisvideo update-image-generation-configuration \ --cli-input-json file://./update-image-generation-input.json \

요청:

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). } }

응답:

HTTP/1.1 200 Content-type: application/json Body: { }
참고

이미지 생성 구성을 업데이트한 후 이미지 생성 워크플로를 시작하는 데 최소 1분이 걸립니다. 호출하기 전에 최소 1분 정도 기다리세요.PutMedia업데이트 호출 후

DescribeImageGenerationConfiguration

스트림에 대해 이미 설정된 이미지 생성 구성을 보려면 고객이 다음을 수행할 수 있습니다.DescribeImageGenerationConfiguration다음과 같이 요청하십시오.

요청:

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 }

응답:

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' } }

에 대해 자세히 알아보려면DescribeImageGenerationConfiguration기능, 참조DescribeImageGenerationConfiguration 에서아마존 키네시스 비디오 스트림 개발자 가이드.

프로듀서 MKV 태그

Kinesis Video Streams Producer SDK를 사용하면 SDK에서 API 작업을 노출하여 관심 있는 특정 프래그먼트에 태그를 지정할 수 있습니다. 태그의 예는 다음을 참조하십시오.이 코드. 이 API를 호출하면 SDK는 미리 정의된 MKV 태그 세트를 프래그먼트 데이터와 함께 추가합니다. Kinesis Video Streams는 이러한 특수 MKV 태그를 인식하고 해당 스트림의 이미지 처리 구성을 기반으로 이미지 생성 워크플로를 시작합니다.

Amazon S3 이미지 생성 태그와 함께 제공된 모든 프래그먼트 메타데이터는 Amazon S3 메타데이터로 저장됩니다.

프로듀서 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

다음을 사용하여 Producer SDK에 메타데이터 태그 추가PutEventMetaData

PutEventMetaData함수는 이벤트와 관련된 MKV 파일을 추가합니다.PutEventMetaData두 개의 매개 변수를 사용합니다. 첫 번째 파라미터는 값이 다음에서 오는 이벤트입니다.STREAM_EVENT_TYPE열거형. 두 번째 파라미터,pStreamEventMetadata는 선택 사항이며 추가 메타데이터를 키-값 쌍으로 포함하는 데 사용할 수 있습니다. 추가할 수 있는 메타데이터의 키-값 쌍은 5개로 제한됩니다.

제한

다음 표에는 메타데이터 태그와 관련된 제한 사항이 나와 있습니다. 메타데이터 태그 제한을 조정할 수 있는 경우 계정 관리자를 통해 증가를 요청할 수 있습니다.

한도 최대 값 조정 가능

이미지 접두사 길이

256

아니요

선택적 메타데이터 키 길이

128

아니요

선택적 메타데이터 값 길이

256

아니요

선택적 메타데이터의 최대 수

10

S3 오브젝트 메타데이터

기본적으로 Kinesis 비디오 스트림은 다음을 설정합니다.프래그먼트 넘버,생산자, 및서버 타임스탬프Amazon S3 객체 메타데이터로 생성된 이미지 MKV 태그에 프래그먼트 데이터가 추가로 지정되면 해당 태그도 Amazon S3 객체 메타데이터에 추가됩니다. 다음 예제는 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, }

S3 오브젝트 경로 (이미지)

다음 목록은 개체 경로의 올바른 형식을 보여 주고 경로 내의 각 요소를 설명합니다.

형식:

ImagePrefix_계정 ID_StreamName_ImageTimecode_랜덤 아이디.파일 확장명

1.ImagePrefix - 가치AWS_KINESISVIDEO_IMAGE_PREFIX.

2.AccountID - 스트림이 생성되는 계정 ID

3.StreamName - 이미지가 생성되는 스트림의 이름입니다.

4.ImageTimecode - 이미지가 생성되는 프래그먼트의 에포크 타임코드

5.RandomID - 랜덤 GUID.

6.file-extension - 요청된 이미지 형식에 따른 JPG 또는 PNG

스로틀링 방지를 위한 Amazon S3 URI 권장 사항

Amazon S3에 수천 개의 이미지를 쓸 경우 병목 현상이 발생할 위험이 있습니다. 자세한 내용은 을 참조하십시오.S3 프리픽스 풋 요청 제한.

Amazon S3 접두사는 초당 3,500개의 PUT 요청의 PUT 한도로 시작하며 시간이 지남에 따라 고유한 접두사에 대한 제한이 점차 늘어납니다. 날짜와 시간을 Amazon S3 접두사로 사용하지 마십시오. 타임코딩된 데이터는 한 번에 하나의 접두사에 영향을 미치며 정기적으로 변경되므로 이전의 접두사 확장이 무효화됩니다. 더 빠르고 일관된 Amazon S3 확장을 가능하게 하려면 Amazon S3 대상 URI에 16진수 코드나 UUID와 같은 임의의 접두사를 추가하는 것이 좋습니다. 예를 들어 16진수 코드 접두사는 요청을 16개의 서로 다른 접두사 (각 고유한 16진수 문자의 접두사) 로 자연스럽게 분할합니다. 그러면 Amazon S3가 자동 조정된 후 초당 56,000건의 PUT 요청이 허용됩니다.