我有一个Flask应用。当我在PC上运行它时,它可以获取视频文件,并使用以下代码创建非黑色的缩略图:
uploaded_files = request.files.getlist("file[]")
for i in uploaded_files:
......
vcap = cv2.VideoCapture(file_path)
b = io.BytesIO()
res, im_ar = vcap.read()
while im_ar.mean() < 2 and res:
res, im_ar = vcap.read()
r=cv2.resize(im_ar, size, interpolation = cv2.INTER_CUBIC)
b=cv2.imencode('.jpeg', r)[1]
s3.Bucket('MY_BUCKET').put_object(Key=MY_KEY, Body=b.tobytes(), ACL= 'public-
read',ContentType='image/jpeg', ContentDisposition= 'inline')
由于某些原因,cv2.VideoCapture()不接受任何形式的“ i”作为参数:“ i.read()/ i.file / etc”。顺便说一句,也许你可以帮忙吗?因此,我必须使用“ file_path”,它可以是本地文件的链接或路径,当它在我的PC上运行时都可以使用。
type(vcap)=类'cv2.VideoCapture' type(im_ar)=类'numpy.ndarray'
但是当我在远程ubuntu服务器上运行完全相同的代码时,使用相同的文件,就会得到以下信息: b中的文件“ /home/ubuntu/scanner/app/routes.py”,行478 而im_ar.mean()<2和res: AttributeError:'NoneType'对象没有属性'mean'
OpenCV 3.4.3 FFMPEG:是
我该如何解决?