|
|
|
@ -1,18 +1,5 @@
|
|
|
|
|
下面是一个简单的使用Qt Creator和OpenCV搭建可以播放RTSP视频的界面的示例。本例中为了展示更多读者可能需要的部分,比例较为详细:
|
|
|
|
|
mainwindow.h:
|
|
|
|
|
|
|
|
|
|
首先,在Qt Creator中创建一个新的Qt Widgets应用程序。
|
|
|
|
|
|
|
|
|
|
添加QLabel作为显示视频图像的容器,并将该标签放置在MainWindow的UI界面上。
|
|
|
|
|
|
|
|
|
|
使用信号/槽机制连接QPushButton控件以提供“Play”和“Stop”按钮的功能。
|
|
|
|
|
|
|
|
|
|
在窗口的构造函数中,初始化OpenCV中的VideoCapture对象。此处调用set函数配置FrameRingBuffer的长度,从而满足读取较慢反应不够,其余只调用isOpened方法判断是否可正常读入即可。
|
|
|
|
|
|
|
|
|
|
稍后,你可以编写一个槽函数来读取视频流并将帧显示在QLabel中。
|
|
|
|
|
|
|
|
|
|
mainwindow.h文件:
|
|
|
|
|
|
|
|
|
|
cpp
|
|
|
|
|
#ifndef MAINWINDOW_H
|
|
|
|
|
#define MAINWINDOW_H
|
|
|
|
|
|
|
|
|
@ -46,7 +33,9 @@ private:
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif // MAINWINDOW_H
|
|
|
|
|
mainwindow.cpp文件:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mainwindow.cpp:
|
|
|
|
|
|
|
|
|
|
cpp
|
|
|
|
|
#include "mainwindow.h"
|
|
|
|
@ -130,8 +119,4 @@ void MainWindow::on_stopButton_clicked()
|
|
|
|
|
//清除QLabel
|
|
|
|
|
ui->videoLabel->clear();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
注意,上述代码中的RTSP地址需要根据实际情况进行修改。在这里只是将RTSP的地址写为本机地址从而获得源不被限制的可播放视频。
|
|
|
|
|
|
|
|
|
|
此示例仅演示了如何从RTSP流读取一帧并在QLabel中显示该帧图像。你可以使用QSpinBox或QSlider等Qt控件来添加FPS和播放进度条的功能。以及像界面美化,异常处理,带宽控制和多线程优化等其余实现可能 Related Post 中可能会涉及。
|
|
|
|
|
|
|
|
|
|
}
|