用QT播放视频

时间:2013-05-28 08:19:20

标签: c++ qt opencv video-capture

我想创建一个应用程序,通过它我需要播放带有音频的视频文件(需要播放几乎所有类型的视频)。

我需要它用于Windows和Linux(至少用于Windows)。

我打算使用QT或任何其他套餐?怎么办?

我需要一个GUI作为 http://www.youtube.com/watch?v=mA883X4uaHk(请注意.35s)

我的项目描述:   1.需要在一个帖子中播放视频   2.在另一个线程中。平行而言,需要捕获网络摄像头视频并需要处理     带有Opencv算法的网络摄像头帧,用于绘制图形。

计划复制YouTube视频应用程序。我也必须使用线程。 opencv支持QT。

我做了什么:  使用Java Media Framework进行播放失败,因为它不支持所有格式。

3 个答案:

答案 0 :(得分:2)

在OpenCV中,你可以这样做:

Mat frame;
VideoCapture vid("your_filename"); // open video file
if(!vid.isOpened()) // check if we succeeded
    return -1;
vid >> frame; //extract a frame

稍后您可以创建QImage并使用帧数据初始化它,例如:

QImage *img = new QImage(frame.data, frame.cols, frame.rows, QImage::Format_RGB888);

如果我没有注意到我只是遇到了问题,那么首先拍摄的帧是黑色的,所以我需要这样做:vid >> frame; Sleep(1); vid >> frame;以防万一它也发生在你身上。

答案 1 :(得分:1)

如果使用Qt版本5,则可以使用QMediaPlayer,使用版本4,可以使用phonon模块(查看示例,如果我没记错的话,它们包含一个简单的视频播放器)。

答案 2 :(得分:1)

好吧,如果您愿意使用Qt5,那么多媒体模块可以满足您的一切需求。您可以访问视频/摄像机的每个帧并进行处理。您可以使用相同的视频表面来播放视频和显示网络摄像头帧。 Qt5多媒体小部件示例目录中有简单示例,您可以参考。