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

2024-04-28 10:39:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个烧瓶应用程序。当我在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”。顺便说一句,也许你能帮上忙?所以我必须使用“文件路径”,它可以是一个链接,也可以是一个本地文件的路径,当它在我的电脑上运行时,这两种方法都有效

类型(vcap)=类“cv2.VideoCapture” 类型(imu ar)=类别'numpy.ndarray公司'

但当我在远程ubuntu服务器上运行完全相同的代码,使用相同的文件时,我得到如下结果: 文件“/home/ubuntu/scanner/app/路线.py,第478行,在b中 当我_ar.平均值()<;2和分辨率: AttributeError:'NoneType'对象没有属性'mean'

OpenCV 3.4.3版 FFMPEG:是的

我该怎么修?你知道吗


Tags: 文件代码readmyresfilesmeancv2