将网络摄像头视频流式传输到 AWS Kinesis?

问题描述 投票:0回答:3

我知道这可能是一个相对普遍的问题,但我正在尝试如何找到正确的方向......

我正在尝试使用 AWS Rekognition 构建实时人脸识别应用程序。我对 API 非常满意,并使用上传到 S3 的静态图像来执行面部识别。但是,我正在尝试找到一种将实时数据传输到 Rekognition 的方法。在阅读了亚马逊提供的各种文章和文档后,我找到了该过程,但似乎无法克服一个障碍。

根据文档,我可以使用 Kinesis 来完成此任务。看起来很简单:创建 Kinesis 视频流,并通过 Rekognition 处理该流。生产者将流数据生成到 Kinesis 流中,我很高兴。

我的问题是制作人。我发现 AWS 有一个可用的 Java Producer 库 (https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/ Producer-sdk-javaapi.html)。太棒了...看起来很简单,但现在我如何使用该生成器从我的网络摄像头捕获流,并将字节发送到 Kinesis? AWS 提供的示例代码实际上使用目录中的静态图像,没有代码将其与网络摄像头等实际实时源集成。

理想情况下,我可以将相机加载为输入源并开始流式传输。但我似乎找不到任何有关如何执行此操作的文档。

任何帮助或指导将不胜感激。

java aws-sdk amazon-rekognition facial-identification
3个回答
4
投票

您可以使用 GStreamer 示例应用程序,它使用网络摄像头或连接到您的计算机的任何摄像头作为输入,将视频提取到 Kinesis Video Streams 中。目前示例应用程序可以在 Mac、Ubuntu 或 Raspberry Pi 中执行。您还可以使用 Android 示例应用程序 从 Android 设备提取视频。

此外,对于 AWS Rekognition 与 Kinesis Video Streams 的集成,请查看 Consumer Parser 库中发布的 sample。此示例展示了如何摄取视频文件(您可以将其替换为实时生成器,如上面的 GStreamer 示例应用程序)、检索数据、解析 MKV、解码 H264 帧、与 Rekognition JSON 输出集成以及在视频中检测到的面部上绘制边界框框架。


3
投票

目前,要将 AWS Rekogniton 与直播摄像头结合使用,您必须按照此处所述设置 AWS kinesis Video Stream 和 AWS kinesis Data Stream: https://docs.aws.amazon.com/rekognition/latest/dg/recognize-faces-in-a-video-stream.html

之后,您必须使用 API:PutMedia 将直播帧发送到 AWS Kinesis 视频流。然后AWS Rekognition将使用它作为输入,处理后,输出将发送到AWS Kinesis Data Stream。因此,您将从 AWS Kinesis Data Stream 中获取结果。

所有步骤都非常简单,但使用 PutMedia API 时可能会遇到一些麻烦。现在,我找不到任何文档来实现它,但您可以使用此源代码作为参考。它使用 MediaSource 而不是 PutMedia 从您的网络摄像头/usb_cam 创建实时流视频。您可以从它开始并进行一些更改以使用 PutMedia 而不是 MediaSource。 https://github.com/backdoorcodr/amazon-kinesis-video-streams- Producer-sdk-java

我也在做同样的事情,但这需要时间,因为我只是一个java新手。 希望能帮到你。


0
投票

正如其他答案所指出的,您可以直接使用 GStreamer 示例 C++ 应用程序,但可能更简单的是使用他们制作的 Gstreamer 插件,该插件允许从 RTMP 流进行流式传输 - 请参阅此处的示例。如果您不想麻烦地编译和设置制作者代码,您还可以使用开箱即用的解决方案,将视频发送到 Kinesis Video Streams 的制作者实际上在设备上运行,例如 KVstreamer 。尽管这确实需要 AXIS 设备,但它配备了图形用户界面,可以帮助您快速入门。

© www.soinside.com 2019 - 2024. All rights reserved.