如何从 url 视频中获取图像(存储在 s3 存储桶中)

Posted

技术标签:

【中文标题】如何从 url 视频中获取图像(存储在 s3 存储桶中)【英文标题】:how to get an image from the url video (stored on s3 bucket) 【发布时间】:2018-03-20 03:46:51 【问题描述】:

我想从存储在 s3 存储桶中的 url 视频中获取图像。 我试图用 cv2.VideoCapture 来做,但它只适用于静态文件。 如果有人可以帮助我

【问题讨论】:

欢迎来到 ***。请阅读How to Ask 并向我们展示您的尝试,然后我们才能在这里为您提供帮助。 How to read remote video on Amazon S3 using ffmpeg的可能重复 【参考方案1】:

我认为为时已晚,但我正在为其他面临同样问题的人写这篇文章,因为我正在尝试但找不到任何解决方案。

所以您必须设置指向您的 S3 存储桶的 amazon cloudfront 下载分发(如果不知道如何设置,请参阅here),然后只需使用 http 访问(不是 https,不知道为什么它不使用 https 或直接通过 s3 url)。 只需将 cloudfront url 设置为:

cv2.VideoCapture('http://xyz.cloudfront.net/myvideo.mp4')

现在它可以正常工作了。

【讨论】:

【参考方案2】:

可以使用用于 S3 对象的 presigned url。

url = s3_client.generate_presigned_url( ClientMethod='get_object', Params= 'Bucket': bucket, 'Key': key )

vidcap = cv2.VideoCapture(url)

【讨论】:

以上是关于如何从 url 视频中获取图像(存储在 s3 存储桶中)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 html 中的 url 访问存储在我的 s3 存储桶中的图像

如何在mongodb中存储文件/图像的url?

获取存储在 Amazon S3 上的图像的图像高度和宽度

如何使用 Picasso 使用动态 URL 缓存来自 S3 存储桶的图像?

由于 CORS,无法从 S3 存储桶中获取图像

使用 AlamoFire 和预签名 URL 将图像上传到 S3 存储桶时出现问题