gpt4 book ai didi

python-3.x - 从 S3 读取一个视频文件对象,并通过 Opencv 将其用于进一步处理

转载 作者:太空宇宙 更新时间:2023-11-03 21:55:34 25 4
gpt4 key购买 nike

import boto3

import cv2
import numpy as np
s3 = boto3.resource('s3')
vid = (s3.Object('bucketname', 'video.blob').get()['Body'].read())
cap = cv2.VideoCapture(vid)

这是我的代码。我在 s3 存储桶中有一个视频文件。我想用 OpenCV 对其进行一些处理,但我不想下载它。所以我试图将该视频文件存储到 vid 中。现在的问题是 type(vid)byte 这就是导致此错误的原因 TypeError: an integer is required (got type bytes)
第 6 行。我尝试将其转换为整数或字符串,但无法做到。

关于将字节转换为整数的尝试:我引用了 this并且遇到了长度问题。这只是一个示例视频文件。转换为字节对象时,我要处理的实际文件会很大。

尝试将对象作为字符串获取,然后将其转换为整数:我引用了 this .即使这对我来说似乎也不起作用。

如果有人能帮我解决这个问题,我将不胜感激。如果您对我的问题有任何不确定的地方,请发表评论,我会尽力提供更多详细信息。

最佳答案

如果从 url 流式传输视频是一个可接受的解决方案,我认为这是最简单的解决方案。您只需要生成一个 url 即可从中读取视频。

import boto3
import cv2

s3_client = boto3.client('s3')

bucket = 'bucketname'
key = 'video.blob'

url = s3_client.generate_presigned_url('get_object',
Params = {'Bucket': bucket, 'Key': key},
ExpiresIn = 600) #this url will be available for 600 seconds

cap = cv2.VideoCapture(url)

ret, frame = cap.read()

您应该看到您能够从该 url 读取和处理帧。

关于python-3.x - 从 S3 读取一个视频文件对象,并通过 Opencv 将其用于进一步处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52649254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com