从单个设备组织多个录制的正确方法是什么:AWS Kinesis视频流

问题描述

从单个RaspBerry PI类型的设备创建可搜索的视频档案的正确方法是什么?

我应该为每个设备创建一个流,然后每当该设备开始广播时,它就会添加到该流中? 然后,我将创建一个客户端,该客户端列出流上这些单独录制的时间戳记吗?我一直在尝试执行此操作,但到目前为止,我只有ListFragments和GetClip。两者似乎都不起作用。使用片段的用例是什么?我想让流的各个部分被不同的时间戳分开。例如,如果我有一个从2pm到2:10 pm的录音,那将是从3pm到3:10 pm之间的录音分开的列表项。

还是应该在每个广播中制作一个流? 我将创建一个客户端以列出流,然后允许用户在流之间进行选择以查看每个视频。这似乎是对平台的低效使用,如果我几天内用同一设备录制5幅10秒的录音,则会创建5个单独的存档流。

我意识到这里存在与数据保留相关的含义,但是我也不确定如果流的一部分到期,那会如何处理,而另一部分没有。

我一直在仔细阅读文档,以试图推断出与此相关的最佳实践,但是没有找到直接答案的最佳答案。

谢谢!

解决方法

很难说出您的真实情况。某些应用程序每个设备使用稀疏填充的流,并使用ListFragments API和其他方法来了解流中的会话。

如果流非常稀疏且设备数量众多,则此方法将无法正常工作。在这种情况下,某些客户实施“流租赁”机制,通过这种机制,他们的后端服务或某个集中式实体可以跟踪流池,并将流租赁给请求者,从而有可能向池中添加新流。然后将流的租用时间流存储在数据库中,供消费者方应用程序执行业务逻辑。生产者应用程序还可以使用FragmentMetadata概念“嵌入”流中的某些信息,该概念实际上可以评估为将MKV标签输出到流中。

如果您还有关于实现等方面的更多问题,请不要犹豫,将GitHub问题与有问题的特定KVS资产联系起来,这将是最快的答案。