为什么将 Gstreamer 用于 OpenCV 后端?

Why using Gstreamer for OpenCV backend?

我正在做一些关于 Gstreamer 的教程,我想知道为什么人们在他们的 OpenCV 项目中使用 Gstreamer 后端。

是不是因为比一般的快Videocapture()

还是像Cuda一样使用硬件加速?

我不知道 Videocapture() 的具体工作原理,如有任何帮助,我们将不胜感激!

1 - “为什么人们将 Gstreamer 后端用于他们的 OpenCV 项目”

gstreamer 没有默认后端 api。 VideoCapture 的默认后端枚举器是 CAP_ANY。正如 documentation 所说:

OpenCV automatically selects and uses first available backend (apiPreference=cv::CAP_ANY).

2 - “是因为它比普通的 Videocapture() 快吗?”

如前所述,没有正常(默认)后端 api。速度比较也可以改变api到api。 HereVideoCapture

的所有后端 api

3 - “还是像 Cuda 一样使用硬件加速?”

Cuda 不使用 gstreamer,它与 ffmpeg 兼容。

关于opencv的streaming methodology的详细信息,您可以查看here