【发布时间】:2019-03-09 23:53:23
【问题描述】:
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,这是导致第6 行出现此错误TypeError: an integer is required (got type bytes)
的原因。我尝试将其转换为整数或字符串,但无法转换。
在尝试将字节转换为整数时:我提到了this,但遇到了长度问题。这只是一个示例视频文件。当转换为字节对象时,我想要处理的实际文件会很大。
尝试将对象作为字符串获取然后将其转换为整数:我提到了this。即使这似乎对我不起作用。
如果有人能帮我解决这个问题,我将不胜感激。如果您对我的问题有任何不确定之处,请发表评论,我会尽力提供更多详细信息。
【问题讨论】:
-
由于您似乎想从某个网络资源访问视频,您可能需要一些包含 URL 的字符串——给
VideoCapture构造函数的整数标识符仅用于识别本地摄像机。跨度> -
视频文件的url为强制下载url。我正在尝试通过更改设置使其可见。即使如果我可以让它显示,我也无法通过 OpenCv 访问它,因为
VideoCapture仅适用于https://www.example.com/myimage.mp4而对于像https://www.youtube.com/watch?v=jNQXAC9IVRw这样的视频链接它不会起作用。请问还有其他可能的解决方案吗? -
感谢您的帮助。这是相关的,但它并不能完全解决我的问题。
-
嗨!你有办法解决吗? @VinayVarma
标签: python-3.x opencv amazon-s3 boto3 video-processing