首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QMediaPlayer和QVideoWidget的糟糕表现

QMediaPlayer和QVideoWidget的糟糕表现
EN

Stack Overflow用户
提问于 2011-10-13 19:54:32
回答 2查看 6.7K关注 0票数 13

在使用QtMobility 1.2.0Qt 4.7.4Ubuntu10.10(奔腾4 2.80GHz)播放视频时,我看到了糟糕的表现。

有趣的是,图腾(它也使用gstreamer作为后端)和vlc能够在这台机器上播放这些视频,即使分辨率更高(全屏等)。

根据top,我的应用程序消耗100%的CPU,而图腾和vlc只消耗~ 40%的。那是..。奇怪!因此,我分享了下面应用程序的源代码。它使用QMediaPlayerQVideoWidget来完成这项工作。

movie.cpp

代码语言:javascript
复制
#include <QtGui/QMainWindow>
#include <QtGui>
#include <qmediaplayer.h>
#include <qvideowidget.h>

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);

    QMainWindow mainWindow;

    mainWindow.resize(QSize(1280, 500));

    QMediaPlayer* mplayer = new QMediaPlayer;
    QVideoWidget* vid_widget = new QVideoWidget(&mainWindow);
    vid_widget->setAspectRatioMode(Qt::IgnoreAspectRatio);

    mainWindow.setCentralWidget(vid_widget);

    mplayer->setVideoOutput(vid_widget);
    mplayer->setMedia(QUrl::fromLocalFile(argv[1]));
    mplayer->setVolume(50);
    mplayer->setPlaybackRate(1);
    mplayer->play();

    mainWindow.show();

    return app.exec();
}

movie.pro

代码语言:javascript
复制
TEMPLATE = app
QT += gui 

CONFIG += mobility
MOBILITY = multimedia

QMAKE_RPATHDIR += $$DESTDIR

SOURCES = \
movie.cpp

即使我创建了一个更小的窗口,性能仍然很糟糕,例如:

代码语言:javascript
复制
mainWindow.resize(QSize(960, 540));

有人知道是什么导致了这种行为吗?我该如何解决呢?

如果有人感兴趣,ffmpeg将显示有关我用于测试的视频文件之一的信息:

代码语言:javascript
复制
Input #0, matroska, from '/home/user/movie.mkv':
  Duration: 00:02:23.22, start: 0.000000, bitrate: N/A
    Stream #0.0(eng): Video: h264, yuvj420p, 1280x536 [PAR 1:1 DAR 160:67], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-22 16:59:52

您的代码没有什么问题,您只是将球传递给Qt,以便对电影进行解码和播放。

您使用的是未启用硬件加速的Qt构建,或者您的系统没有适合Qt加速解码和回放的硬件。

票数 3
EN

Stack Overflow用户

发布于 2011-12-13 12:43:20

我开始使用QML视频元素,在出现了几个呈现/性能问题之后,我最终放弃了,编写了一个视频播放器元素来替换来自QtMobility的元素。

对于可能感兴趣的人来说,GStreamer有一个C++接口非常容易使用。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7759695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档