python - 从字节读取视频

标签 python opencv numpy video

我正在使用 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);

关于python - 从字节读取视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46636195/

相关文章:

c++ - findHomography、getPerspectiveTransform 和 getAffineTransform

opencv - 带 Nvidia Jetson TK1 板的 Point Grey Bumblebee2 firewire 1394

python - 删除数组中长度为 1 的维度

python - 在 python 中 reshape 数组乘法/除法

python - 在数组中导入数据集时,谷歌 Colab 中的 ram 用完了

python - 在 session 期间获取 tensorflow 占位符的值

android - 如何从 Android 相机中找到帧的轮廓并将它们转换为 box2d 主体?

Python 类型错误 : UMat() missing required argument 'ranges' (pos 2)

python - Decimal(str(my_float)) 似乎比 Decimal(my_float) 好,这是怎么回事?

java - 带线程的格乘,效率更高吗?