可怕的表現我看到了可怕的性能,同時試圖與QtMobility的1.2.0和的Qt 4.7.4播放視頻上的Ubuntu 10.10(奔騰4 2.80GHz的)。與QMediaPlayer和QVideoWidget
有什麼好笑的是,圖騰(也使用的GStreamer作爲後端)和VLC能夠播放這些視頻,而無需在本機上出了問題,即使有更高的分辨率(全屏等)。
根據頂部,我的應用程序佔用CPU的100%而圖騰和VLC僅消耗〜40%。這很奇怪!所以我分享下面的應用程序的源代碼。它使用QMediaPlayer
和QVideoWidget
來完成這項工作。
movie.cpp:
#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:
TEMPLATE = app
QT += gui
CONFIG += mobility
MOBILITY = multimedia
QMAKE_RPATHDIR += $$DESTDIR
SOURCES = \
movie.cpp
的表現依然糟糕,即使我創建了一個小窗口,如:
mainWindow.resize(QSize(960, 540));
有沒有人k現在什麼可能導致這種行爲,我該如何解決?
如果有人有興趣,的ffmpeg顯示有關我使用用於測試的視頻文件的一個信息:
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
如果源代碼可用,我建議準備尋找繁忙循環的長時間調試弱點 – Ulterior
@Ulterior沒有什麼可調試的。看起來像在qt庫中搞砸了。不會是第一個 –