我有一个从本地存储播放视频的小型 QT 应用程序,当我运行它时视频阻塞且速度很慢,我使用的是 gstreamer 0.1...但是当我从终端运行它并明确表示要运行 gstreamer在 gpu 上它工作正常。
如何从 QT 调整在 GPU 上运行的代码... 我的代码示例...
QApplication app(argc, argv);
QGraphicsView *graphicsView = new QGraphicsView;
QMediaPlayer *player = new QMediaPlayer;
QGraphicsScene *scene = new QGraphicsScene;
graphicsView->setScene(scene);
graphicsView->setMinimumSize(800,480);
QGraphicsVideoItem *item = new QGraphicsVideoItem;
player->setVideoOutput(item);
graphicsView->scene()->addItem(item);
graphicsView->show();
player->setMedia(QUrl::fromLocalFile("/path/to/my/file"));
QTransform mirror;
mirror.scale(-1,1);
item->setTransform(mirror);
player->play();
return app.exec();
最佳答案
您不能使用 GPU(或在 CPU 和 GPU 之间切换)来运行您的 Qt 应用程序。您仍然需要 CPU 来运行您的应用程序。 GPU 不是通用处理器:您只能为 GPU 分配一些数学任务。 CPU 控制将在 GPU 上执行的操作。
所有 GStreamer 代码都由 CPU 执行。但是,某些元素可以使用 GPU 进行内部数学计算。 “明确说明要在 GPU 上运行 gstreamer”是什么意思?
您应该只在 Qt 中使用 GStreamer 1.x 分支。 GStreamer 0.1 已经 15 岁了。
关于c++ - 如何在 GPU 而不是 CPU 上运行 qt 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33575019/