问题标签 [v4l]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
34 浏览

opencv - 在 OpenCV 与 ffmpeg 中读取慢速网络摄像头(均使用 V4L)

根据标题,我得到了非常不同的帧速率。我有一个简单的 C++ OpenCV 应用程序,它只是从相机中读取一帧,然后将其编码为 JPG。大约 50% 的运行,读取需要 20 毫秒,编码需要 19 毫秒。在其他 50% 的运行中,读取需要 40-45 毫秒,编码需要 33 毫秒。

以下 ffmpeg 命令也以 x264 编码并流式传输到 YouTube,在 ~25 毫秒内完成所有操作(始终获得 40 FPS)。

OpenCV 应用程序和 ffmpeg 都在基于 i.MX8 的板上运行。到目前为止我检查过的内容:

  1. OpenCV 和 ffmpeg 都使用 V4L 从网络摄像头读取。也许他们使用不同的版本/设置?不知道如何检查。
  2. 运行之间的不一致是我的烦恼。如果存在设置问题,我希望 OpenCV 操作始终以相同的速度运行,而现在几乎就像有两种不同的操作模式。正常,当数据可以以 50 FPS 和慢速读取时,以 20 FPS。