миниатюры видео на удаленном сервере с openCV - PullRequest
0 голосов
/ 17 октября 2018

У меня есть приложение для колб.Когда я запускаю его на моем компьютере, он может взять видеофайл, создать не черный эскиз, используя плавный код:

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», который может быть ссылкой или путем к локальному файлу, оба работают, когда он работает на моем компьютере.

type (vcap) = класс 'cv2.VideoCapture' тип (im_ar) = класс 'numpy.ndarray'

Но когда я запускаю точно такой же код на удаленном сервере Ubuntu, используйте тот жефайлы, я получаю это: Файл "/home/ubuntu/scanner/app/routes.py", строка 478, в b, в то время как im_ar.mean () <2 и res: AttributeError: объект 'NoneType' не имеет атрибута 'mean'</p>

OpenCV 3.4.3 FFMPEG: ДА

Как я могу это исправить?

...