Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 从S3读取视频文件对象,并通过Opencv将其用于进一步处理_Python 3.x_Opencv_Amazon S3_Boto3_Video Processing - Fatal编程技术网

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

Python 3.x 从S3读取视频文件对象,并通过Opencv将其用于进一步处理,python-3.x,opencv,amazon-s3,boto3,video-processing,Python 3.x,Opencv,Amazon S3,Boto3,Video Processing,这是我的密码。我有一个s3存储桶中的视频文件。我想用OpenCV对它进行一些处理,我不想下载它。因此,我试图将该视频文件存储到vid中。现在的问题是type(vid)是byte,这就是导致此错误的原因TypeError:需要一个整数(get type bytes) 第6行。我尝试将其转换为整数或字符串,但无法完成 在尝试将字节转换为整数时:我提到了,并且遇到了长度问题。这只是一个示例视频文件。当转换为byte对象时,我想要处理的实际文件将是巨大的 在尝试将对象作为字符串获取,然后将其转换为整数时

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

在尝试将字节转换为整数时:我提到了,并且遇到了长度问题。这只是一个示例视频文件。当转换为byte对象时,我想要处理的实际文件将是巨大的

在尝试将对象作为字符串获取,然后将其转换为整数时:我提到。这对我来说似乎也不管用


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

请参阅下面有用的代码片段,以在S3 bucket上执行各种操作

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中列出存储桶 s3中的bucket创建 列出bucket中的对象 从当前目录上载文件 从存储桶读取图像/视频 从一个桶中读取数据,然后将其倾倒到另一个桶中 如果您有访问密钥,则可能可以执行以下操作


由于您似乎希望从某个web资源访问视频,因此可能需要包含URL的字符串—给定给
VideoCapture
构造函数的整数标识符仅用于标识本地摄像机。视频文件的URL是强制下载URL。我试图通过改变设置使其可见。即使我可以让它显示出来,我也无法通过OpenCv访问它,因为
VideoCapture
仅适用于
https://www.example.com/myimage.mp4
和视频链接,如
https://www.youtube.com/watch?v=jNQXAC9IVRw
它不起作用。还有其他可能的解决办法吗?谢谢你的帮助。这是相关的,但它并不完全解决我的问题。嗨!你设法解决了吗@维奈瓦玛
import boto3
s3 = boto3.resource('s3', region_name='us-east-2')
for bucket in s3.buckets.all():
    print(bucket.name)
my_bucket=s3.create_bucket(Bucket='Bucket Name', CreateBucketConfiguration={
    'LocationConstraint': 'us-east-2'
})
my_bucket = s3.Bucket('Bucket Name')
for file in my_bucket.objects.all():
    print (file.key)        
import os
print(os.getcwd())

fileName="B01.jpg"
bucketName="Bucket Name"
file = open(fileName)
s3.meta.client.upload_file(fileName, bucketName, 'test2.txt')   
import matplotlib.pyplot as plt
s3 = boto3.resource('s3', region_name='us-east-2')
bucket = s3.Bucket('Bucket Name')   # bucket name
object = bucket.Object('maisie_williams.jpg')  # image name
object.download_file('B01.jpg')            #donwload image with this name
img=plt.imread('B01.jpg')              #read the downloaded image
imgplot = plt.imshow(img)              #plot the image
plt.show(imgplot)  
import boto3
s3 = boto3.resource('s3', region_name='us-east-2')
bucket = s3.Bucket('Bucket Name')   # bucket name
object = bucket.Object('maisie_williams.jpg')  # image name
object.download_file('B01.jpg')



fileName="B01.jpg"
bucketName="Bucket Name"
file = open(fileName)
s3.meta.client.upload_file(fileName, bucketName, 'testz.jpg')
keys = pd.read_csv('accessKeys.csv')
        #creating Session for S3 buckets
        session = boto3.session.Session(aws_access_key_id=keys['Access key ID'][0],
            aws_secret_access_key=keys['Secret access key'][0])
        s3 = session.resource('s3')

        buck = s3.Bucket('Bucket Name')