Kinesis Video Streams에서 스트리밍 메타데이터 사용 - Amazon Kinesis Video Streams

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

Kinesis Video Streams에서 스트리밍 메타데이터 사용

Amazon Kinesis Video Streams SDK 프로듀서를 사용하여 Kinesis 비디오 스트림의 개별 프래그먼트 수준에서 메타데이터를 임베드할 수 있습니다. Kinesis Video Streams의 메타데이터는 변경 가능한 키-값 쌍입니다. 이를 사용하여 프래그먼트의 내용을 설명하거나, 실제 프래그먼트와 함께 전송해야 하는 관련 센서 판독값을 포함하거나, 기타 사용자 지정 요구 사항을 충족할 수 있습니다. 메타데이터는 OR 작업의 일부로 제공됩니다. GetMedia GetMediaForFragmentList API 스트림의 전체 보존 기간 동안 프래그먼트와 함께 저장됩니다. 사용 중인 애플리케이션은 를 사용하여 메타데이터를 읽고, 처리하고, 이에 따라 대응할 수 있습니다. 파서 라이브러리를 사용하여 카메라의 출력 보기

다음과 같은 두 가지 모드를 통해 스트림의 조각과 함께 메타데이터를 포함할 수 있습니다.

  • 비지속적 — 발생한 비즈니스별 기준에 따라 스트림의 프래그먼트에 일회성 또는 임시로 메타데이터를 첨부할 수 있습니다. Kinesis 비디오 스트림으로 프래그먼트를 전송하기 전에 움직임을 감지하고 모션이 포함된 해당 프래그먼트에 메타데이터를 추가하는 스마트 카메라를 예로 들 수 있습니다. 다음 형식으로 메타데이터를 조각에 적용할 수 있습니다. Motion = true

  • 퍼시스턴트 - 지속적인 필요에 따라 스트림의 연속된 연속 프래그먼트에 메타데이터를 첨부할 수 있습니다. Kinesis 비디오 스트림으로 전송하는 모든 조각과 관련된 현재 위도 및 경도 좌표를 전송하는 스마트 카메라를 예로 들 수 있습니다. Lat = 47.608013N , Long = -122.335167W 형식으로 메타데이터를 모든 조각에 적용할 수 있습니다.

애플리케이션의 요구 사항에 따라 이 두 가지 모드의 메타데이터를 동일한 조각에 동시에 부착할 수 있습니다. 내장된 메타데이터에는 감지된 객체, 추적된 활동, GPS 좌표 또는 스트림의 프래그먼트와 연결하려는 기타 사용자 지정 데이터가 포함될 수 있습니다. 메타데이터는 키-값 문자열 페어로 인코딩됩니다.

Kinesis 비디오 스트림에 메타데이터 추가

Kinesis 비디오 스트림에 추가하는 메타데이터는 키-값 쌍으로 구현되는 MKV 태그로 모델링됩니다.

메타데이터는 스트림 내에서 이벤트를 표시하는 것처럼 일시적일 수도 있고 특정 이벤트가 발생하는 조각을 식별하는 것처럼 지속적일 수도 있습니다. 영구 메타데이터 항목은 취소될 때까지 남아 있으며 각 연속 프래그먼트에 적용됩니다.

참고

를 사용하여 추가된 메타데이터 항목은, 및 로 APIs TagStream 구현된 스트림 수준 태깅과 다릅니다. Kinesis Video Streams에 업로드 UntagStream ListTagsForStream

스트리밍 메타데이터 API

SDK프로듀서에서 다음 작업을 사용하여 스트리밍 메타데이터를 구현할 수 있습니다.

PIC

PUBLIC_API STATUS putKinesisVideoFragmentMetadata(STREAM_HANDLE streamHandle, PCHAR name, PCHAR value, BOOL persistent);

C++ 프로듀서 SDK

/** * Appends a "tag" or metadata - a key/value string pair into the stream. */ bool putFragmentMetadata(const std::string& name, const std::string& value, bool persistent = true);

자바 프로듀서 SDK

Java 프로듀서를 MediaSource 사용하여 MediaSourceSink.onCodecPrivateData 다음과 SDK 같은 용도에 메타데이터를 추가할 수 있습니다.

void onFragmentMetadata(final @Nonnull String metadataName, final @Nonnull String metadataValue, final boolean persistent) throws KinesisVideoException;

영구 및 비영구 메타데이터

비지속성 메타데이터의 경우, 여러 메타데이터 항목을 동일한 이름으로 추가할 수 있습니다. 제작자는 다음 프래그먼트 앞에 추가될 때까지 메타데이터 대기열의 메타데이터 항목을 SDK 수집합니다. 메타데이터 항목이 스트림에 적용됨에 따라 메타데이터 대기열은 삭제됩니다. 메타데이터를 반복하려면 putKinesisVideoFragmentMetadata 또는 putFragmentMetadata를 다시 호출합니다.

영구 메타데이터의 경우 제작자는 비영구 메타데이터와 동일한 방식으로 메타데이터 대기열의 메타데이터 항목을 SDK 수집합니다. 하지만 메타데이터 항목이 다음 프래그먼트 앞에 추가되더라도 대기열에서 제거되지 않습니다.

true로 설정된 persistentputKinesisVideoFragmentMetadata 또는 putFragmentMetadata를 호출하면 다음과 같은 동작으로 이어집니다.

  • 를 API 호출하면 메타데이터 항목이 대기열에 추가됩니다. 항목이 대기열에 있는 동안 메타데이터는 모든 프래그먼트에 MKV 태그로 추가됩니다.

  • 이전에 추가한 API 메타데이터 항목과 동일한 이름 및 다른 값으로 를 호출하면 해당 항목을 덮어씁니다.

  • 빈 API 값으로 를 호출하면 메타데이터 대기열에서 메타데이터 항목이 제거 (취소) 됩니다.