c++ - OpenCV 在 linux 上使用哪个视频库?

标签 c++ opencv gstreamer video-capture v4l2

<分区>

我正在编写一个简单的软件来捕获网络摄像头图像并将其录制到压缩视频文件中。我在 C++ 软件中使用 OpenCV“VideoCapture 读取(帧)”和“VideoWriter 写入(帧)”。

我在 Ubuntu 14.04 LTS 操作系统上。

我想知道 OpenCV 在幕后使用的是哪个库。 是 ffmpeg 还是 gstreamer 还是 V4L2 还是它自己的低级源代码? 它似乎根据我使用的 OpenCV 版本而改变。 (例如 2.4.1、2.4.11、3.x)

谁能给我概述一下 OpenCV 是如何解码/编码视频的?

从网络摄像头到我在用户空间中的程序的视频数据的典型路径是什么? 从程序到文件系统的视频数据的典型路径是什么?

现在,这让我感到困惑。

最佳答案

OpenCV 使用 ffmpeg

我不知道确切的位置或方式。我知道它 用于读取和写入视频文件。我认为从摄像头获取图像时不会使用它。我认为它读取原始摄像头数据,因为它可以设置网络摄像头属性。

此外,来自网络摄像头的“视频”不是视频,它是捕获帧时的图像。按顺序捕获多张图像可以写入视频。

从文件中获取视频,OpenCV 一次从流中抓取一帧。

关于c++ - OpenCV 在 linux 上使用哪个视频库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36087678/

相关文章:

c++ - 在 C++ 中向 CPLEX 模型添加约束

c++ - 通过指针后结果的变化

c++ - C++判断分区是否为空

python - 有没有办法在 gstreamer 中从中间播放歌曲?

c++ - 如何找到将字符串转换为的正确数据类型?

c++ - OpenCV 中的直方图函数

Android camera2 API - 实时显示处理过的帧

Python openCv 等高线

Python + GStreamer - 无法连接

audio - gstreamer管道混合两个音频源