0

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

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

ffmpeg -s 1280x720 -i /dev/video2 -f lavfi -i anullsrc -f flv -c:v libx264 -c:a aac -preset ultrafast rtmp://a.rtmp.youtube.com/live2/<key>

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

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

0 回答 0