从字节读取视频
问题描述:
我正在使用Flask
编写简单的REST API
,它读取上传的视频并返回一些JSON
。视频通过POST请求作为文件发送,内容类型为application/x-www-form-urlencoded
。从字节读取视频
我想使用opencv
来处理它,但我不知道如何从原始二进制字符串中读取它。 我想出的唯一解决方案是将视频保存到文件并使用opencv VideoCapture
类读取它。不过,我想避免IO操作,因为我认为它会减慢我的API。
所以我的问题是:
我怎样才能变换从原始字节表示视频opencv
表示(numpy的数组列表)?
答
如果您将视频作为文件上传到服务器,那么听起来您已将它保存到文件中 - 在这种情况下,从文件中简单地读取它可能并不那么低效。
视频通常太大以至于无法放入内存,所以无论如何,这种方式很可能会进入磁盘并返回。
如果您的意思是您希望openCV程序直接接受流式视频,请执行处理,然后做任何您想要的事情(例如保存到文件,显示,流到其他位置),然后通常最容易流视频到OpenCV程序如果可能并使用OpenCV直接读取流:
VideoCapture cap;
cap.open(yourStreamURL);