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

Streaming webcam video to AWS Kinesis?

我知道这可能是一个相对笼统的问题,但我正在尝试了解如何指出正确的方向...

我正在尝试使用 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 提供的示例代码实际上使用了目录中的静态图像,没有代码将其与网络摄像头等实际实时源集成。

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

如有任何帮助或指导,我们将不胜感激。

您可以使用 GStreamer sample app which uses webcam or any camera attached to your machine as input to ingest video into Kinesis Video Streams. Currently the sample application can be executed in Mac, Ubuntu or Raspberry Pi. Also you can use the Android sample app 从 Android 设备提取视频。

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

目前,要将 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 数据流中获取结果。

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

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