使用 OpenCV 的 VideoCapture 方法高效 link 处理? {编辑}

Efficient link handling with OpenCV's VideoCapture method? {edited}

我正在使用 python 和 OpenCV。我正在将 MP4 link 传递给 VideoCapture,但后来我发现如果我先使用 urllib.request 下载视频文件然后将文件名传递给 VideoCapture,我的代码运行速度会快 10 倍(包括 urllib 下载时间)。

我的问题是是否有办法将视频剪辑(受我机器的硬件{和软件}限制)下载到捕获对象中,然后让该对象以正常方式处理 python 垃圾收集当我完成它?

与将视频文件加载到内存相比,将视频文件保存到磁盘的速度较慢。关于如何使用 Internet 文件执行此操作的任何建议?

urllib 不必将下载的对象保存到磁盘,所以我需要做的就是:

import urllib.request
url = 'https://previews.customer.envatousercontent.com/h264-video-previews/f331148f-3aa1-42ff-ae89-1a67274f2bd6/2009010.mp4'
video, http = urllib.request.urlretrieve(url)
cap = cv2.VideoCapture(video)