使用openCV的远程服务器上的视频缩略图

时间:2018-10-17 14:37:29

标签: python flask opencv3.0 uploading video-thumbnails

我有一个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:是

我该如何解决?

0 个答案:

没有答案