首页 > 解决方案 > 关于cv2。如何使 VideoWriter 保存为字节而不是输出文件?

问题描述

我需要在完成编写后立即将视频数据上传到运营支持系统。在这种情况下,不需要另存为输出文件。有什么建议么?

标签: pythonopencvcv2

解决方案


不幸的是,OpenCV 不支持这一点。但是你可以使用 RAMDisk 来做你想做的事。

对于 Linux

mkdir /mnt/ramdisk
mount -t tmpfs -o size=512m tmpfs /mnt/ramdisk

然后使用 OpenCV 将视频流保存到 /mnt/ramdisk/ 并从那里读取。它不应该以这种方式保存到磁盘。

video_file = '/mnt/ramdisk/video.mp4'
out = cv2.VideoWriter(video_file,cv2.VideoWriter_fourcc('M','J','P','G'), 10, (frame_width,frame_height))
with open(video_file,'r') as f:
    #do stuff here

完成后:

umount /tmp/ramdisk/

如果你想用 python 管理 ramdisk,有一个 pip 模块 memory-tempfile


推荐阅读