使用 Kinesis 视频流中嵌入的元数据 - Amazon Kinesis Video Streams

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Kinesis 视频流中嵌入的元数据

要使用 Kinesis 视频流中的元数据,请使用以下实现:MkvTagProcessor

public interface MkvTagProcessor { default void process(MkvTag mkvTag, Optional<FragmentMetadata> currentFragmentMetadata) { throw new NotImplementedException("Default FragmentMetadataVisitor.MkvTagProcessor"); } default void clear() { throw new NotImplementedException("Default FragmentMetadataVisitor.MkvTagProcessor"); } } }

使用解析器库观看摄像机的输出FragmentMetadataVisitor 类中可找到此接口。

FragmentMetadataVisitor 类包含 MkvTagProcessor 的实现:

public static final class BasicMkvTagProcessor implements FragmentMetadataVisitor.MkvTagProcessor { @Getter private List<MkvTag> tags = new ArrayList<>(); @Override public void process(MkvTag mkvTag, Optional<FragmentMetadata> currentFragmentMetadata) { tags.add(mkvTag); } @Override public void clear() { tags.clear(); } }

KinesisVideoRendererExample 类包含演示如何使用 BasicMkvTagProcessor 的示例。以下示例将 BasicMkvTagProcessor 添加到应用程序的 MediaProcessingArguments 中:

if (renderFragmentMetadata) { getMediaProcessingArguments = KinesisVideoRendererExample.GetMediaProcessingArguments.create( Optional.of(new FragmentMetadataVisitor.BasicMkvTagProcessor()));

在片段元数据送达时调用 BasicMkvTagProcessor.process 方法。您可以使用 GetTags 检索累积的元数据。要检索单个元数据项,请先调用clear以清除收集的元数据,然后再次检索元数据项目。