当前位置: 首页 > 知识库问答 >
问题:

使用Python解析和渲染Kinesis视频流并获得输入帧的图像表示

佟阳焱
2023-03-14

我使用这个片段号并调用get_media_for_fragment_list

上面的调用返回一个称为有效载荷的键作为响应。

我一直试图以某种方式把这个有效载荷渲染成一个图像。

    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())

如果我的问题陈述是错误的或没有意义的,请随时问我更多关于这个问题的问题。

谢谢你的帮助。:)

共有1个答案

管杜吟
2023-03-14

使用以下代码接收有效载荷后,

kvs_stream = kvs_video_client.get_media(
                 StreamARN="ARN", 
                 StartSelector= 
                              {'StartSelectorType':'FRAGMENT_NUMBER',
                               'AfterFragmentNumber': decoded_json_from_stream['InputInformation']['KinesisVideo']['FragmentNumber']
                              }
                                       )

您可以使用,

 frame = kvs_stream['Payload'].read()

接收以从有效负载获取帧。现在,您可以打开一个mvi文件并将这个框架写入其中,然后使用openCV从这个mvi文件中提取一个特定的框架。

with open('/tmp/stream.avi', 'wb') as f:
                f.write(frame)
                cap = cv2.VideoCapture(file.mvi)
                #use frame for further processing
 类似资料:
  • 我会考虑不要将与其他解决方案一起使用以满足上述需求的建议。

  • 我使用aws lambda处理帧,它生成png图像序列作为输出。我想把这些处理过的帧推送到amzaon Kinesis-video-stream。用Java怎么做?

  • 问题内容: 我是OpenCV的初学者。我想对要上传到服务器的视频帧进行一些图像处理。我只想读取可用的框架并将它们写入目录中。然后,等待视频的另一部分上载并将帧写入目录。并且,我应该等待每个帧都完全上传,然后将其写入文件。 您能告诉我如何使用OpenCV(Python)吗? 编辑1: 我编写了这段代码,用于从文件中捕获视频,而新数据将附加在文件末尾。换句话说,该文件不是完整的视频,并且另一个程序正在

  • 我在用Kinesis和Lambda。使用SageMakerendpointfor ML处理Kinesis视频流,将输出数据写入Kinesis数据流,然后用lambda处理输出数据。如果发生特定情况,我需要可视化该帧并发送图像数据,然而,我无法检索该帧。我有片段和框架元数据,例如: 有没有一种方法可以使用Python从Kinesis视频流中通过fragmentNumberString获得图像?

  • 下面是我的代码: 所以问题是调用!当没有框架时,它将返回!而且它不会再捕捉帧了,即使我等了很长时间。

  • 我正在尝试将过滤器(如Instagram的过滤器)应用于现有视频。 我使用GLSURFACHEVIEW显示视频帧,并希望通过对传入帧应用特定过滤器,使用onDrawFrame()渲染每个帧。 但是在onDrawFrame()中,如何获取传入帧? 谢谢