本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
示例:解析和渲染 Kinesis Video Streams 片段
这个视频流解析器库包含一个名为的演示应用程序KinesisVideoRendererExample
演示了如何解析和渲染 Amazon Kinesis 视频流片段。该示例使用 JCodec
该示例说明了如何执行以下操作:
-
使用从 Kinesis 视频流中检索帧
GetMedia
API 并渲染直播以供观看。 -
在自定义应用程序中查看直播的视频内容,而不是使用 Kinesis Video Streams 控制台。
您还可以使用本示例中的类来查看未编码为 H.264 的 Kinesis 视频流内容,例如在显示之前不需要解码的 JPEG 文件流。
以下过程说明了如何设置和使用渲染器演示应用程序。
先决条件
要检查和使用渲染器示例库,您必须满足以下条件:
-
亚马逊网络服务 (Amazon) 账户。如果您还没有 Amazon 账户,请参阅 Kinesis Video Streams 入门。
-
一个 Java 集成开发环境 (IDE),例如Eclipse
要么JetBrainsIntelliJ 概念 。
运行渲染器示例
-
创建一个目录,然后从中克隆示例源代码GitHub存储库。
git clone https://github.com/aws/amazon-kinesis-video-streams-parser-library
-
打开您正使用的 Java IDE (例如,Eclipse
或 IntelliJ IDEA ),并导入您下载的 Apache Maven 项目: -
在 Eclipse 中:选择 File、Import、Maven、Existing Maven Projects。导航到
kinesis-video-streams-parser-lib
目录。 -
在 IntelliJ Idea 中:选择 Import。导航到下载的程序包的根目录中的
pom.xml
文件。注意
如果 IntelliJ 找不到您的依赖项,则可能需要执行以下操作:
-
干净生成:选择 File (文件)、Settings (设置)、Build, Execution, Deployment (生成、执行、部署)、Compiler (编译器)。验证一下重建时清除输出目录被选中,然后选择构建,生成项目。
-
重新导入项目:打开该项目的上下文菜单(右键单击),选择 Maven、重新导入。
-
有关更多信息,请参阅相关的 IDE 文档。
-
-
从您的 Java IDE 中,打开
src/test/java/com.amazonaws.kinesisvideo.parser/examples/KinesisVideoRendererExampleTest
。 -
从该文件中删除
@Ignore
指令。 -
更新
.stream
带有您的 Kinesis 视频流名称的参数。 -
运行
KinesisVideoRendererExample
测试。
工作方式
该示例应用程序说明了如何执行以下操作:
发送 MKV 数据
该示例从发送示例 MKV 数据rendering_example_video.mkv
文件,使用PutMedia
将视频数据发送到名为的流render-example-stream。
该应用程序创建一个 PutMediaWorker
:
PutMediaWorker putMediaWorker = PutMediaWorker.create(getRegion(), getCredentialsProvider(), getStreamName(), inputStream, streamOps.amazonKinesisVideo); executorService.submit(putMediaWorker);
有关 PutMediaWorker
类的信息,请参阅视频流解析器库文档中的 打电话 PutMedia。
将 MKV 片段解析为框架
然后,该示例使用 GetMediaWorker
从流中检索和解析 MKV 片段:
GetMediaWorker getMediaWorker = GetMediaWorker.create(getRegion(), getCredentialsProvider(), getStreamName(), new StartSelector().withStartSelectorType(StartSelectorType.EARLIEST), streamOps.amazonKinesisVideo, getMediaProcessingArgumentsLocal.getFrameVisitor()); executorService.submit(getMediaWorker);
有关 GetMediaWorker
类的更多信息,请参阅视频流解析器库文档中的 打电话 GetMedia。
解码和显示框架
然后,该示例使用 JFrame
以下代码示例来自于 KinesisVideoFrameViewer
类,该类扩展了 JFrame
:
public void setImage(BufferedImage bufferedImage) { image = bufferedImage; repaint(); }
图像显示为的实例java.awt.image。BufferedImageBufferedImage
的示例,请参阅读取/加载图像