低FPS与OpenCV视频捕获
Low FPS with OpenCV VideoCapture
我正在尝试使用OpenCV显示视频流,但是我的帧率遇到了可怕的问题。我的视频源最多可以输出 60 fps,但我将其限制为 30。问题是我以大约 2fps 的速度接收它
我尽可能地简化了我的程序,使其更易于阅读:
#include "opencv2/core/core.hpp"
#include "opencv2/calib3d/calib3d.hpp"
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <stdio.h>
using namespace cv;
using namespace std;
int main(int argc, char* argv[])
{
Mat image1;
int k;
const char* right_cam_gst = "nvcamerasrc sensor-id=0 ! video/x-raw(memory:NVMM),
width=(int)640,
height=(int)360,
format=(string)I420,
framerate=(fraction)30/1 ! nvvidconv flip-method=2 ! video/x-raw,
format=(string)I420 ! videoconvert ! video/x-raw,
format=(string)BGR ! appsink";
VideoCapture cap1 = VideoCapture(right_cam_gst);
for (;;)
{
cap1 >> image1;
imshow("image1", image1);
if(waitKey(1) == 27)
break;
}
}
这应该在流允许的范围内抓取和显示图像。 对吧?
谢谢你们的帮助!
编辑看起来如果我只是尽可能快地显示图像,它只会以大约 1fps 的速度显示。这完全消除了相机。
系统:ubuntu on nvidia Jetson TX1
找到了答案!看起来即使我的以太网连接很快,它也以某种方式使用服务器进行计算。(不知道如何)。看这篇文章: https://devtalk.nvidia.com/default/topic/1025856/very-slow-framerate-jetson-tx1-and-opencv/?offset=8
我禁用了Xserver并直接插入,我得到了完整的60 FPS。
相关文章:
- 如何使用OpenCV-C++编写*.mp4视频?
- OpenCV QT,显示视频的帧(不使用while循环)
- 在 openCV 中手动停止视频
- 在macOS Mojave上尝试OpenCV视频捕获时"Abort Trap: 6"
- 如何OPENCV+CUDA+视频捕获?
- 如何使用OpenCV同时显示"深度"和"颜色"视频图像
- 帧提取 使用OpenCV的视频文件开头只有几秒钟
- 如何使用OpenCV作为运动检测器(而不是寻找视频输出)
- Opencv cpp 使用多线程处理同一视频的不同部分
- OpenCV 检查计算机上是否安装了视频编解码器 (C++)
- Opencv 树莓派 3 视频播放 c++
- 使用opencv在受控环境中进行视频跟踪的跟踪标记和跟踪算法选择
- 使用 OpenCV C++ 每 1 分钟创建新的视频文件
- 使用 OpenCV 捕获 C++ 视频
- 从iPhone相机拍摄的视频似乎被OpenCV旋转了90度?我该如何解决这个问题?
- 我想在C++中用 openCV 拼接多个视频
- 使用 OpenCV 读取视频帧到指定的指针 (C++)
- 使用OpENCV中的两个视频仪捕获同一设备
- Opencv 保存视频
- OpenCV没有显示来自Macbook网络摄像头的视频