我设置了一个管道,在其中将视频实时流式传输到 Kinesis Video Stream (KVS),后者将帧发送到 Amazon Rekognition 进行人脸识别,后者进一步将它们发送到 Kinesis Data Stream (KDS)。最后,KDS 将结果发送给 lambda。
对于已经进行人脸识别的框架,我得到以下格式的JSON:https://docs.aws.amazon.com/rekognition/latest/dg/streaming-video-kinesis-output-reference.html https://docs.aws.amazon.com/rekognition/latest/dg/streaming-video-kinesis-output-reference.html
我的目标是:使用这个 JSON,我想以某种方式获取 KVS 记录的帧的图像表示。
我尝试过什么:
该 JSON 为我提供了片段编号。
我使用这个片段号码并拨打电话获取片段列表的媒体 https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/kinesis-video-archived-media.html#KinesisVideoArchivedMedia.Client.get_media_for_fragment_list
上面的调用返回一个名为Payload作为回应。
我一直在尝试以某种方式将此有效负载渲染成图像。
然而,我每次都无法这样做,因为我不知道如何理解这个有效负载并对其进行解码。
以下是代码片段。
def getFrameFromFragment(fragment):
client = boto3.client('kinesis-video-archived-media',endpoint_url=data_endpoint_for_kvs)
response = client.get_media_for_fragment_list(
StreamName='kvs1',
Fragments=[
fragment,
]
)
payload = response['Payload']
print(payload.read())
如何使用此有效负载来获取图像?
我知道 Java 中存在解析器:https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/examples-renderer.html https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/examples-renderer.html
但是,我想知道 Python 中的解决方案。
如果我的问题陈述错误或没有意义,请随时向我询问有关此问题的更多信息。
谢谢您的帮助。 :)