【问题标题】:How would cv2 access videos in AWS s3 bucketcv2 如何访问 AWS s3 存储桶中的视频
【发布时间】:2020-05-26 07:56:10
【问题描述】:

我现在可以使用 SageMaker 笔记本了。但这里有一个重大问题。当我想使用 cv2.VideoCapture 读取 s3 存储桶中的视频时。它说路径不存在。 Stackoverflow 中的一个答案说 cv2 仅支持本地文件,这意味着我们必须将视频从 s3 存储桶下载到笔记本,但我不想这样做。我想知道你是怎么看视频的?谢谢。

我发现一种解决方案是使用 CloudFront,但这会收费吗?速度快吗?

【问题讨论】:

  • 该命令会接受网站的 URL 作为输入吗?如果是这样,那么您可以使用 CloudFront,但通过 URL (http://) 而不是 S3 URI (s3://) 访问内容来使用 S3 会更简单。这将要求数据可公开访问,或计算特殊 URL 以获得访问权限。坦率地说,你还是最好在本地下载内容,因为无论如何都需要将内容下载到计算机上!
  • 下载到本地 SageMaker 磁盘正在运行。
  • 对不起,我不明白你的评论是什么意思。你是说你很乐意使用下载,所以你的问题可以结束了吗?或者您是说如果您提供 URL,VideoCapture() 命令有效?
  • 我也在 Kaggle 上发布了这个问题,一个答案建议将数据下载到本地 SageMaker 磁盘。我尝试通过aws s3 cp {s3 path} {local path} 将一个视频从 s3 存储桶复制到本地磁盘。这样,我可以使用VideoCapture() 来阅读。但是 URL 不起作用,CloudFront 也不起作用。我现在正在努力如何将整个数据下载到本地磁盘。我试过wget 但它不起作用,不知道为什么。所以我保持这个问题开放,因为解决方案还没有完成。

标签: amazon-s3 amazon-sagemaker


【解决方案1】:

您在 SageMaker 中使用 Python,因此您可以使用:

import boto3

s3_client = boto3.client('s3')
s3_client.download_file('deepfake2020', 'dfdc_train_part_1/foo.mp4', foo.mp4')

这会将文件从 Amazon S3 下载到本地磁盘,文件名为 foo.mp4

见:download_file() in boto3

这要求 SageMaker 实例已被授予访问 Amazon S3 存储桶的权限。

【讨论】:

    【解决方案2】:

    此解决方案也有效。

    要使用 AWS SageMaker,

    1) 到支持中心请求提高笔记本实例限制。他们通常会在 1 天内回复。

    2) 创建笔记本时,将本地磁盘大小更改为 1TB(双倍数据大小)。

    3) 打开Jupyter lab 并在终端输入cd SageMaker

    4) 使用CurlWget获取数据集的下载链接。

    5) 下载后解压数据

    unzip dfdc_train_all.zip

    unzip '*.zip'

    给你。

    【讨论】:

      猜你喜欢
      • 2016-11-16
      • 2016-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-04
      • 2020-06-15
      相关资源
      最近更新 更多